Mr.Wang
(王BiangBiang她爸)
1
lucky(){
seq 1 100 | {
all=() #存储所有的所有的选手
lucky_people=() #存储中奖的选手
index=0 #初始化一个计数器
while read line; do
all+=($line)
done
echo ${all[@]} #输出所有选手的信息
echo "++++++所有参赛选手信息如上++++++"
echo ""
first_people=()
first_people=("${all[@]}") #备份所有选手的信息
#筛选出一等奖得主
while ((${#first_people[@]}>1)); do
((index+=1))
first_sub=("${first_people[@]}") #本轮参与淘汰的选手
#淘汰不符合条件的选手
for i in "${!first_people[@]}"; do
((RANDOM%6+1<3)) && unset first_people[$i]
done
echo "当前剩余选手为:${first_people[@]}" #输出当前剩余选手信息
#复活上一轮选手信息
((${#first_people[@]}==0)) && { first_people=("${first_sub[@]}"); }
done
#将一等奖得主存储在数组中
lucky_people+=("${first_people[@]}")
echo "一等奖得主为:${lucky_people[@]}"
echo "++++++第一轮筛选结束,诞生一等奖选手++++++"
echo ""
echo ""
#筛选出二等奖得主
second_people=()
second_people=("${all[@]}") #备份所有选手的信息
#过滤已获奖选手
for s in "${!second_people[@]}"; do
for l in "${!lucky_people[@]}"; do
((${second_people[$s]}==${lucky_people[$l]})) && unset second_people[$s]
done
done
echo "第二轮参赛选手信息为:${second_people[@]}"
echo ""
while ((${#second_people[@]}>3)); do
((index+=1))
second_sub=("${second_people[@]}" ) #本轮参与淘汰的选手
#淘汰不符合条件的选手
for i in "${!second_people[@]}"; do
((RANDOM%6+1<3)) && unset second_people[$i]
done
echo "当前剩余参赛选手为:${second_people[@]}"
#复活上一轮参赛选手
((${#second_people[@]}<3)) && { second_people=("${second_sub[@]}"); }
done
echo "二等奖得主为:${second_people[@]}"
#将二等奖的得主存储在数组中
lucky_people+=("${second_people[@]}")
echo "一等奖、二等奖得主为:${lucky_people[@]}"
echo "++++++第二轮筛选结束,诞生一等奖、二等奖得主++++++"
echo ""
echo ""
# #筛选出三等奖得主
third_people=()
third_people=("${all[@]}") #备份所有选手的信息
for t in "${!third_people[@]}"; do
for l in "${!lucky_people[@]}"; do
((${third_people[$t]}==${lucky_people[$l]})) && unset third_people[$t]
done
done
echo "第三轮参赛选手信息为:${third_people[@]}"
echo ""
}
}