Meydan okuma
En kısa kodda:
- Herhangi bir n boyutunda ( n ≥ 2 ve n'nin eşit olduğu) bir kart destesinde mükemmel bir karıştırmanın permütasyon döngüsünün uzunluğunu hesaplayın .
- 2 ≤ n ≤ 1000 ( n çift) için tüm döngü uzunluklarında bir tablo çıktısı alın .
Mükemmel bir karıştırmayı tanımlamanın iki temel yolu olduğunu unutmayın. Orada dışı karıştır üstünde ilk kartı ve altta geçen kart tutar ve orada in-karıştır merkezine doğru ilk ve son kartları bir pozisyon kaydırılır. Karışık mı yoksa karışık mı yapacağınızı seçebilirsiniz; algoritma ikisi arasında neredeyse aynıdır.
- 10 kartlık destenin karışıklığı : [1,2,3,4,5,6,7,8,9,10] ↦ [1,6,2,7,3,8,4,9,5, 10].
- içinde shuffle 10 kart güverte: [1,2,3,4,5,6,7,8,9,10] ↦ [6,1,7,2,8,3,9,4,10, 5].
Grafik örneği
Burada, 20 kartlık bir destedeki bir karışıklığın döngü uzunluğunun 18 adım olduğunu görüyoruz . (Bu yalnızca açıklama amaçlıdır; çözümünüzün döngüsel olarak grafik çıktısı alması gerekmez.) Öte yandan, klasik 52 kartlı deste, sadece 8 adımlık (gösterilmemiştir) bir dışarı karıştırma döngüsü uzunluğuna sahiptir.
Bir in-karışık 20 kart güvertede sadece 6 adımların bir döngü uzunluğu vardır.
Tablo halinde çıktı örneği
En sevdiğiniz tablo biçimlerini seçebilmenize rağmen, programınız buna benzer bir çıktı almalıdır. Bu bir karışıklık içindir:
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
Sorular
- N 2'nin gücü olduğunda, n sayısı girişi ve döngü sayısı arasında herhangi bir bağlantı var mı ?
- N 2'nin gücü olmadığında ne olur ?
- Merakla, 1000 kartlık bir desteğin sadece 36'lık bir shuffle döngü sayısı vardır, 500'lük bir kart destesinin 166'lık bir shuffle döngü sayısı vardır. Neden olabilir?
- Çevrim sayısı c n'den büyük oranda küçük olan bulabileceğiniz en büyük sayı nedir , yani n / c oranı en üst düzeye çıkarılır?