草庐IT

ruby - 如何在 Ruby 中生成一个非常大的随机整数?

我想在ruby​​中生成一个64位整数。我知道在Java中你有很多渴望,但我不确定你会如何在Ruby中做到这一点。另外,64位数字中有多少个字符?这是我正在谈论的示例......123456789999。@num=Random.rand(9000)+Random.rand(9000)+Random.rand(9000)但我认为这是非常低效的,必须有一种更简单、更简洁的方法来做到这一点。谢谢! 最佳答案 rand可以将范围作为参数:pa=rand(2**32..2**64-1)#=>11093913376345012184putsa.

ruby-on-rails - 多次选择一个随机数,但绝不会两次选择相同的随机数

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowdoIgeneratealistofnuniquerandomnumbersinRuby?我想做的事:Random.rand(0..10).timesdoputsRandom.rand(0..10)end但如果随机数已经显示过,则无法再次显示。如何最轻松地做到这一点?

ruby - 以随机顺序将数组拆分为多个数组 - Ruby

我试图在每次运行时以随机顺序将一个名称数组拆分为多个数组。我知道如何拆分它们:name_array=["bob","john","rob","nate","nelly","michael"]array=name_array.each_slice(2).to_a=>[["bob","john"],["rob","nate"],["nelly","michael"]]但是,如果我希望它每次都以随机顺序吐出它们怎么办? 最佳答案 在做同样的事情之前,打乱数组。(Array#shuffle)name_array.shuffle.each_s

ruby - 生成X和Y之间的随机数,不包括某些数字

有没有办法在ruby​​中生成介于1-100但不包括20、30和40之间的随机数?我可以做类似的事情defrandom_numberrandom_number=rand(100)whilerandom_number==20||30||40random_number=rand(100)endreturnrandom_numberend...但这似乎不是很有效(再加上那个特定的例子可能根本行不通)。有没有更简单的方法?任何帮助深表感谢! 最佳答案 创建一个1到100的数组。从该数组中删除不需要的元素。然后从数组中选择一个随机数。([*1

ruby - 如何获得随机的 0 和 1 数字

所以基本上是为了好玩,我试图生成一列数字(7位数字只有0和1)我的代码很短:a=rand(0000000-1111111)b=220a1=rand(0000000-1111111)a2=rand(0000000-1111111)a3=rand(0000000-1111111)a4=rand(0000000-1111111)a5=rand(0000000-1111111)whileb!=0putsaputsa2putsa3putsa4putsa5end我的问题是,不是生成随机的0和1列,而是所有,而是使用了数字。 最佳答案 这是惯用的

ruby - Rspec 3 与 Rspec 2 匹配器

学习如何使用Rspec3。我对匹配器有疑问。我正在学习的教程基于Rspec2。describeTeamdoit"hasaname"do#Team.new("Randomname").shouldrespond_to:nameexpect{Team.new("Randomname")}.tobe(:name)endit"hasalistofplayers"do#Team.new("Randomname").players.shouldbe_kind_ofArrayexpect{Team.new("Randomname").players}.tobe_kind_of(Array)enden

ruby-on-rails - 使用 secure_random stub rspec 中的随机值

我正在尝试为我的gem编写规范,它生成otp并将其保存在数据库中。现在我正在为它编写规范。所以基本上我有三种方法generate_otp!、regenerate_otp!、verify_otp(otp)。generate_otp!的作用是调用包含三个变量的方法generate_otpotp_code-基本上是使用secure_random生成的随机值otp_verified-一个bool值,用于设置otp是否已验证的状态otp_expiry_time-设置otp的到期时间,可以由Rails应用在配置中设置。这三个也是我的数据库的列。在generate_otp之后,我正在调用active

ruby - 如何在 rspec 中 stub rand?

我正在使用Ruby2.3.4和rspec3.6.0。我正在为使用rand(10000..99999)的对象编写测试。我在rand上找不到任何文档来查看它属于哪个对象。我尝试对Kernel、Object和Random进行stub(见下文),但我的尝试都没有导致rand被stub对象。allow(Kernel).toreceive(rand).and_return(12345)allow(Object).toreceive(rand).and_return(12345)allow(Random).toreceive(rand).and_return(12345)感谢任何帮助。

ruby - 负随机数

我知道如何使用Rails生成数字,但我不知道如何生成负数?prng.rand(1..6)forrandomof[1,2,3,4,5,6]Randomdoc说你会得到一个ArgumentError。 最佳答案 假设您想生成一个介于a和b之间的数字,您始终可以使用以下公式来实现:randomNum=(b-a)*prng.rand+a因此,如果您想要一个介于-8和+7之间的数字,那么a=-8和b=7,您的代码将是randomNum=(7-(-8))*prng.rand+(-8)相当于randomNum=15*prng.rand-8

ruby-on-rails - FiberError - 跨线程调用的纤程

我正在尝试在使用random-wordgem的Rails应用程序中编写一个小功能生成一个随机名词,然后将其复数。第一次访问开发中的页面时,我已经能够让它工作,但我希望脚本在每次加载页面时再次运行。现在,后续页面加载(直到我反弹服务器)给我WelcomeController#randomwords中的FiberError,fibercalledacrossthreads。我试图自己解决这个问题,但我对编程还很陌生,并不真正了解Fibers的工作原理。我尝试使用Queue,但无法弄清楚如何让它工作,同样是因为我不完全理解该类(class)。我将如何着手解决这个具体问题?来源:welcome