gpt4 book ai didi

c - 在C中随机选择两个数字(掷硬币)的快速方法

转载 作者:行者123 更新时间:2023-11-30 21:24:27 25 4
gpt4 key购买 nike

有没有一种快速的方法可以在 C 中的两个数字之间进行随机选择?看起来像 rand() 这样的函数花费的时间太长了。它们有必要吗?

最佳答案

试试这个:

// 0=heads; 1=tails;
int flipCoin(){
return 1; // Chosen by a fair coin toss.
// Guaranteed to be random.
}

开个玩笑。我不得不把它扔进去。

<小时/>

无论如何,回到主题,这里真正的问题是你想要/需要什么质量?如果质量不是太重要,所以你只需要一个非常快的 PRNG,那么你可能想尝试这样的事情:

static unsigned int g_seed;

//Used to seed the generator.
inline void fast_srand( int seed ){
g_seed = seed;

}

//fastrand routine returns one integer, similar output value range as C lib.

inline int fastrand(){

g_seed = (214013*g_seed+2531011);

return (g_seed>>16)&0x7FFF;

}

int flipCoin(){
return fastRand()%2;
}

显然,您需要为“fastrand”生成器提供种子。

信用:此代码来自 Asis 对此问题的回答:Faster than rand()?

关于c - 在C中随机选择两个数字(掷硬币)的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36520690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com