Red de conocimiento informático - Material del sitio web - ¿Cómo implementar Joseph's Ring usando Linux Shell Script?

¿Cómo implementar Joseph's Ring usando Linux Shell Script?

Almacene el siguiente contenido en un archivo de script, como t.sh, y ejecútelo con

. /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 ]