Mash Up Zamanı!
Bu benim Rastgele Günde Golf'ümün ve Optimize Edici'nin Günün Sanat Sanatı serisinin 5. bölümü . Bu yarışmadaki gönderim (leriniz) her iki lider tahtasına (bağlantılı mesajları bulabileceğiniz) sayılacaktır. Elbette, buna diğer herhangi bir kod golf mücadelesi gibi davranabilir ve herhangi bir seri için endişelenmeden yanıtlayabilirsiniz.
Delik 5: Elmas Döşemeler
Düzenli bir altıgen her zaman böyle elmaslarla döşenebilir:
Bu devirlerin ASCII sanat temsilini kullanacağız. Yan uzunlukta 2 bir altıgen için, 20 böyle eğim vardır:
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\
/\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\
\/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/
\/_/_/ \/_/_/ \/_/_/ \_\/_/ \/_/_/ \/_/_/ \_\/_/ \_\/_/ \_\/_/ \_\/_/
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/_/_/\ /\_\_\ /_/\_\ /_/_/\ /_/\_\ /_/\_\ /_/_/\ /_/_/\ /_/_/\ /_/_/\
/\_\_\/\ /\/_/_/\ /_/\/_/\ /\_\_\/\ /\_\/_/\ /_/\/_/\ /_/\_\/\ /\_\_\/\ /_/\_\/\ /_/_/\/\
\/\_\_\/ \/_/_/\/ \_\/\_\/ \/_/\_\/ \/_/_/\/ \_\/_/\/ \_\/\_\/ \/_/_/\/ \_\/_/\/ \_\_\/\/
\/_/_/ \_\_\/ \_\/_/ \_\/_/ \_\_\/ \_\_\/ \_\/_/ \_\_\/ \_\_\/ \_\_\/
Bir kenar uzunluğu göz önüne alındığında , rastgele N
yan uzunlukta bir altıgen için böyle bir döşeme oluşturmalısınız N
. Tam dağıtım önemli değil, ancak her fayans sıfır olmayan bir olasılık ile iade edilmelidir.
Çünkü N ≤ 4
gönderiminiz, zamanın en az% 80'inde en az% 80 oranında bir fayans üretmeli ve eğimlerin en az% 80'inin potansiyel olarak 1 dakika içinde üretilmesi gerekir. Çoğu yaklaşım bu kural için endişelenmek zorunda kalmayacak (çok cömertçe) - bu sadece bir kiremit oluncaya kadar rastgele dizeler oluşturan çok saf reddetme tabanlı algoritmaları dışlamaktır.
Verilen N için toplam olası eğim sayısının OEIS A008793'te bulunduğunu bilmek isteyebilirsiniz .
Tam bir program veya bir işlev yazabilir ve STDIN (veya en yakın alternatif), komut satırı argümanı veya işlev argümanı ile giriş yapabilir ve STDOUT (veya en yakın alternatif), işlev dönüş değeri veya işlev (çıkış) parametresi üzerinden çıktı üretebilirsiniz.
Altıgeni hizalamak için gerekenden daha fazla ön boşluk çıkarmamalısınız (bu, altıgenin sol köşesinde önünde boşluk olmamalıdır). Her satır, en çok N
takip eden boşluklar içerebilir (mutlaka tutarlı olması gerekmediğinden, örneğin altıgenlerin sınırlama kutusunu basarak dikdörtgen bir çıktınız olabilir).
Bu kod golf, yani en kısa gönderme (bayt cinsinden) kazanır. Ve elbette, kullanıcı başına en kısa teslim aynı zamanda serinin genel lider tablosuna girecektir.
Liderler
Her serinin ilk yazı bir afiş oluşturur.
Cevaplarınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak her bir başlığa başlıkla başlayı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
(Dil şu anda gösterilmiyor, ancak snippet bunu gerektiriyor ve ayrıştırıyor ve gelecekte bir dilin lider tahtası ekleyebilirim.)
For N ≤ 4, your submission must produce a tiling within 1 minute at least 80% of the time.
çok kolay: zamanın% 80'i aynı, temel fayans, aksi halde istediğim zaman başka bir fayans bulurum