我想知道这行代码是什么意思?
b = (gen_rand_uniform()>0.5)?1:0;
gren_rand_uniform()
是一个生成随机数 0 和 1 的函数。但是我不明白 >0.5
和 1:0
的含义。
我知道这应该是一个基本问题,请耐心等待。
谢谢!
最佳答案
我不认为 get_rand_uniform()
会如您所想。它可能看起来像这样:
float get_rand_uniform(void);
或者double
。重点是,它返回一个随机十进制数介于 0 和 1 之间。所以这个:
get_rand_uniform() > 0.5
检查该数字是否更接近 1 或 0。这是:
x ? y : z
是三元条件运算符,作用和这个一样:
if(x) { y } else { z }
除了三元运算符是一个表达式。所以所有这一切:
get_rand_uniform() > 0.5 ? 1 : 0
基本上是将随机 float 四舍五入为 1 或 0,并且:
b = get_rand_uniform() > 0.5 ? 1 : 0;
将随机选择的 1 或 0 分配给 b
。我相信括号在这里是不必要的,但如果你喜欢它们,那就去吧。
关于c - 这行代码是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1567959/