Giriş
Bu benim en sevdiğim matematik bulmaca biridir.
Bir basamak (3 diyelim) ve bu basamağı (5 diyelim) kullanma sayısı verildiğinde, yalnızca + kullanarak 1, 2, 3, 4, 5, 6, 7, 8, 9 ve 10 ile sonuçlanan 10 ifade oluşturun, -, ×, ÷, ^ ve √ (kök) (parantezlerin işlemleri gruplandırmasına izin verilir).
Örneğin:
(3^3 + 3)/(3 + 3) = (33 - 3)/(3 + 3) = 3 + 3/3 + 3/3 = 5
Yukarıdakilerin hepsinin beş 3 ve matematiksel işlemleri kullandığını ve 5 ile sonuçlandığını unutmayın. Bir küp kökünü belirtmek için before'dan önce 3 kullanabilirsiniz. Aynı şey, dördüncü bir kökü belirtmek için before'dan önce 4'ü kullanmak için de geçerlidir.
Ayrıca, 33'ü oluşturmak için iki 3'ün kullanılabileceğini veya 333'ü oluşturmak için üç 3'ün kullanılabileceğini unutmayın.
Meydan okuma
- Bir işlev bağımsız değişkeni, STDIN veya komut satırı bağımsız değişkeni olarak iki sayı (her ikisi de 1 ile 5 arasında) verilir .
- İlk sayı hangi basamağın kullanılacağını, ikinci sayı ise bu basamağın ifadede kaç kez kullanılacağını belirtir.
- Programınız, her bir öğenin
(index + 1)
sayı ile sonuçlanan bir matematiksel ifadenin (sadece izin verilen operatörleri kullanarak) mümkün olup olmadığını göstermesi için bir doğruluk / falsy değeri kullanıp kullanamayacağını belirten 10 (veya boşlukla ayrılmış 10 boyut) bir dizi çıkarmalıdır.
Örneğin, giriş
1 3
Sonra çıktı
[1, 1, 1, 0, 0, 0, 0, 0, 0, 1]
çünkü sadece 1, 2, 3 ve 10 üç 1 kullanılarak ifade edilebilir.
Puan
- Bu bir kod golfüdür, bu nedenle bayt cinsinden minimum kod uzunluğu kazanır.
Bonus
Hepsini yazdır [−50]
Çıktı dizisi öğeleri, (index + 1)
doğruluk veya falsi değerleri yerine değeri elde etmek için toplam olası kombinasyon sayısına eşitse puanınızdan 50 çıkarın .
Örneğin, 5'e neden beş 3 's sadece 3 olası kombinasyonları, eğer var ise, çıkış dizisinin 4 inci giriş 3 olmalıdır.
Aşırı Matematik [−100]
Çıktı dizisi öğeleri (index + 1)
değere neden olan gerçek ifadelerden en az birini içeriyorsa puanınızdan 100 çıkarın .
Örneğin, beş 3 'ler ile, çıkış dizisinin 4 inci girişi de olabilir (3^3 + 3)/(3 + 3)
, (33 - 3)/(3 + 3)
ya da3 + 3/3 + 3/3
Aşırı doldu [−200]
Çıkış dizisi öğeleri olası tüm kombinasyonları içeriyorsa (ile ayrılmış |
) 200'ü puanınızdan çıkarın . Bu bonus Ekstrem Matematik bonusunun üstüne eklenir , böylece toplamda −300 elde edersiniz.
Örneğin, beş 3 'ler ile, çıkış dizisinin 4 inci unsuru olmalıdır(3^3 + 3)/(3 + 3)|(33 - 3)/(3 + 3)|3 + 3/3 + 3/3
Not: Aynı sonucu elde etmek için her iki ifade, her ikisinde de farklı bir yaklaşımla mantıksal olarak farklı olmalıdır.
Örneğin, beş 3 ait kullanılarak 5 almak için, 3 + 3/3 + 3/3
aynı 3/3 + 3 + 3/3
veya 3/3 + 3/3 + 3
aynı yaklaşım her biri için alınır çünkü. (3^3 + 3)/(3 + 3)
ve (33 - 3)/(3 + 3)
paydaki 30 farklı yaklaşımlarla elde edildiği için farklılık gösterir.
GÜNCELLEME : Tüm cevaplardan geçtikten sonra, tekli -
ve edge uç vakalar nedeniyle tüm cevapların kusurları olduğu bulunmuştur . Bu nedenle, cevapların bütünlüğü söz konusu olduğunda, bu uç davaları kaçırmak iyi kabul edildi.
Bu zor bir soru, ama oldukça ilginç bir soru.
Mutlu golf!
1
s ile 10'u nasıl alabilirsin ?