Ondalık bir çift hassasiyetli gösterimi, yalnızca 15 ondalık basamağın doğruluğunu garanti edebilir, bu nedenle pi, şöyledir:
3.141592653589793
Sen haneli olduğunu görebilirsiniz 3
pozisyonlarda ise 1, 10, 16
, basamaklı 1
pozisyonlarda olduğu 2, 4
gibi
Meydan okuma
Görevin, 0 ile 1 arasında rastgele bir çift sayı oluşturan ve bu sayının değerlerini pi değerine eşleyen bir program veya işlev oluşturmaktır. Bunu, farklı basamakları rasgele sayılara, basamağın pi'deki konumuna getirerek yapabilirsiniz. Rakam pi'de bulunmazsa, atlarsınız ve rasgele sayıdaki pi olmayan her rakam bir ile temsil edilir x
. Her değer soldan başlayarak yalnızca bir kez kullanılabilir.
Birkaç örnek muhtemelen bunu daha net hale getirecektir. Aşağıdaki örneklerde, birinci sayı pi, ikincisi rasgele sayı ve sonuncusu istenen çıktıdır.
3.141592653589793
0.111111111111111
x.1x1xxxxxxxxxxxx
3.141592653589793
0.531000000000000
3.1xx5xxxxxxxxxxx
3.141592653589793
0.123456789123456
3.141592653x8x7xx
3.141592653589793
0.967552381459391
3.14159265358979x
Kurallar:
- İşlev herhangi bir girdi almamalıdır (olası bir istisna madde 3 numaralı madde işaretinde açıklanmıştır).
- Çıktı, isteğe bağlı yeni satırlı yalnızca çıktı dizgisinden oluşur (tek bir arka boşluk da kabul edilir)
- Programınızın yerleşik bir Pi değeri ve / veya bir RNG'si yoksa, Pi'yi kodlayabilir ve rastgele sayıyı girdi olarak alabilirsiniz. Rasgele sayıyı kodlayamaz veya Pi'yi girdi olarak alamazsınız.
- Hem Pi için kodlanmış değer, hem de 15 rastgele rakam (
0.
0 ile 1 arasında olacağını bildiğinizden atlayabilirsiniz ) bayt sayımına dahil edilir. - Dilinizde gerekli hassasiyet yoksa, aşağıdaki kısıtlamalar altında daha az hassaslık kullanabilirsiniz.
- Pi'nin rakamları, sahip olduğunuz hassasiyete kadar kesin olmalıdır
- Doğru olması garanti edilenden daha fazla değer veremezsiniz, yani hassasiyet yalnızca 8 doğru ondalık basamağa izin veriyorsa 15 basamak veremezsiniz.
- Pi'nin kodlanmış değeri, programınız sadece 8 haneyi desteklese bile, 16 bayt (ondalık basamağa ihtiyacınız yoktur) olarak sayılır.
- Rastgele sayının giriş değeri 15 bayt olarak sayılır (buna ihtiyacınız yoktur
0.
. Bunun nedeni düşük hassasiyetli dillerin haksız bir avantaja sahip olmaması gerektiğidir. - Program 5 ondalık hassasiyetini (en azından) desteklemelidir.
- Düzenleme: Cevabı doğrulamak için: Rastgele sayı bir şekilde yazdırılmalıdır, ancak bu işlem bayt sayımına dahil edilmek zorunda değildir. Bu nedenle, örneğin,
print r
betiğin sonuna bir harf ekleyebiliyorsanız , o bölüm puanı artırmaz. - Gerekli başka bir işlemin bir parçasıysa baytları çıkaramazsınız. Yani kod buysa,
print pi, r
yalnızca çıkarabilirsiniz, r
. - : Kodda parça çeşitli yerlerde eklemek varsa, baskılar rastgele sayı ve bir yorum gibi olan Bilmeyen o iki sürümünü (birini ekleyin
_p
ve_oNo
. Rasgele sayı yazdırmak için gerekli olan_p
xxx yapar ve_oNo
yapar yyy_p
ve_oNo
bayt sayısına dahil edilmeyecektir.
Bayt cinsinden en kısa kod kazanır.
Liderler Sıralaması
Bu yazının altındaki Yığın Parçacığı, cevapları a) dil başına en kısa çözümün bir listesi olarak ve b) genel bir lider tablosu olarak oluşturur.
Cevabınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak cevabınızı bir başlık ile başlatın:
## Language Name, N bytes
Gönderinizin N
büyüklüğü nerede ? Puanınızı artırmak varsa, olabilir onları içinden vurarak, başlığa eski hesapları tutmak. Örneğin:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Başlığınıza birden fazla sayı eklemek istiyorsanız (örneğin, puanınız iki dosyanın toplamı olduğundan veya tercüman bayrağı cezalarını ayrı ayrı listelemek istediğiniz için), gerçek puanın başlıktaki son sayı olduğundan emin olun :
## Perl, 43 + 2 (-p flag) = 45 bytes
Dil adını, daha sonra pasajda görünecek bir bağlantı da yapabilirsiniz:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
0 < random < 1
ya 0 <= random <= 1
?