Desafio
Na menor quantidade de código:
- Calcule a duração do ciclo de permutação de um baralhamento perfeito em um baralho de cartas de qualquer tamanho n (onde n ≥ 2 e n são pares).
- Emita uma tabela de todos os comprimentos de ciclo para 2 ≤ n ≤ 1000 ( n pares).
Observe que existem duas maneiras básicas de definir um shuffle perfeito. Existe a saída aleatória , que mantém a primeira carta no topo e a última carta na parte inferior, e há a entrada aleatória , que move a primeira e a última cartas uma posição em direção ao centro. Você pode escolher se está fazendo um embaralhamento ou embaralhamento; o algoritmo é quase idêntico entre os dois.
- embaralhamento do baralho de 10 cartas: [1,2,3,4,5,6,7,8,9,10] ↦ [1,6,2,7,3,8,4,9,5, 10]
- baralhamento do baralho de 10 cartas: [1,2,3,4,5,6,7,8,9,10] ↦ [6,1,7,2,8,3,9,4,10, 5]
Exemplo gráfico
Aqui, vemos que uma saída aleatória em um baralho de 20 cartas tem uma duração de ciclo de 18 etapas. (Isso é apenas ilustrativo; sua solução não é necessária para gerar ciclos graficamente.) O baralho clássico de 52 cartas, por outro lado, possui um ciclo de saída aleatória de apenas 8 etapas (não mostrado).
Um embaralhamento em um baralho de 20 cartas tem uma duração de ciclo de apenas 6 etapas.
Exemplo tabular de saída
Seu programa deve gerar algo semelhante a isso, embora você possa escolher qualquer formato tabular que mais lhe agrade. Isto é para uma saída aleatória:
2 1
4 2
6 4
8 3
10 6
12 10
14 12
16 4
18 8
20 18
22 6
24 11
26 20
28 18
30 28
32 5
34 10
36 12
38 36
40 12
...many lines omitted...
1000 36
Questões
- Parece haver alguma conexão entre a entrada numérica n e sua contagem de ciclos, quando n é uma potência de 2?
- Que tal quando n não é uma potência de 2?
- Curiosamente, um baralho de 1000 cartas tem uma contagem de ciclo de shuffle de apenas 36, enquanto um baralho de 500 cartas tem uma contagem de ciclo de shuffle de 166. Por que isso pode acontecer?
- Qual é o maior número que você pode encontrar cuja contagem de ciclos c é muito menor que n , o que significa que a razão n / c é maximizada?