Tag: 随机

在一个范围内生成“n”唯一的随机数字

我知道如何在Python中生成一个范围内的随机数。 random.randint(numLow, numHigh) 而且我知道我可以把它放在一个循环中生成n个这样的数字 for x in range (0, n): listOfNumbers.append(random.randint(numLow, numHigh)) 但是,我需要确保列表中的每个数字都是唯一的。 除了加载条件语句之外,还有一种简单的方法可以生成n个唯一的随机数字吗? 编辑:重要的是,在列表中的每个数字是不同的其他人.. 所以 [12,5,6,1] =好 但 [12,5,5,1] =坏,因为数字5出现两次。

从集合中挑选一个随机子集的最佳方法?

我在Vector中有一组对象,我想从中select一个随机子集(例如,返回100个项目,随机选取5个)。 在我第一次(非常草率)的传球中,我做了一个非常简单的或者是非常聪明的解决scheme: Vector itemsVector = getItems(); Collections.shuffle(itemsVector); itemsVector.setSize(5); 虽然这有好处和简单的好处,我怀疑它不会很好地扩展,即Collections.shuffle()至less必须是O(n)。 我不太聪明的select是 Vector itemsVector = getItems(); Random rand = new Random(System.currentTimeMillis()); // would make this static to the class List subsetList = new ArrayList(5); for (int i = 0; i < 5; i++) { // be sure to use Vector.remove() or you may get the same item […]

如何在C ++中生成一个随机数字?

我想用骰子做一个游戏,我需要随机数字(模拟死亡的边缘,我知道如何在1到6之间)。 运用 #include <cstdlib> #include <ctime> #include <iostream> using namespace std; int main() { srand((unsigned)time(0)); int i; i = (rand()%6)+1; cout << i << "\n"; } 不能很好地工作,因为当我运行这个程序几次,下面是我得到的输出: 6 1 1 1 1 1 2 2 2 2 5 2 所以我想要一个每次都会产生一个不同的随机数的命令,而不是连续的5次。 有没有这样的命令?

如何在python字典中获得一个随机值

我怎样才能从dict随机获得一对? 我正在做一个游戏,你需要猜测一个国家的首都,我需要随机出现的问题。 dict看起来像{'VENEZUELA':'CARACAS'} 我该怎么做?

模数和rand()是如何工作的?

所以,我一直坚持这一点。 rand()%6将始终生成0-5之间的结果。 但是当我需要时,比如说6-12。 我应该有rand()%6 + 6 0+6 = 6. 1+6 = 7. … 5+6 = 11. ??? 所以我需要+7如果我想要6-12的时间间隔? 但是,0 + 7 = 7。 什么时候将6随机分配? 我在这里错过了什么? 哪一个是6到12之间的随机数字的正确方法? 为什么? 这似乎是我在这里失去了一些东西。

math随机数而不重复以前的数字

似乎无法find答案,说我有这个: setInterval(function() { m = Math.floor(Math.random()*7); $('.foo:nth-of-type('+m+')').fadeIn(300); }, 300); 我怎样才能让随机数字不会重复。 例如,如果随机数是2,我不想要2再出来。

真随机数发生器

对不起,这不是一个“真正的”问题,但有时候我记得在这里看到一个post,随机随机随机随机生成真正的随机数字,而不只是伪随机。 我没有看到它,如果我search它。 有人知道那篇文章吗?

随机是如何System.Guid.NewGuid()? (拿两个)

在你开始把这个标记为重复之前 ,请把我读出来。 另一个问题有(很有可能)不正确的接受答案。 我不知道.NET如何生成它的GUID,可能只有微软,但它很可能只是调用CoCreateGuid() 。 但是该函数被logging为调用UuidCreate() 。 而创build一个UUID的algorithm已经很好的logging了 。 长话短说, System.Guid.NewGuid() ,似乎System.Guid.NewGuid()确实使用版本4的UUID生成algorithm ,因为它生成的所有GUID都与条件匹配(请参阅我自己,我尝试了几百万个GUID,它们全部匹配)。 换句话说,这些GUID 几乎是随机的,除了一些已知的位。 这再次提出了这个问题 – 随机性是多么的随意? 正如每个好的小程序员所知道的,一个伪随机数algorithm只和它的种子一样随机(又称熵)。 那么UuidCreate()的种子是什么? PRNG重新播种了多less? 它是密码强大的,还是我可以期望相同的GUID开始倾吐,如果两台计算机不小心同时呼叫System.Guid.NewGuid() ? 如果收集足够多的顺序生成的GUID,PRNG的状态可以被猜测吗? 补充:为了澄清,我想了解我可以如何信任它,因此 – 我可以在哪里使用它。 所以,我们在这里build立一个粗略的“随机性” 基本随机性,以当前时间为种子。 可用于在纸牌洗牌,但没有其他碰撞,即使没有尝试也很容易。 更高级的随机性,不仅使用时间,而且还使用其他机器特定的种子因素。 也许在系统启动时也只播种一次。 这可以用于在数据库中生成ID,因为重复是不太可能的。 尽pipe如此,这对安全性并不好,因为可以用足够的努力预测结果。 使用设备噪声或其他先进的随机性来源进行密码随机分配。 每次调用都要重新播种,或者至less经常播种。 可用于会话ID,分发给不受信任的各方等 我一直在想这个问题是否可以使用它们作为数据库ID,以及Guid.combalgorithm是否与System.Guid.NewGuid()一起实现(像NHibernate一样)会有缺陷。

Java中的加权随机性

在Java中,给定n个项目,每个项目的权重都是w ,那么如何从集合中select一个随机的项目,并有机会等于w ? 假定每个权重是从0.0到1.0的两倍,并且集合中的权重总计为1. Item.getWeight()返回项目的权重。

如何testing随机性(例如 – Shuffling)

首先,这个问题是从这个问题中剔除的。 我这样做是因为我认为这部分比较长问题的一个子部分更大。 如果冒犯了,请原谅我。 假设你有一个产生随机性的algorithm。 现在你怎么testing它? 或者更直接 – 假设你有一套洗牌的algorithm,你怎么testing它是一个完全随机的algorithm? 给这个问题添加一些理论 – 一副牌可以在52中洗牌! (52阶乘)不同的方式。 拿一副牌,手工洗牌,记下所有牌的顺序。 你会得到这个洗牌的概率是多less? 答案:1/52! 在洗牌后,你有什么机会按顺序获得每套花色的A,K,Q,J …? 答案1/52! 所以,只要洗牌一次,看看结果就不会给你任何有关洗牌algorithm随机性的信息。 两次,你有更多的信息,三更甚至… 你将如何黑箱testing随机性洗牌algorithm?