C编程用百分比生成2和4

C programming generate 2 and 4 with a percentage

int random;
random=rand();

        if(random<90)
        var[x][y]=2;
        else 
        var[x][y]=4;

如何以 90% 的百分比生成 2 个,以 10% 的百分比生成 4 个?

你的基本思路是对的,但是你把价值观弄错了。 rand() 产生一个小于 RAND_MAX 的非负伪随机数,这是一个很大的数字,保证至少为 65535。

你可以得到一个介于 0 和 1 之间的随机浮点数:

rand() / (RAND_MAX + 1.0)

如果低于 90% 或 0.9,则需要 2,否则为 4。所以:

var[x][y] = (rand() / (RAND_MAX + 1.0) < 0.9) ? 2 : 4;