gpt4 book ai didi

algorithm - 快速选择两个不同的随机数

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:46 25 4
gpt4 key购买 nike

有时需要随机数,条件是它们是唯一的。

经典算法是不断循环,直到你偶然碰到不同的数字,一些伪代码:

 minval = 0 ;
maxval = 4 ; // random max will be one less than maxval

val1 = random( minval , maxval ) ;
val2 = random( minval , maxval ) ;

while( val1 == val2 ) {

val2 = random( minval , maxval ) ;

}

我有一个时间紧迫且内存有限的程序,我想知道是否有任何算法可以避免连续循环暴力法而不使用像查找表这样的额外内存。

可能是一个简单的解决方案,但这是一个又晚又累的夜晚。

有什么建议吗?

最佳答案

是的,您可以像这样排除已经找到的号码:

 minval = 0 ;
maxval = 4 ; // random max will be one less than maxval

val1 = random( minval , maxval ) ;
val2 = random( minval , maxval - 1 ) ;

if(val2 >= val1) val2++;

第二次指定比第一次小一的区间,将已经找到的数上面的部分向上移动一位。

关于algorithm - 快速选择两个不同的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34403003/

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