gpt4 book ai didi

PHP 或 shell : How to randomize a list without back to back repeats?

转载 作者:行者123 更新时间:2023-11-29 09:48:36 24 4
gpt4 key购买 nike

我是用 Linux BASH shell 写的,但如果有更好的 PHP 解决方案就好了。

我需要从 12 个元素的数组中随机选择一个。这是我到目前为止一直在做的事情:

# Display/return my_array that's been randomly selected:
# Random 0 to 11:
r=$(( $RANDOM % 12 ))
echo ${my_array[$r]}

每次调用时,它会随机选择一个元素。但是,有时它会“随机”连续多次选择同一元素。这怎么能在 BASH shell 或 PHP 中完成,所以随机选择也不是最后一个选择的重复?谢谢!

最佳答案

r=$last
while [ "$last" = "$r" ]
do
r=$(($RANDOM % 12))
done
export last=$r

如果你一次又一次地调用脚本,那么假设脚本名称是test.sh,你需要像一样调用它。 test.sh 而不是 ./test.sh,它将使脚本在当前 shell 中运行。否则甚至不需要 export。否则,创建临时文件方法是获取最后一个值的另一种可靠方法。

关于PHP 或 shell : How to randomize a list without back to back repeats?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16477411/

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