我不知道如何实现这一点,但这里是描述:
- 取一个介于 0-10 之间的数字作为输入(0 始终返回 false,10 始终返回 true)
- 将接收到的参数作为输入,并传递给函数,在运行时确定所需的布尔值是真还是假
比如说:
输入数字 7 ->(7 有 70% 的机会生成真正的布尔值) -> 传入函数,获取函数生成的布尔值。
此功能将运行多次 - 可能超过 1000 次。
感谢您的帮助,我很感激。
bool func(int v) {
float f = rand()*1.0f/RAND_MAX;
float vv= v / 10.0f;
return f < vv;
}
我会说生成一个代表百分比的随机数(比如 1 到 100),然后如果随机数小于或等于百分比机会,则将其标记为真,否则将其标记为假。
这是一个想法,我不确定它是否会有所帮助;
bool randomChoice(int number){
int result =rand() % 10;
return number>=result;
}
希望它有帮助
这是个有趣的问题!这是我认为你应该用伪代码做的事情:
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]