我已经阅读了很多关于如何编写自己的随机数生成器的指南,所以我对为什么要编写自己的随机数生成器很感兴趣,因为大多数语言已经提供了生成随机数的函数:
像C++一样
srand(time(NULL));
rand();
C#
Random rand = new Random();
rand.Next(100);
和Java
Random rand = new Random();
rand.nextInt(0, 100);
我主要是在寻找使用你自己的优势。
因此,在我的编程经验中,我遇到了静态类型化语言的两种类型注释:我将它们称为“前”和“后”。C-样式语言使用的格式
int i = 5
而大多数非c族语言都使用这种格式。
var c:int = 5
前者的例子是C,C++,Java;后者的例子是Scala,Haxe,Go。
在某些人看来,这似乎是肤浅的,但我的问题是:每种风格的优点是什么?为什么要用一个而另一个呢?为什么C从一开始就采用这种风格?
假设您有遗留的java代码,这些代码不能由最新版本的java编译。例如:
public class ProviderUnavailableException extends Exception {
private int cause;
public int getCause(){
return cause;
}
// rest of implementation
}
回到Java1.3的时候,这段代码是有效的。
在Java1.4中,Throwable类“重新定义”了getCause()方法。它看起来是这样的:
public Throwable
我用谷歌找到了这段代码。
private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
这真的是在C#中生成真正的随机数的全部吗?我打算在1-10之间的小范围内生成。
谢谢