Seri Hakkında
Öncelikle, bunu diğer kod golf zorlukları gibi ele alabilir ve seri hakkında endişelenmeden cevaplayabilirsiniz. Ancak, tüm zorluklarda bir lider tablosu vardır. Liderlik tablosunu, diziyle ilgili daha fazla bilgiyi ilk gönderide bulabilirsiniz .
Dizi için sıralanmış bir sürü fikrim olmasına rağmen, gelecekteki zorluklar henüz taş değil. Herhangi bir öneriniz varsa, lütfen ilgili sandbox gönderisinde bana bildirin .
Delik 2: Normal Dağılımdan Sayılar
Bunun henüz yapılmadığına inanamıyorum! Normal bir dağılımdan rastgele sayılar üreteceksiniz . Bazı kurallar (bunların çoğu muhtemelen çoğu gönderimle otomatik olarak kapsanır, ancak bazıları çok farklı diller arasındaki sonuçların tutarlılığını sağlamak için mevcuttur):
Girdi olarak negatif olmayan iki tamsayı almalısınız : bir tohum
S
veN
döndürülecek sayı miktarı . ÇıktıN
, ortalama 0 ve varyans 1 ile normal bir dağılımdan çizilmiş kayan nokta sayılarının bir listesi olmalıdır . Gönderiniz aynı tohum verildiğindeS
aynı numarayı üretmelidir. Özellikle, bir kez ve bir kez ile çağrılırsa , iki çıkışın ilk girişleri aynı olmalıdır. Ek olarak, en az 2116 farklı değer farklı diziler üretmelidir.(S, N1)
(S, N2)
min(N1, N2)
S
En az 2 16 farklı tohumu desteklemesi şartıyla, (yaklaşık) tekdüze bir dağılımdan sayı çizmek için belgelenmiş herhangi bir yerleşik rasgele sayı üretecini kullanabilirsiniz . Bunu yaparsanız , RNG sizden talep ettiğiniz herhangi bir sayı için en az 20 20 farklı değer döndürebilmelidir .
S
- Mevcut tek tip RNG'niz daha küçük bir aralığa sahipse, göremiyorsanız veya çok az sayıda tohum destekliyorsa, önce yerleşik olanın üzerine yeterince geniş bir aralığa sahip tek tip bir RNG oluşturmalısınız veya kullanarak kendi uygun RNG'nizi uygulamalısınız. tohum. Bu sayfa bunun için yararlı olabilir.
- Normal dağılımlar oluşturmak için yerleşik bir algoritma uygulamıyorsanız, lütfen bir doğruluk kanıtı ekleyin. Her iki durumda da, seçtiğiniz algoritmanın teorik olarak kesin bir normal dağılım (temel PRNG'nin veya sınırlı hassasiyetli veri türlerinin engelleme sınırlamaları) vermesi gerekir .
- Uygulamanız kayan noktalı sayıları (en az 32 bit genişliğinde) veya sabit noktalı sayıları (en az 24 bit genişliğinde) kullanmalı ve döndürmelidir ve tüm aritmetik işlemler seçilen türün tam genişliğini kullanmalıdır.
- Doğrudan normal dağılımla veya Hata işlevi veya tersi gibi Gauss integralleri ile ilişkili yerleşik işlevleri kullanmamalısınız .
Tam bir program veya işlev yazabilir ve STDIN, komut satırı bağımsız değişkeni, işlev bağımsız değişkeni veya istemi yoluyla girdi alabilir ve dönüş değeri veya STDOUT (veya en yakın alternatif) ile çıktı oluşturabilirsiniz.
S
ve N
negatif olmayan tamsayılar olacak, her biri 2 20'den küçük olacak . Çıktı herhangi bir uygun, anlaşılır liste veya dize biçiminde olabilir.
Bu kod golf, yani en kısa gönderme (bayt cinsinden) kazanır. Ve elbette, kullanıcı başına en kısa gönderim de serinin genel skor tablosuna girecektir.
Liderler Sıralaması
Serinin ilk yazısı bir skor tablosu oluşturur.
Yanıtlarınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak her cevaba bir başlık ile başlayın:
# Language Name, N bytes
N
gönderiminizin 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
(Dil şu anda gösterilmiyor, ancak snippet gerektiriyor ve ayrıştırıyor ve gelecekte bir dil lider tablosu ekleyebilirim.)