Giriş
Yeni teknoloji başlangıcı Dejavu'dan bazı gizli planlar çalmakla görevli bir suçlusunuz. Arka duvardan gizlice giriyorsun, ama açmak için bir pim gerektiren bir kapı bul. Kilidin yapısını kabul edersiniz ve 0'dan 4'e kadar olan tüm sayıları kullanarak 5 basamaklı bir pim aldığını bilirsiniz. Girilen her basamaktan sonra kilit girilen son 5 haneyi kontrol eder ve kod doğruysa açılır. Bu kilidi ve hızlıca geçmelisin.
Özetle Süperpermülasyonlar
Bir permütasyon, belirli bir rakam dizisinin tüm olası kombinasyonlarıdır. örneğin, 0, 1, 2 rakamlarının tüm izinleri:
012, 021, 102, 120, 201 ve 210.
Tüm bu permütasyonları bir araya getirirsek, süper bir hesap alırız:
012021102120201210
bu superpermutation, 0, 1, 2'nin tüm permütasyonlarını içerir, ancak bundan daha kısa bir tane yapmak mümkündür. Burada biraz atlayacağım, ancak bu rakamların en kısa süper sayımı:
012010210
Niyetimiz ve amaçlarımız için, bu, esas olarak, bu rakamların tüm olası permütasyonlarını, yani bir süper hesaplamayı içeren en kısa rakam dizisidir.
Görev
Görevin yukarıda gösterilen süperpermutasyon örneğinden biraz daha zordur, çünkü endişelenmen gereken iki rakam daha var. - Süperpermutasyonları okumadıysanız veya yukarıdaki örneğim biraz belirsizse, konuyla ilgili Patrick Honner tarafından bu harika makaleyi okumanızı şiddetle tavsiye ederim (bu zorluk onun makalesinden oldukça etkilenmiştir, bu yüzden ona övgüde bulunulmuştur): https://www.quantamagazine.org/unscrambling-the-hidden-secrets-of-superpermutations-20190116/ . Amacınız, 0 ila 4 rakamlarının süperpermutasyonunu oluşturan mümkün olan en kısa programı yazmaktır.
puanlama
Programınız herhangi bir giriş yapmaz ve 0 - 4 arasındaki rakamların bir süper hesaplamasını oluşturur. Bu elde edilen süper hesap, konsola yazdırılmalı veya kullanıcıya, seçtiğiniz dilde belirtilen ölçüde görünmelidir. Bu mümkün olan en kısa permütasyon olmak zorunda değildir, sadece geçerli bir süpermutasyon olması gerekir. Bu nedenle, amaç en kısa programı en kısa süper hesaplamayla yazmaktır, dolayısıyla puanınızı şu şekilde hesaplamanız gerekir:
dosya boyutu (bayt) * oluşturulan süper hesaplamanın uzunluğu (hane)
örneğin, 40 baytlık bir programım varsa ve süper hesaplamam 153 basamak uzunluğundaysa, puanım:
40 * 153 = 6120
Her zaman olduğu gibi, amaç bu puanı mümkün olduğunca düşük elde etmektir.
şablon
Cevabınızı şu şekilde göndermelisiniz:
Dil | Gol
çalışma ortamındaki koda bağlantı (mümkünse)
code snippet
kod açıklaması, vb.
kesinliklerin
Bu, bu sitedeki ilk sorularımdan biri. Öyleyse lütfen bir şeyleri özlüyorum ya da zorluğumun bir kısmı belirsiz mi bana söyle. Teşekkürler ve iyi eğlenceler golf!