使用来自奇数流的模数生成“随机”数

时间:2010-01-07 12:29:29

标签: c++ c

我想基于对另一个整数流(比如X)的模运算生成一个伪随机bool流,所以操作将是

return ( X % 2);

唯一的问题是X是一个整数流,总是以1结尾,所以例如像1211,1221,1231,1241那样的东西....有没有办法让我忽略最后一位(不使用字符串操作)所以测试并不总是通过或总是失败?

3 个答案:

答案 0 :(得分:3)

那么(X / 10) % 2呢?

答案 1 :(得分:2)

如果您不乐意使用最后一位,请使用倒数第二位:

return (x & 0x2) >> 1;

所以说你的流中的下一个数字是23:

  1 0 1 1 1  // 23 in binary
& 0 0 0 1 0  // 0x2 in binary
-----------
  0 0 0 1 0

向右移动一位(>> 1)得到1.对于25,答案为0:

  1 1 0 0 1
& 0 0 0 1 0
-----------
  0 0 0 0 0

答案 2 :(得分:0)

return ( x%20/10 );