SpinKit
Ana sayfaKeşfet › Rastgele sıra üreteci

Bir listeyi rastgele sıraya nasıl koyarsın

Tek bir kazanan seçmek kolaydır. Herkesi adil bir sıraya karıştırmak farklı bir iştir — işte düzgün nasıl yapılır.

Bazen tek bir kazanan istemezsin. Tüm listeyi, yalnızca karıştırılmış istersin: kim birinci, ikinci ve üçüncü sunar; bir dizi sanatçının koşu sırası; mülakat adaylarının görüldüğü sıra; fikstürlerin oynanma sırası. Bu, bir ad çekmekten farklı bir görevdir ve onu tek seferlik bir seçim gibi ele almak, insanların sessizce sapma soktuğu yerdir.

Bu rehber rastgele bir sıranın aslında ne olduğunu, gelişigüzel karıştırmanın neden adil olmama eğiliminde olduğunu ve günlük bir seçiciyi tam bir rastgele sıra üretecine çevirmenin basit, tekrarlanabilir bir yolunu açıklar.

Tek kazanan seçmek ve herkesi sıralamak

Tek kazanan çekmek tek bir soruyu cevaplar: kim? Rastgele bir sıra çok daha büyüğünü cevaplar: kim, sonra kim, sonra kim — ta sonuna kadar. Matematikte listenin bir permütasyonunu üretiyorsun: her öğenin tam olarak bir kez, karıştırılmış bir dizide göründüğü tam bir düzenleme.

Olası sıra sayısı hızla tırmanır. Üç adın altı olası sırası vardır; on adın üç milyondan fazla. Adil bir karıştırma, o düzenlemelerin her birini eşit olası saymalıdır — yalnızca birinci yeri rastgele bir ada verip gerisini az çok olduğu gibi bırakmamalıdır.

Rastgele bir sıra nerede yerini hak eder

Bakmaya başlayınca kullanımlar her yerdedir:

Adil bir karıştırma aslında ne demek

Bir karıştırma, her olası sıranın eşit olası olduğu zaman adildir. Tüm tanım budur. Bazı düzenlemeler hiç çıkamıyorsa veya diğerlerinden çok daha sık çıkıyorsa, karıştırma sapmalıdır — bir bakışta rastgele görünse bile.

Yaygın hata "birkaçını değiştiriver" yöntemidir: listeyi yaz, sonra "karışık hissedene" kadar gözüne çarpan birkaç çifti değiştir. Sorun, çoğu öğeyi başladığı yere yakın bırakma eğiliminde olman ve seçtiğin değişimlerin hiç rastgele olmamasıdır — tesadüfen fark ettiğin adlar sürer. Üsttekiler sık sık üstte kalır. Düzgün bir karıştırma hiçbir başlangıç konumunu kayırmaz; tüm listeyi hiçbir şeyin nereden başladığının bellek olmadan dağıtır.

Çekerek ve kaldırarak rastgele bir sıra kur

İşte zarif kısım: ayrı bir karıştırma aracına ihtiyacın yok. Çekildikten sonra bir öğeyi kaldırmana izin veren herhangi bir adil seçici zaten kendisi bir rastgele sıra üretecidir. Püf noktası çekilişi tekrarlamaktır.

Bir ad çek — o birinci konum. Havuzdan kaldır. Kalanlardan yeniden çek — o ikinci konum. Kaldır ve devam et. Her çekiliş sıradaki sonraki yuvayı doldurur ve havuz her seferinde küçüldüğü için hiçbir ad iki kez düşemez. Liste boşaldığında, tam bir rastgele sıra kurmuş olursun, konum konum.

The key idea: drawing and removing, over and over, turns a single-winner picker into a full shuffle. Each spin places the next entry in the order, and when the wheel is empty the random order is finished.

Çarkla adım adım bir rutin

Tümünü SpinKit'in çevirme çarkında, çekince-kaldır açıkken yürütebilirsin:

  1. Her öğeyi yükle. Tam listeyi çarka yapıştır veya yaz ve başlamadan önce grupla kontrol et.
  2. Çekince-kaldır'ı aç ki her sonuç düştükten sonra çarktan çıksın.
  3. Birinci yer için çevir. Ne düşerse birinci konumdur — yaz.
  4. Yeniden çevir ikinci konum, sonra üçüncü ve böyle devam. Çark bekleyen adlara otomatik daralır.
  5. Çark boşaldığında dur. Yazılı dizinin artık adil, tam bir rastgele sıradır.

Yuva başına bir kez çevirmek istemezsen, takım seçici bir listeyi gruplara bölmenin parçası olarak karıştırır — böylece yalnızca bir takım istediğinde bile okumak için rastgeleleştirilmiş sırada listeyi verir.

Sıra sapması — terazideki gizli başparmak

Neden hiç karıştırmak? Çünkü konumun kendisi önemli olabilir. Yargılamada, oylamada, tadım panellerinde ve seçmelerde önce veya sonra gitmek nadiren nötrdür: ilk girdi herkesin ölçüldüğü çubuğu koyar, sonuncusu puanlar verilirken zihinde en tazedir. İnsanlar bunu kasten yapmaz — dikkat ve belleğin çalışma biçimidir.

Sıra şanstan başka bir şeyle kararlaştırılıyorsa — alfabetik soyadlar, kayıt zamanı, kimin önce bağırdığı — o avantaj veya dezavantaj her seferinde aynı insanlara düşer. Sırayı rastgeleleştirmek önce gitmenin etkisini kaldırmaz ama kimsenin o konumu sistematik olarak almamasını sağlar. Bir fikstür sezonu veya bir yığın mülakat boyunca, bu adil bir süreç ile sessizce çarpık olan arasındaki farktır.

Beraberlikler, geç eklemeler ve yeniden çekimler

Sık çıkan birkaç pratik nokta:

O soruları baştan çöz, çekiliş temiz kalsın: herkesin olduğunu izlediği, önceden kararlaştırılmış tek bir karıştırma.