草庐IT

rand_num

全部标签

Ruby:Random#rand 和 Kernel#rand 之间的区别

Random#rand和Kernel#rand真的有区别吗?据我所知,他们使用了不同的“C”函数。 最佳答案 它们在使用Range调用时表现相同,但在其他几种情况下则不同。当使用负整数-n(如-3)调用时,Random#rand引发ArgumentError,而Kernel#rand的行为就好像你用n调用它(通过(-n).to_int.abs)。当使用0调用时,Random#rand引发ArgumentError,而Kernel#rand就像您调用它时没有任何参数一样。当使用Floatn调用时,Random#rand返回一个介于0之

ruby - rand(Range) - 没有将 Range 隐式转换为 Integer

对问题的跟进Howtocreatearandomtimebetweenarange.Kernel#rand适用于Time范围:require'time'rand(Time.parse('9am')..Time.parse('11:30am'))但是当我尝试使用自定义类时,我遇到了错误:`rand':noimplicitconversionofRangeintoInteger(TypeError)classIntincludeComparableattr_reader:numdefinitialize(num)@num=numenddefsuccInt.new(num+1)enddef(

c++ - 为什么 rand() 每次运行都会产生相同的数字序列?

每次我使用rand()运行程序时,它都会得到相同的结果。例子:#include#includeusingnamespacestd;intrandom(intlow,inthigh){if(low>high)returnhigh;returnlow+(rand()%(high-low+1));}intmain(intargc,char*argv[]){for(inti=0;i输出:35423每次我运行程序时,它每次都会输出相同的数字。有没有办法解决这个问题? 最佳答案 未设置随机数生成器的种子。如果你调用srand((unsigned

c++ - 为什么 rand() 每次运行都会产生相同的数字序列?

每次我使用rand()运行程序时,它都会得到相同的结果。例子:#include#includeusingnamespacestd;intrandom(intlow,inthigh){if(low>high)returnhigh;returnlow+(rand()%(high-low+1));}intmain(intargc,char*argv[]){for(inti=0;i输出:35423每次我运行程序时,它每次都会输出相同的数字。有没有办法解决这个问题? 最佳答案 未设置随机数生成器的种子。如果你调用srand((unsigned

c++ - 为什么这个包含 rand() 的 C++11 代码多线程比单线程慢?

我正在尝试使用新的C++11线程,但我的简单测试具有糟糕的多核性能。作为一个简单的例子,这个程序将一些平方随机数相加。#include#include#include#include#include#includedoubleadd_single(intN){doublesum=0;for(inti=0;i(t2-t1).count();std::coutth;intnr_threads=3;doublepartual_results[]={0,0,0};t1=std::chrono::high_resolution_clock::now();for(inti=0;i(t2-t1).c

c++ - 为什么这个包含 rand() 的 C++11 代码多线程比单线程慢?

我正在尝试使用新的C++11线程,但我的简单测试具有糟糕的多核性能。作为一个简单的例子,这个程序将一些平方随机数相加。#include#include#include#include#include#includedoubleadd_single(intN){doublesum=0;for(inti=0;i(t2-t1).count();std::coutth;intnr_threads=3;doublepartual_results[]={0,0,0};t1=std::chrono::high_resolution_clock::now();for(inti=0;i(t2-t1).c

c++ - 从多个线程使用 stdlib 的 rand()

我有几个线程都运行相同的功能。在每一个中,它们都会多次生成不同的随机数。我们试图通过将srand(time(0))放在函数的开头来做到这一点,但似乎它们都得到了相同的数字。我们是否需要每个程序只调用一次srand(time(0)),即在main的开头(例如),在每个程序的开头被多次调用的函数,还是别的什么? 最佳答案 srand()种子随机数生成器。您应该只需要在启动期间调用一次srand(time(NULL))。也就是说,文档指出:Thefunctionrand()isnotreentrantorthread-safe,since

c++ - 从多个线程使用 stdlib 的 rand()

我有几个线程都运行相同的功能。在每一个中,它们都会多次生成不同的随机数。我们试图通过将srand(time(0))放在函数的开头来做到这一点,但似乎它们都得到了相同的数字。我们是否需要每个程序只调用一次srand(time(0)),即在main的开头(例如),在每个程序的开头被多次调用的函数,还是别的什么? 最佳答案 srand()种子随机数生成器。您应该只需要在启动期间调用一次srand(time(NULL))。也就是说,文档指出:Thefunctionrand()isnotreentrantorthread-safe,since

go - Go Rand 包的难度

是否有任何Go函数在每次运行时都返回真正的伪随机数?我的意思是,考虑下面的代码,packagemainimport("fmt""rand")funcmain(){fmt.Println(rand.Int31n(100))}每次执行此代码时,我都会得到相同的输出。是否有一种方法会在每次调用时返回不同的随机结果? 最佳答案 包裹rand可用于生成伪随机数,这些伪随机数是根据特定的初始值(称为“种子”)生成的。这个初始种子的一个流行选择是例如以纳秒为单位的当前时间-当您多次执行程序时,这个值可能会有所不同。您可以使用当前时间初始化随机生成

go - Go Rand 包的难度

是否有任何Go函数在每次运行时都返回真正的伪随机数?我的意思是,考虑下面的代码,packagemainimport("fmt""rand")funcmain(){fmt.Println(rand.Int31n(100))}每次执行此代码时,我都会得到相同的输出。是否有一种方法会在每次调用时返回不同的随机结果? 最佳答案 包裹rand可用于生成伪随机数,这些伪随机数是根据特定的初始值(称为“种子”)生成的。这个初始种子的一个流行选择是例如以纳秒为单位的当前时间-当您多次执行程序时,这个值可能会有所不同。您可以使用当前时间初始化随机生成