小编aos*_*ict的帖子

确定性比特加扰以过滤坐标

我正在尝试编写一个函数,给定一个(x,y)坐标对和程序的随机种子,对于所有这些对的某些预设百分比,它将伪随机地返回true.除了数据类型的限制之外,x或y没有限制,数据类型是32位signed int.

我目前的方法是将x,y和种子的位加在一起,然后将得到的数字与百分比进行比较:

float percentage = 0.005;
...
unsigned int n = (x ^ y) ^ seed;
return (((float) n / UINT_MAX) < percentage);
Run Code Online (Sandbox Code Playgroud)

但是,似乎这种方法对某些x和y值有偏差.例如,如果它为(0,a)返回true,则它也将为(a,0)返回true.

我知道这个实现只是将它们放在一起是天真的.有没有更好的位加扰算法在这里使用,不会有偏见?

编辑:为了澄清,我不是从一组(x,y)坐标开始,也不是我试图得到一组固定大小的坐标,评估为真.该函数应该能够评估任意x,y和种子的真值,其中百分比控制"真"坐标的平均频率.

c random algorithm

8
推荐指数
1
解决办法
179
查看次数

标签 统计

algorithm ×1

c ×1

random ×1