Sunting: Saya akan segera memposting versi yang lebih baru dari pertanyaan ini meta-golf
. Tetap diajak bicara!
Sunting # 2: Saya tidak akan lagi memperbarui tantangan, tetapi akan membiarkannya terbuka. The meta-golf
Versi tersedia di sini: /codegolf/106509/obfuscated-number-golf
Latar Belakang:
Sebagian besar angka dapat ditulis dengan hanya 6 simbol yang berbeda:
e
(Konstan Euler)-
(Pengurangan, Bukan Negasi)^
(Eksponen)(
)
ln
(Logaritma Alam)
Misalnya, Anda dapat mengonversi angka imajiner i
menggunakan persamaan ini:
(e-e-e^(e-e))^(e^(e-e-ln(e^(e-e)-(e-e-e^(e-e)))))
Tujuan:
Dengan bilangan bulat apa pun k
melalui cara apa pun yang masuk akal, hasilkan representasi sesingkat mungkin dari angka tersebut hanya dengan menggunakan 6 simbol tersebut.
Contoh:
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)"
Catatan:
- Mengakhiri kurung dihitung terhadap jumlah total karakter.
ln(
hanya dihitung sebagai 1 karakter.- Segala sesuatu yang lain dihitung sebagai 1 karakter.
n^0=1
- Pesanan operasi berlaku
- Kurung mengalikan diterima, misalnya
(2)(8)=16
,2(5)=10
, daneln(e)=e
. ln e
tidak valid, Anda harus melakukannyaln(e)
ln(eeee)^ln(ee)
lebih pendek dari ln(eeeeeeeeeeeeeeee)
untuk 16
ln(ee...e)
) adalah cara terbaik untuk menggambarkan hal positif. Sunting: tidak, tidak.ln(e^(ln(eeeee)ln(eeee)))
lebih baik untuk 20