Tag: 随机

1.0是从std :: generate_canonical有效的输出?

我一直认为随机数在0和1之间, 没有1 ,即它们是半开区间[0,1)的数字。 std::generate_canonical cppreference.com上的文档证实了这一点。 但是,当我运行以下程序: #include <iostream> #include <limits> #include <random> int main() { std::mt19937 rng; std::seed_seq sequence{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; rng.seed(sequence); rng.discard(12 * 629143 + 6); float random = std::generate_canonical<float, std::numeric_limits<float>::digits>(rng); if (random == 1.0f) { std::cout << "Bug!\n"; } return 0; } 它给了我以下输出: Bug! 即它产生了一个完美的1 ,这导致了我的MC集成中的问题。 […]

获取一个在Python中的随机布尔值?

我正在寻找最好的方法(快速和优雅),以获得一个随机布尔在python(翻转硬币)。 目前我使用random.randint(0, 1)或random.getrandbits(1) 。 有没有更好的select,我不知道?

使用set.seed函数的原因

在启动程序之前,我已经多次看到R中的set.seed函数。 我知道它基本上用于随机数生成。 有没有特别需要设置这个?

为什么这个随机值有一个25/75分布而不是50/50?

编辑:所以基本上我想写的是1位散列double 。 我想用一个50/50的false将一个double映射为true或false 。 为此,我编写了一些随机数字的代码(只是作为一个例子,我想用规则的数据来使用它,仍然得到50/50的结果) ,检查它们的最后一位,如果是1,则增加y如果n它是0。 然而,这个代码不断地导致25% y和75% n 。 为什么不是50/50? 为什么这么奇怪,但是直截了当(1/3)的分布呢? public class DoubleToBoolean { @Test public void test() { int y = 0; int n = 0; Random r = new Random(); for (int i = 0; i < 1000000; i++) { double randomValue = r.nextDouble(); long lastBit = Double.doubleToLongBits(randomValue) & 1; if […]

如何在golang中生成一个固定长度的随机string?

我只想要一个随机的string(大写或小写),在Golang中没有数字。 Go的最快最简单的方法是什么?

在Rails中创build唯一标记的最佳方法是什么?

这是我正在使用的。 令牌不一定要被听到猜测,它更像是一个简短的URL标识符比其他任何东西,我想保持简短。 我跟着我在网上find的一些例子,如果发生碰撞, 我认为下面的代码会重新创build令牌,但是我不确定。 我很好奇,看到更好的build议,但是,这感觉有点粗糙的边缘。 def self.create_token random_number = SecureRandom.hex(3) "1X#{random_number}" while Tracker.find_by_token("1X#{random_number}") != nil random_number = SecureRandom.hex(3) "1X#{random_number}" end "1X#{random_number}" end 我的令牌数据库列是一个唯一的索引,我也在模型上使用了validates_uniqueness_of :token ,但是因为这些是根据用户在应用程序中的操作自动创build的(他们下了订单并购买了令牌,本质上),应用程序抛出一个错误是不可行的。 我想我也可以减less碰撞的机会,在最后附加另一个string,根据时间或类似的东西生成一些东西,但是我不希望令牌太长。

为什么C ++ rand()似乎只能生成相同数量级的数字?

在用C / C ++编写的一个小应用程序中,我正面临rand函数的问题,可能是种子: 我想产生一系列不同顺序的随机数字,即不同的对数值(基数2)。 但似乎所有的数字都是相同的,在2 ^ 25和2 ^ 30之间波动。 是不是因为rand()是用Unix时间播种,现在是一个相对较大的数字? 我忘了什么 我在main()的开头只播放一次rand() main() 。

从一个集合中挑选一个随机元素

我如何从一组中随机select一个元素? 我特别感兴趣的是从Java中的HashSet或LinkedHashSet中select一个随机元素。 其他语言的解决scheme也是受欢迎的。

如何在Ruby中的a和b之间生成一个随机数字?

例如,要生成3到10之间的随机数,我使用: rand(8) + 3 有没有更好的方法来做到这一点(像rand(3, 10) )?

JavaScript中的随机字母数字string?

在JavaScript中生成随机字母数字(大写,小写和数字)string以作为可能唯一的标识符使用的最简单方法是什么?