Edit: meta-golf
Yakında bu sorunun daha yeni bir sürümünü yayınlayacağım . Kalmak!
Edit # 2: Artık meydan okumayı güncellemeyeceğim, ancak açık bırakacağım. meta-golf
Sürümüne buradan ulaşabilirsiniz: /codegolf/106509/obfuscated-number-golf
Arka fon:
Çoğu sayı yalnızca 6 farklı sembolle yazılabilir:
e
(Euler Sabiti)-
(Çıkarma, Olumsuzluk)^
(Üs)(
)
ln
(Doğal logaritma)
Örneğin, i
bu denklemi kullanarak hayali sayıyı dönüştürebilirsiniz :
(e-e-e^(e-e))^(e^(e-e-ln(e^(e-e)-(e-e-e^(e-e)))))
Hedef:
Herhangi k
bir makul yolla herhangi bir tamsayı göz önüne alındığında , yalnızca bu 6 sembolü kullanarak bu sayının mümkün olan en kısa gösterimini yapın.
Örnekler:
0 => "e-e"
1 => "ln(e)"
2 => "ln(ee)"
// Since - cannot be used for negation, this is not a valid solution:
// ln(e)-(-ln(e))
-1 => "e-e-ln(e)"
Notlar:
- Parantez sonunu toplam karakter sayısına doğru bitirmek.
ln(
sadece 1 karakter olarak sayılır.- Diğer her şey 1 karakter olarak sayılır.
n^0=1
- İşlem sırası geçerlidir
- Parantez çoğaltan örneğin, kabul edilebilir
(2)(8)=16
,2(5)=10
veeln(e)=e
. ln e
geçerli değil, yapmalısınln(e)
ln(eeee)^ln(ee)
daha kısadır ln(eeeeeeeeeeeeeeee)
16 için
ln(ee...e)
) pozitifleri tasvir etmenin en iyi yoludur. Düzenleme: hayır, değil.ln(e^(ln(eeeee)ln(eeee)))
20 için daha iyi