假设我有一个 int 数组
array=( 1 2 3 4 5 6 7 8 9 10 )
如何从数组的前 30% 中随机选择一个数字,即数字 8、9 或 10。
我知道在数组中完全随机选择一个数字是:
${array[RANDOM % ${#array[@]}]}
但是我不知道如何在数组的一定百分比中选择一个随机元素,
最佳答案
Sort the array ,反过来:
IFS=$'\n' sorted=($(sort -rn <<<"${array[*]}"))
计算出符合条件的元素数量:
n=$((${#sorted[@]}*3/10))
选择一个随机元素:
val=${sorted[RANDOM % $n]}
关于bash - 从 int 数组的前 30% 中随机选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305426/