¿Cómo implementar Joseph's Ring usando Linux Shell Script?
. /t.sh N S M
Entre ellos, N es el número total de personas, S es la posición del subíndice inicial (0...N-1) y M es el número informado de personas, por ejemplo :
./t.sh 9 0 5
Significa que a partir de la persona con el subíndice 0, hay 9 personas en un círculo y el intervalo entre ellas es 5. El El resultado de salida es el siguiente
5 eliminado
1 eliminado
7 eliminado
4 eliminado
3 eliminado
6 Eliminados
9 Eliminados
2 Eliminados
8 es el último
Si tienes alguno preguntas sobre este script, por favor Baidu
#! /bin/bash
#números totales
N=$1
#posición inicial (0...N-1)
let S=$2%N
# paso
M=$3
# inicializar matriz
for (( i=0; i hacer dejar matriz[$i]=i+1 hecho dejar restos=N mientras [ $remains-gt 0 ] hacer paso=$M dejar i=S%N while [ $step -gt 1 ] hacer let i=(i+1)%N if [ ${array[ $i]} -gt 0 ]