模偏置是在天真地使用模运算得到小于给定“上界”的伪随机数时出现的问题。
因此,作为一个C程序员,我正在使用arc4random_uniform()函数的一个修改版本来生成均匀分布的伪随机数。
问题是,从数学上讲,我不明白这个函数是如何工作的。
这是函数的解释性注释,后面是指向完整源代码的链接:
/*
* Calculate a uniformly distributed random number less than upper_bound
* avoiding "modulo bias".
*
* Uniformity is achieved by generatin
我有一个HashSet,其中有10000个元素。我想从那个HashSet中随机抽取100个元素。所以我想我可以在片场上使用洗牌,但它不起作用。
Set<String> users = new HashSet<String>();
// for randomness, but this doesn't work
Collections.shuffle(users, new Random(System.nanoTime()));
// and use for loop to get 100 elements
我现在不能使用洗牌,还有其他最好的方法从HashS
我的意思是标准(?).net /c#中的随机生成器
Random random = new Random(seed);
random.next();
我知道文献中有几十种或几百种方法,但我找不到.net框架目前使用的是哪种方法?
问问题的理由:如果我画了很多随机变量,我还会回到相同的序列吗?我知道一些RNG有这种不受欢迎的属性。
我想要创建一个动态数组,根据给定的概率返回X值。例如:
假设这是一个礼品盒,你可以打开这个盒子N次。我想要的是有N个随机结果。例如,我想随机得到这两种稀有物品中的5种,但要根据它们的机会。
我现在有以下公式:
=index(A2:A3,randarray(5,1,1,rows(A2:A3),1). And this is the output I get:
这里的问题是,我有一个具有5个结果的动态数组,但不是基于概率。
如何将概率添加到数组中?
我已经写了一个简单的自动点击脚本,它工作得很好,就像它每次我认为应该点击的时候一样。不过,有一件事我很好奇,那就是它被随机延迟在2500毫秒到5000毫秒之间。我不是100%是这样做的吗?
所有代码都在这里:
public static void click(int desiredAmount)
{
int counter = 0;
Random rand = new Random();
while (counter < desiredAmount)
{
try {
我想用种子实例化一些类。这样的类将只有一个构造函数;接受一个参数,即种子。一个非常简单的伪例子可以是:
class Person {
int age;
Person(uint32 seed){
age = deriveAgeFromSeed(seed);
}
}
如果我用随机给定的种子实例化一个人,例如123456789,它应该计算到一个特定年龄的人,例如30。相同的种子总是产生同一个人(相同的年龄)。
为了实现这个具体的例子,我可以使用一个规则的随机数生成器,并使用我的种子作为它的种子来生成一个随机数,例如,在0到100之间。但是,我可能不希望它是线性
所以我写了一个函数来找出图的k个节点,它的度最小。看起来是这样的:
def smallestKNodes(G, k):
leastK = []
for i in range(G.GetMxNId()):
# Produces an iterator to the node
node = G.GetNI(i)
for j in range(k):
if j >= len(leastK):
leastK.append(node)
break
我用隐马尔可夫模型来识别手势。我已经使用一组培训数据创建了转换矩阵。我似乎找不到任何来源来创建排放矩阵。
我能像这样创造它吗?
B_ij = (# of transitions from state j to observation i)/(# of states j)
请注意,我以类似的方式创建了转换矩阵:
A_qs = (# transitions from state q to state s)/(# transitions from state q)
我需要一个使用几何分布的随机数发生器
。
我试过MathNet.Numerics.Distributions
public void GeometricTest()
{
var geometric = new Geometric(0.1);
int back = geometric.Sample();
Assert.Greater(back, -1);
}
但测试只给出了负数。有人发现了我的错误,还是给了我一些关于几何分布抽样方法的建议?