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 4: Bertrand Paradoksu
Bertrand paradoks ilginç bir sorun, olan Şekil telleri, bunların orta noktalarından ve uzunluklarının farklı dağılımları elde bir daire içinde rastgele kirişleri çekme ne kadar farklı yöntemler.
Bu meydan okumada, "doğru" yöntemini kullanarak, yani ölçekleme ve çeviri altında değişmeyen akorların bir dağılımını üreten birim çemberinin rastgele akorlarını üretmeniz gerekir. Bağlantılı Wikipedia makalesinde, "Yöntem 2" böyle bir yöntemdir.
İşte kesin kurallar:
- Sen almalı bir pozitif tamsayı
N
birçok akor iade edilmelidir nasıl belirtir. ÇıktıN
, her biri birim çember üzerinde iki nokta olarak belirtilen ve radyan cinsinden kutup açılarıyla verilen akorların bir listesi olmalıdır . - Kodunuz , iki açının her biri için en az 20 20 farklı değer döndürebilmelidir . Mevcut RNG'nizin daha küçük bir aralığı varsa, önce yerleşik olanın üzerine yeterince geniş bir aralık ile bir RNG oluşturmanız veya kendi uygun RNG'nizi uygulamanız gerekir . Bu sayfa bunun için yararlı olabilir.
- Akorların dağılımı, bağlantılı Wikipedia makalesinde "Yöntem 2" ile üretilenlerden ayırt edilemez olmalıdır. Akorları seçmek için farklı bir algoritma uygularsanız, lütfen bir doğruluk kanıtı ekleyin. Hangi algoritmayı uygulamayı seçerseniz seçin, teorik olarak birim çemberde geçerli bir akor oluşturabilmelidir (temel PRNG'nin veya sınırlı hassasiyetli veri türlerinin kısıtlama sınırlamaları).
- 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 en fazla 16 ulp içinde doğru olmalıdır .
Tam bir program veya işlev yazabilir ve STDIN (veya en yakın alternatif), komut satırı bağımsız değişkeni veya işlev bağımsız değişkeni ile girdi alabilir ve STDOUT (veya en yakın alternatif), işlev dönüş değeri veya işlev (çıkış) parametresi aracılığıyla çıktı üretebilirsiniz.
Bireysel sayılar açıkça ayırt edilebildiği ve toplam sayıları her zaman eşit olduğu sürece çıktı herhangi bir uygun 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.
görüntüleme
Oluşturulan hatları oluşturmak ve dağıtımlarını incelemek için aşağıdaki snippet'i kullanabilirsiniz. Metin alanına bir çift açı listesi yapıştırmanız yeterlidir. Snippet, sayılar basit ondalık sayılar olduğu sürece (bilimsel gösterim yok) hemen hemen her liste biçimini işleyebilmelidir. Dağıtım hakkında iyi bir fikir edinmek için en az 1000 satır kullanmanızı tavsiye ederim. Ayrıca, aşağıdaki makalede sunulan farklı yöntemler için bazı örnek veriler sağladım.
Yöntem 1 ile oluşturulan örnek veriler.
Yöntem 2 ile oluşturulan örnek veriler .
Yöntem 3 ile oluşturulan örnek veriler.
Liderler Sıralaması
Serinin ilk gönderisi 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.)