Giriş
Aşağıdaki uygulama ile rastgele bir tamsayı oluşturucu verilir
- İlk çağırma her zaman 1 değerini döndürür.
- İkinci çağırma 1 ile 2 arasında rastgele bir tamsayı döndürür.
- Üçüncü çağırma 1 ile 3 arasında rastgele bir tamsayı döndürür.
- N'inci çağırma 1 ile n arasında (rastgele) bir tamsayı döndürür.
Yukarıdaki işleve dayanarak, eşit olasılıkla 1 ve 6 (dahil) arasında bir değer döndürerek, rasgele rastgele bir zar üreteci yazın.
kurallar
- Programınız / işleviniz, bazı kullanılabilir biçimlerde, yani standart çıktıya veya işlev dönüş değeri olarak 1 ile 6 arasında rastgele bir tamsayı ile sonuçlanmalıdır.
- Yukarıdaki artan rasgele sayı üreteci, programınızdaki "serbest" işlev (yani, karakter sayınıza sayılmaz) veya durumun (
n) kalıcı olduğu varsayılarak gerektiğinde yürütülen ayrı bir komut dosyası / program olarak tanımlanabilir. çağrılar arasında. - Programınızın tek kullanımlık durumunda 1000'den fazla zar atma talebinde bulunulmayacağını
1ve taşmalarını önlemek için ilk rasgele sayı üretecinin 1000 zar atma değerine sıfırlanabileceğini varsayınn. - Programınız kullanamaz herhangi yukarıda tanımlanan artan rastgele jeneratör hariç rasgele sayı diğer kaynağı. Elbette her bir zar rulosu çıkışı için rastgele sayı üretecinden birden fazla rastgele sayı isteyebilirsiniz.
- Bu kod golf, bu yüzden kazanan en kısa cevap veya bir kravat durumunda çoğu oy. 1000'den az rastgele sayı kullanarak 1000 zar atarsanız, kendinize 10 puanlık bir verimlilik bonusu verin .
Misal
./asc-rand
1 # random integer between 1 and 1
./asc-rand
1 # random integer between 1 and 2
./asc-rand
3 # random integer between 1 and 3
./asc-rand
4 # random integer between 1 and 4
# dice-gen generates random dice based on output of asc-rand program.
./dice-gen
3
./dice-gen
6
./dice-gen
5
./dice-gen
1
iterate(6):b=asc-rand(); print byasa dışı mı yoksa çalışmıyor mu? Üçüncü kuralı yanlış anlayabilirim.