İçeriğe geç
Favoriler

Rastgele takım oluşturucu

Güncellendi:

Bir isim listesi girin; bu rastgele takım oluşturucu onları anında adil takımlara böler — takım sayısını ya da takım başına kişi sayısını seçin, takımların toplam yeteneğini dengeleyin ve sonucu tek tıkla kopyalayın.

İsim listesini rastgele takımlara bölün

Giriş alanları
Virgülle ayrılmış takım adları, örn. "Köpekbalıkları, Kurtlar". Girilmeyen adlar Takım 1, Takım 2… şeklinde otomatik oluşturulur.
Etkinleştirilirse, herhangi bir değeri değiştirdiğinizde sonuç otomatik olarak güncellenir.

Takım oluşturucu formülü

Formül
\[ \text{taban} = \left\lfloor \frac{n}{T} \right\rfloor, \quad \text{kalan} = n \bmod T, \quad s_i = \text{taban} + \begin{cases} 1, & i \le \text{kalan} \\ 0, & i > \text{kalan} \end{cases} \] \[ T = \left\lceil \frac{n}{P} \right\rceil \quad \text{(takım başına kişi sayısına göre bölüştürürken)}, \qquad \Delta = S_{\max} - S_{\min} \]

Buradaki anlamı:

  • \(n\) — listedeki kişi sayısı
  • \(T\) — takım sayısı
  • \(s_i\) — \(i\) takımının kişi sayısı (takım büyüklükleri arasındaki fark en fazla 1 kişidir)
  • \(P\) — takım büyüklüğüne göre bölüştürürken istenen takım başına kişi sayısı
  • \(S_{\max}\), \(S_{\min}\) — en yüksek ve en düşük takım yetenek toplamları; \(\Delta\) ise raporlanan yetenek farkıdır

İlk satır, takım büyüklüklerinin mümkün olduğunca eşit olmasını garanti eder: her takıma \(\text{taban}\) kadar üye düşer, ilk \(\text{kalan}\) takım ise birer kişi fazla alır. Yetenek farkı \(\Delta\), en güçlü ile en zayıf takımın birbirinden ne kadar uzakta olduğunu gösterir; yetenek dengesi açıkken oluşturucu \(\Delta\) değerini 0'a yaklaştırmaya çalışır.

Takım oluşturucu – hesaplama örneği

Örnek: yetenek puanları verilen altı kişi — Alice 9, Bob 7, Carol 8, Dan 5, Eve 6, Frank 4 — Sharks, Wolves ve Eagles adlı 3 takıma, Yeteneğe göre dengele seçeneği işaretliyken (hesaplayıcının varsayılan değerleriyle) bölünüyor.

\[ n = 6, \quad T = 3 \quad \Rightarrow \quad \text{taban} = \left\lfloor \tfrac{6}{3} \right\rfloor = 2, \quad \text{kalan} = 0 \Rightarrow s_i = 2 \]

\[ \text{toplam yetenek} = 9 + 7 + 8 + 5 + 6 + 4 = 39, \quad \text{adil pay} = \tfrac{39}{3} = 13 \]

İsimler en yüksekten en düşüğe sıralanıp o anki toplamı en düşük olan takıma dağıtılınca eşleşmeler şöyle olur: \(9+4\), \(8+5\), \(7+6\):

\[ 9 + 4 = 13, \quad 8 + 5 = 13, \quad 7 + 6 = 13 \quad \Rightarrow \quad \Delta = 13 - 13 = 0 \]

Sonuç: Sharks — Alice (9), Frank (4); Wolves — Carol (8), Dan (5); Eagles — Bob (7), Eve (6). Her takımda 2 kişi var ve toplam yetenek tam olarak 13; dolayısıyla yetenek farkı 0 — kusursuz dengeli bir dağıtım.

Hesaplayıcı nasıl kullanılır?

  1. İsimlerinizi İsimler kutusuna satır satır girin. Yetenek dengesini kullanmak için isimden sonra virgül veya noktalı virgülle bir sayı ekleyin, örn. Alice, 9 (ondalık için nokta kullanılabilir, örn. Alice, 8.5). Boş satırlar yok sayılır.
  2. Bölme şeklini seçin: Takım sayısı veya Takım başına kişi. İlgili alan (Takım sayısı veya Takım başına kişi) hemen altında görünür.
  3. İsterseniz virgülle ayrılmış Takım isimleri (isteğe bağlı) girin, örn. Sharks, Wolves, Eagles. İsmi olmayan takımlar Takım 1, Takım 2… olarak adlandırılır.
  4. İsimlerinizde yetenek sayıları varsa, takımların yetenek toplamlarını eşitlemek için Yeteneğe göre dengele kutusunu işaretli bırakın; tamamen rastgele bir dağıtım için işareti kaldırın.
  5. Takımlarınızı Takımlarınız bölümünde, takım sayısı, takım başına kişi ve yetenek farkıyla birlikte görün. Yeni bir dağıtım için Yeniden karıştır düğmesine basın ya da tüm listeyi panoya kopyalamak için Metin olarak kopyala seçeneğini kullanın.

Rastgele takım oluşturucu nedir?

Rastgele takım oluşturucu, bir isim listesini taraflı olmadan takımlara böler — şapadan isim çekmenin dijital karşılığı, ama daha hızlı ve daha adil. Bir sınıfı proje gruplarına bölmek, anlık bir spor maçı kurmak, atölye masalarını atamak ya da turnuva eşleşmeleri veya gizli Santa çekilişi için rastgele eşleştirmeler oluşturmak için birebir kullanışlıdır.

Buradaki adalet iki şey demektir. Birincisi, hiçbir kişiye ve hiçbir dağıtıma ayrıcalık tanınmaz: liste, kriptografik olarak güvenli rastgele sayılarla (crypto.getRandomValues) Fisher–Yates algoritmasıyla karıştırılır; böylece olası her takım dağıtımı eşit olasılıklıdır. İkincisi, takımlar kişi sayısı olarak dengelidir: büyüklükler arasındaki fark asla 1 kişiyi geçmez, yani kimse kalabalığın ortasında 1 kişilik yalnız bir takıma mahkûm olmaz.

İsteğe bağlı yetenek dengesi üçüncü bir adalet katmanı ekler. Her kişiye bir sayı eşlik edebilir — bir puan, bir handikap, geçen haftanın skoru, masa tenisi sıralaması — ve oluşturucu kişileri, her takımın toplamının olabildiğince yakın çıkması için dağıtır. Kişiler en yüksek yetenekten en düşüğe sıralanır ve her biri o anki toplamı en küçük olan uygun takıma katılır. Sonuçlardaki Yetenek farkı değeri (en güçlü ve en zayıf takım arasındaki fark) bunun ne kadar iyi işlediğini gösterir: 0, toplamların tamamen eşit olduğu anlamına gelir; küçük değerler ise maçın çekişmeli geçeceğini gösterir.

Ancak yetenekler açıkken dağıtımın yalnızca kısmen rastgele olduğunu unutmayın: takım büyüklükleri ve dengelilik garanti edilir, toplamlar dengelenir, ama amaç artık salt rastgele bir dağıtım değildir. Bunun yerine tamamen öngörülemez bir çekiliş istiyorsanız — bir rastgele çark çevirme veya yazı tura gibi — dengeleme kutusunun işaretini kaldırın ya da hızlı rastgele kararlar için zar atma aracımızı deneyin.

Sınırlamalar ve pratik ipuçları

  • Liste 2 ile 200 arasında isim kabul eder; her satır en fazla 120 karakter olabilir. Yetenek sayıları 0 ile 1000 arasında olmalıdır ve ondalıklı sayılarda nokta kullanılır.
  • Yetenek sayısı olmayan isimler toplamlarda 0 kabul edilir. Puanlı ve düz isimleri karıştırırsanız fark yalnızca belirli bir düzeyin altına inebilir; en iyi sonuç için herkese bir sayı verin.
  • Yetenek dengesi hızlı bir açgözlü yöntemdir, kapsamlı bir arama değil. Günlük listelerde dengeli dağıtımı yakalar, ama çok zor sayı kombinasyonlarında hesaplayıcının gözden kaçırdığı, matematiksel olarak kusursuz bir dağıtım bulunabilir.
  • Takım başına kişi ile bölerken liste tam bölünmüyorsa, son takım kalan kişileri alır — sonuç notunda bu açıkça belirtilir.
  • Takımlar, bir şey değişene kadar üyelerini korur: bir ismi düzenlemek, bölme şeklini değiştirmek veya Yeniden karıştır düğmesine basmak yeni bir dağıtım oluşturur. Böylece sonucunuz altınızdan kaymadan rahatça kopyalayıp ekran görüntüsünü alabilirsiniz.
  • Karıştırma, tarayıcının kriptografik rastgele kaynağından geldiği için dağıtımlar tekrarlanabilir değildir ve hiçbir isim listesi hiçbir yerde saklanmaz — her şey tarayıcınızda yerel olarak gerçekleşir.
  • Takım yerine tek bir kazanan seçerken — şapadan tek isim çekmek, kimin başlayacağını belirlemek — takım bölmek yerine yazı tura veya isim çekme aracı daha uygun bir seçimdir.

Sıkça Sorulan Sorular

Bir listeyi araç kullanmadan nasıl rastgele takımlara bölerim?

Her ismi bir kâğıt parçasına yazın, kâğıtları bir şapkaya koyun ve tek tek çekin: ilk kâğıt 1. takımı, sonraki 2. takımı başlatır ve takımlar bitince sıra yeniden 1. takıma döner. Bu 'tur tur dağıtma' yöntemi, takım büyüklükleri arasındaki farkı en fazla 1 kişide tutar. Kimse sizi kayırmakla suçlayamasın diye çekiliş sırasını not alın ya da kâğıtları tarafsız birine çektirin.

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

Evet. Oluşturucu, tarayıcınızın kriptografik rastgele kaynağıyla (crypto.getRandomValues) çalışan Fisher–Yates karıştırmasını kullanır; bu, güvenlik işlerinde kullanılanla aynı kalitede rastgeleliktir. Olası her takım dağıtımı eşit olasılıklıdır — hiçbir isim, sıra konumu veya takım kayırılmaz. Yalnızca yetenek dengesi açıkken dağıtımın bilinçli olarak yalnızca kısmen rastgele olduğunu unutmayın; çünkü amaç bu durumda öngörülemezlikten takımların eşit güçlü olmasına kayar.

İyi bir yetenek farkı değeri nedir?

Yetenek farkı, en güçlü ve en zayıf takımın toplamlarının arasındaki farktır. 0 kusursuzdur — toplamlar birbirinin aynısıdır; hangi farkın önemsiz sayılacağı ise puanlarınıza bağlıdır: puanlar 5–10 civarındayken 1–2'lik bir fark genellikle maçın yine de çekişmeli geçmesini sağlar, ama 100 civarı puanlarda aynı fark göz ardı edilebilir. Fark büyük görünüyorsa, sayısı olmayan kişilere yetenek sayısı ekleyin, çünkü eksik sayılar 0 kabul edilir.

Liste tam bölünmüyorsa ne olur?

Bir şey bozulmaz — artan kişiler önce dağıtılır. Sabit takım sayısına göre böldüğünüzde büyüklükler arasındaki fark asla 1'i geçmez; örneğin 10 kişi 3 takıma 4, 3, 3 şeklinde bölünür. Takım başına kişi sayısına göre böldüğünüzde ise son takım artan ne kaldıysa alır: 10 kişi, takım başına 3 kişide 4 takım oluşturur ve son takımda yalnızca 1 kişi kalır; sonuç notunda bu açıkça belirtilir. Tek kişilik bir artakalan takım istemiyorsanız bunun yerine takım sayısına göre bölün.

Bunu gizli Santa ya da kimin başlayacağının seçilmesi için kullanabilir miyim?

Hediye değişimi için, takım başına kişi sayısını 2 yaparsanız gayet iyi çalışır — her isim çifti kimin kime hediye alacağını gösterir; yalnızca her çift 'birbirine hediye alır', bu da tam bir zincir çekilişi kadar gizli kalmaz. Tek bir kazananı, sunucuyu veya kimin başlayacağını seçmek içinse takım bölmek yanlış araçtır — rastgele isim seçici veya yazı tura daha hızlıdır ve işe daha uygundur.

Yeteneğe göre dengelerken neden hep aynı ya da çok benzer takımlar çıkıyor?

Bu beklenen bir durum. Dengeleme açıkken kişiler yeteneğe göre sıralanır ve her biri o anki toplamı en düşük olan takıma katılır; dolayısıyla dağıtımın yapısı büyük ölçüde sayıların kendisi tarafından belirlenir — yalnızca eşit puanlılar arasındaki sıra ve takımlara dağıtım sırası değişir. Her çekilişin bambaşka hissedilmesini istiyorsanız, tamamen rastgele bir dağıtım için 'Yeteneğe göre dengele' işaretini kaldırın.

9 gibi tek sayıda kişiyi, turnuva eşleşmelerindeki gibi 2 kişilik takımlara bölebilir miyim?

Evet, ama artana hazırlıklı olun. 9 kişi, takım başına 2 kişinin seçilmesiyle 2'şer kişilik 4 takım ve ardından tek kişilik bir son takım verir, çünkü kalanı son takım alır. Tek kişilik bir 'takım' etkinliğiniz için işe yaramıyorsa ya bir ismi çıkarın (turnuva tablolarındaki klasik bay geçme), sayıyı eşitlemek için geç gelen birini ekleyin ya da büyüklükler olabildiğince eşit çıksın diye takım sayısına göre bölerek çıtanızı düşürün (örn. 9 kişiyi 3'erlik 3 takıma bölün).

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir