İçeriğe geç

Rastgele Liste Karıştırıcı - Ücretsiz Çevrimiçi Liste Rastgeleştirme Aracı

Kanıtlanmış Fisher-Yates algoritması kullanan ücretsiz rastgele liste karıştırıcı. İsimleri, öğrencileri, takımları veya görevleri anında rastgele sıralayın. Öğretmenler, turnuvalar ve tarafsız kararlar için mükemmel. Kayıt gerekmez.

Rastgele Liste Karıştırıcı

Karıştırılacak öğeleri her satıra bir tane olacak şekilde girin. Boş satırlar otomatik olarak kaldırılır.

Yükleme hesaplayıcısı...
📚

Belgeler

Rastgele liste karıştırıcı nedir?

Rastgele liste karıştırıcı, öğelerden oluşan bir listeyi alıp yeni ve rastgele bir sıraya koyan bir araçtır. Adları, görevleri veya başka herhangi bir şeyi satır başına bir tane gelecek şekilde girin; araç, oluşabilecek her sıranın eşit olasılığa sahip olması için bunları yeniden düzenler. Bu araç, tarafsız rastgele sıralamalar üretmekte kullanılan, iyi bilinen bir algoritma olan Fisher–Yates karıştırmasını kullanır.

Rastgele liste karıştırıcı nasıl kullanılır?

  1. Listeyi kutuya yazın veya yapıştırın; her satıra bir öğe gelecek şekilde girin.
  2. "Listeyi Rastgeleleştir" düğmesine tıklayın. Öğeler anında yeniden sıralanır.
  3. Düğmenin altında, yeni sırasına göre numaralandırılmış karıştırılmış listeyi okuyun.
  4. Yeni ve bağımsız bir karıştırma için "Listeyi Rastgeleleştir" düğmesine yeniden tıklayın.
  5. Yeni sırayı kopyalamak için "Sonucu Kopyala" düğmesine, baştan başlamak için "Temizle" düğmesine tıklayın.

Girdideki boş satırlar otomatik olarak kaldırılır; bu nedenle fazladan satır sonları sonuçlarda boş öğeler oluşturmaz.

Fisher-Yates karıştırma algoritması nasıl çalışır?

Fisher–Yates karıştırması listede bir kez ilerler; son öğeden başlayıp listenin başına doğru gider. Her adımda, henüz yerleştirilmemiş liste bölümünden rastgele bir öğe seçer ve bu öğeyi geçerli konumla yer değiştirir.

Fisher-Yates karıştırma formülü

n öğeden oluşan ve konumları 0 ile n − 1 arasında numaralandırılan bir liste için:

1for i from n − 1 down to 1:
2    choose a random whole number j, where 0 ≤ j ≤ i
3    swap the items at positions i and j
4

Döngü n − 1 kez çalışır; bu nedenle karıştırma toplamda yaklaşık n adım sürer. Buna O(n) ile gösterilen doğrusal zaman denir. Algoritma her konumu tam olarak bir kez ele aldığı ve giderek küçülen, iyi tanımlanmış bir öğe kümesinden seçim yaptığı için, n! (n faktöriyeli: n × (n − 1) × ... × 1) olası sıralamanın her birinin sonuç olma olasılığı eşittir.

Dört öğeden oluşan bir listenin karıştırılması: örnek

0 ile 3 arasındaki konumlarda dört öğeyle başlayalım: Apple, Banana, Cherry, Date.

  • i = 3: rastgele seçim j = 0 olur. 3 ve 0 konumlarını değiştirin → Date, Banana, Cherry, Apple
  • i = 2: rastgele seçim j = 2 olur. Bir konumu kendisiyle değiştirmek hiçbir şeyi değiştirmez → Date, Banana, Cherry, Apple
  • i = 1: rastgele seçim j = 0 olur. 1 ve 0 konumlarını değiştirin → Banana, Date, Cherry, Apple

Son sıra: Banana, Date, Cherry, Apple.

Dört öğe için 4! = 24 olası sıra vardır. Bu sıra da dâhil olmak üzere her birinin, herhangi bir karıştırmada ortaya çıkma olasılığı 1/24'tür.

Neden yalnızca rastgele çiftlerin yerini değiştirmiyoruz?

Daha basit görünen bir yöntem — iki rastgele konum seçip bunların yerini birkaç kez değiştirmek — rastgele görünür, ancak öyle değildir. 1950'lerdeki bazı ilk karıştırma programları bu şekilde çalışıyordu ve tek bir çalıştırma şüpheli görünmese bile bazı sıralamaları diğerlerine göre fark edilmeden daha olası hâle getiriyordu. Fisher–Yates karıştırması bunu önler; çünkü her öğe tam olarak bir kez, giderek küçülen ve seçimleri kesin olarak belirlenmiş bir kümeden seçilen bir konuma taşınır. Her nihai sıranın eşit olasılıklı olmasını sağlayan da budur.

Fisher-Yates karıştırması nereden gelir?

İstatistikçiler Ronald Fisher ve Frank Yates, deneyleri tasarlarken elle karıştırma amacıyla yöntemi 1938 yılında bir istatistik tabloları kitabında açıkladı. Richard Durstenfeld, 1964 yılında yöntemi bilgisayarlara uyarlayarak listenin, geriye kalanları izlemek için ikinci bir listeye gerek kalmadan kendi içinde yeniden sıralanmasını sağladı. Donald Knuth bu bilgisayar sürümünü 1969 tarihli The Art of Computer Programming kitabına dâhil etti; bu nedenle yöntem bazen Knuth karıştırması olarak da adlandırılır. Günümüzde web tarayıcıları da aynı algoritmayı kullanır.

Liste karıştırıcının yaygın kullanım alanları

  • Öğrencilerin sınıfta sunum yapma veya soruları yanıtlama sırasını belirlemek
  • Bir turnuva fikstürünü oluşturmak veya bir oyundaki sıra düzenini belirlemek
  • Bir grubu rastgele takımlara ayırmak
  • Bir seçeneği kayırmadan kısa listedeki restoran, film veya görevlerden birini seçmek

Basit bir karıştırma her zaman uygun olmayabilir. Bazı öğelerin diğerlerinden daha sık görünmesi gerekiyorsa ağırlıklı seçim daha uygundur. Her kategorinin mutlaka temsil edilmesi gerekiyorsa tabakalı örnekleme, tek bir rastgele karıştırmadan daha iyi sonuç verir.

Sık sorulan sorular

Karıştırma gerçekten rastgele mi?

Araç, web tarayıcısının sözde rastgele sayı üretecine (PRNG) dayanır. Bu, pratik amaçlar için rastgelelik gibi davranan sayı dizileri üreten bir formüldür. Sınıf içindeki sıralamalar, turnuva kuraları veya film seçimi için bu yeterlidir. Kriptografi, kumar sistemleri ya da paranın veya güvenliğin öngörülemezliğe bağlı olduğu durumlar için tasarlanmamıştır; bunlar sertifikalı rastgele sayı üreteçleri gerektirir.

Araç listemi bir sunucuya gönderiyor mu?

Karıştırma işlemi tamamen tarayıcıda JavaScript kullanılarak gerçekleştirilir; bu nedenle listeyi yeniden sıralamak için ağ isteği gerekmez. Geçerli liste ayrıca sayfanın web adresine yazılır; böylece sayfa yeniden yüklendiğinde veya yer imlerine eklendiğinde liste kaybolmaz. Bu adres kopyalanır, paylaşılır ya da yeniden açılırsa liste de adresle birlikte taşınır ve daha sonra sayfayı yükleyen sunucuya gönderilebilir. Bu durum önemliyse listeye hassas bilgiler koymaktan kaçının.

Yinelenen öğelere ne olur?

Yinelenen öğeler korunur. Girdide "Sam" iki kez görünüyorsa karıştırılmış çıktıda da iki kez görünür; farklı konumlarda bulunabilir.

Karıştırabileceğim öğe sayısında bir sınır var mı?

Araçta yerleşik bir sınır yoktur. Karıştırma doğrusal zamanda çalıştığı için uzun listeler bile güncel herhangi bir cihazda saniyenin küçük bir bölümünde yeniden sıralanır.

Karıştırma ile sıralama arasındaki fark nedir?

Sıralama, öğeleri alfabetik sıra gibi sabit bir kurala göre düzenler ve aynı girdi için her zaman aynı sonucu üretir. Karıştırma ise öğeleri rastgele düzenler; girdi aynı olsa bile neredeyse her seferinde farklı bir sıra üretir.

Aynı listeyi birden fazla kez karıştırabilir miyim?

Evet. "Listeyi Rastgeleleştir" düğmesine yapılan her tıklama, önceki karıştırmalardan bağımsız olarak algoritmayı yeniden çalıştırır. Küçük bir listede aynı sıranın şans eseri yeniden oluşması mümkündür; daha büyük bir listede ise bu olasılık son derece düşüktür.