【发布时间】:2011-12-13 07:50:15
【问题描述】:
我必须从升序数组中选择一个元素。较小的元素被认为更好。因此,如果我从数组的开头选择一个元素,它被认为是一个更好的选择。但同时我不希望选择是确定性的并且总是相同的元素。所以我在找
产生范围 [0, n] 内的数字的随机数生成器,但是 数字越小,产生的机会就越大。
我想到了:
num = n;
while(/*the more iteration the more chance for smaller numbers*/)
num = rand()%num;
我想知道是否有人有更好的解决方案。
我确实看过一些类似的问题,但它们一般都有关于随机数生成的详细信息。我正在寻找这种特定类型的随机数生成的解决方案,无论是算法还是提供它的库。
【问题讨论】: