İçinde 100'ü kırmızı, 40'ı sarı, 50'si yeşil, 60'ı mavi, 70'i mor, 80'i siyah olan 400 topum var. (aynı renkteki toplar aynıdır)
verimli bir karıştırma algoritmasına ihtiyacım var, böylece karıştırmadan sonra toplar bir listede ve
Birbirini izleyen 3 top aynı renkte değildir. örneğin, "kırmızı, kırmızı, kırmızı, sarı ...."
Ve tüm permütasyonun "eşit olarak" gerçekleşmesi muhtemeldir. (iyi, tarafsızlığa karşı verimlilik değiş tokuşu yeterince iyi ise, tarafsızlıktan daha fazla verimlilik umursamıyorum).
Fisher-Yates-Knuth'u uyarlamaya çalıştım, ama sonuç ideal değil.
Fisher-Yates neden yeterince iyi değil? FY, Monte Carlo'nun ters dönüşümü benimsediğinden. Ve çıktı dağıtımı aynı renk toplarına farklı davranır, yani ihtiyaçlarım için yanlı sonuç üretecektir.
Ve Naif düşüncesi, tüm alandaki tüm kötü permütasyonları filtrelemek / geri izlemek olacaktır. Kısıtlama çok güçlü olduğunda, diyelim ki, sadece 300 topumuz ve 100'ü kırmızı ise, uygun bir permütasyon almadan önce çok fazla geri izleme / hata olacaktır.
Sonuçta, tüm iyi permütasyonlarla tekrar edebilmek isterdim. Ancak, geçerli permütasyon sayısı çok fazla olduğundan, bunlardan sadece bazılarını rastgele örnekleyebilirim. "Bazı" larının istatistiksel özelliklerinin nüfusa olabildiğince benzemesini istiyorum.