例如,要生成3到10之间的随机数,我使用: rand(8) + 3
有没有更好的方法来做到这一点(类似的东西rand(3, 10)
)?
我试图在1900年到1980年间用Ruby随机获得一年.
到目前为止,我有:
puts 'the year was: ' + 1900.to_s + rand(1980).to_s
Run Code Online (Sandbox Code Playgroud)
但这只是添加了1900和一个从1979年到1979年的随机数,看起来像19001947.
我想我错过了一些愚蠢的东西,但任何人都可以放弃任何光明吗?
我知道如何使用Rails生成数字,但我不知道如何生成负数?
prng.rand(1..6) for random of [1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
随机文档说你会得到一个ArgumentError.
Random
在给定特定种子和范围的情况下,Ruby 1.9.2中的类保证以相同的顺序生成随机数.例如:
r = Random.new(23)
r.rand(100) # 83
r.rand(100) # 40
Run Code Online (Sandbox Code Playgroud)
但是假设我想在另一台计算机上生成序列中的下一个数字(不重新生成序列中的早期数字).鉴于先前的输出,这应该是可能的.有没有办法在Random
课堂上这样做?或者我是否必须编写自己的Mersenne twister实现?
[ 编辑:正如下面的评论所指出的那样,实际上不可能Random
仅从输出中确定实例的状态,因为只有部分状态(特别是低32位)用于输出.
我想生成一个介于100和999之间的唯一随机数序列.我想确保没有生成两次数字,以确保每个数字都是唯一的.这就是我想出的.这是行不通的.当我运行它时,屏幕只是空白.谁能帮我?
products = {}
def random_key(products)
rand_key = rand(900) + 100
while products.has_key?(rand_key)
rand_key = rand(900) + 100
end
end
puts random_key(products)
Run Code Online (Sandbox Code Playgroud) 在Ruby中,我需要使用均值来绘制指数分布m
.请告诉我如何快速有效地完成它.例如.让我们:
m = 4.2
def exponential_distribution
rand( m * 2 )
end
Run Code Online (Sandbox Code Playgroud)
但是,当然,这段代码是错误的,而且,它只返回整数结果.我今天已经累了,请提示我一个好的解决方案.
我有5个图像,我想在不同时间用作背景(随机选择一个作为身体标签的背景).我该怎么做,可以在Rails控制器/方法中,还是通过ERB或通过JQuery完成?