0

我不知道如何实现这一点,但这里是描述:

  • 取一个介于 0-10 之间的数字作为输入(0 始终返回 false,10 始终返回 true)
  • 将接收到的参数作为输入,并传递给函数,在运行时确定所需的布尔值是真还是假

比如说:

输入数字 7 ->(7 有 70% 的机会生成真正的布尔值) -> 传入函数,获取函数生成的布尔值。

此功能将运行多次 - 可能超过 1000 次。

感谢您的帮助,我很感激。

4

4 回答 4

4
bool func(int v) {
  float f = rand()*1.0f/RAND_MAX;
  float vv= v / 10.0f;
  return f < vv;
}
于 2013-06-07T22:27:58.470 回答
0

我会说生成一个代表百分比的随机数(比如 1 到 100),然后如果随机数小于或等于百分比机会,则将其标记为真,否则将其标记为假。

于 2013-06-07T22:28:14.143 回答
0

这是一个想法,我不确定它是否会有所帮助;

bool randomChoice(int number){
    int result =rand() % 10;
    return number>=result;

    }

希望它有帮助

于 2013-06-07T22:30:50.937 回答
0

这是个有趣的问题!这是我认为你应该用伪代码做的事情:

boolean[] booleans = new boolean[10]; //boolean array of length 10

function generateBooleans(){
    loop from i = 0 to 10:
        int r = random(10);    //random number between 0 and 9, inclusive
        if(r < i){
            booleans[i] = true;
        }
    }
}

然后,您可以将用户的输入与您的布尔数组进行比较,以获得预先确定的布尔值:

boolean isTrue = booleans[userInputNumber]
于 2013-06-07T22:34:15.223 回答