Görev
Görev, tutarlı ama aksi takdirde keyfi bir pozitif tamsayı (kesinlikle 0'dan büyük) çıkaran bir program yazmaktır . İşte püf noktası da burası: Kaynak tekrarlandığında kez (kod / eklenen birleştirilmiş kendisine), program olmalı çıkma olasılığıve kalanN-1olasılığıçıkışının N değerideğişmedi.
Misal
İlk kaynağınızın XYZ
tamsayı olduğunu ve ürettiğini varsayalım 3
. Sonra:
İçin :
XYZXYZ
çıktılayacaktır bir olasılık ile (zamanın% 50'si) ve olasılıkla (zamanın% 50'si).İçin :
XYZXYZXYZ
çıktılayacaktır bir olasılık ile (zamanın% 66.666'sı) veolasılıkla1⋅3=9 (Zamanın% 33.333)İçin :
XYZXYZXYZXYZ
çıktılayacaktır bir olasılık ile (zamanın% 75'i) ve ,1olasılık ile (zamanın% 25'i)
ve bunun gibi....
kurallar
Tam bir program oluşturmalısınız . Çıktı STDOUT'a yazdırılmalıdır.
Programınız, teorik olarak, her bir olası değeri yukarıda belirtilen olasılıklarla vermelidir, ancak rastgele uygulama nedeniyle bundan küçük bir sapma iyidir ( uygulamanın farklı bir dağıtım olmaması şartıyla - normal dağıtım bayt sayısı ) .
Program (yine teorik olarak) keyfi olarak büyük bir değeri için çalışmalıdır , ancak hassasiyet nedeniyle teknik sınırlamalar büyük için iyidir .
Çıktı taban 10'da olmalıdır (başka bir tabanda çıktı almak veya bilimsel gösterimle yasaktır). Sondaki / öndeki boşluklara ve önde gelen sıfırlara izin verilir.
Başlangıç kaynağı (elbette) en az 1 bayt uzunluğunda olmalıdır. Sen olabilir değil Kaynağınızın kopyaları arasında bir yeni satır varsayalım. Program girdi almamalıdır (veya kullanılmayan, boş bir girdi içermemelidir).
Bu kod golf , bu nedenle bir yanıtın puanı, (orijinal) kaynağın bayt cinsinden uzunluğudur ve daha düşük bir puan daha iyidir.
Not: Bu sorun bir (çok) daha sert versiyonu bu bir .