Ada 500 perwakilan hadiah tidak resmi untuk mengalahkan jawaban terbaik saat ini .
Tujuan
Tujuan Anda adalah melipatgandakan dua angka hanya dengan menggunakan rangkaian operasi aritmatika dan penugasan variabel yang sangat terbatas.
- Tambahan
x,y -> x+y - Timbal balik
x -> 1/x( bukan pembagianx,y -> x/y) - Negasi
x -> -x( bukan penguranganx,y -> x-y, meskipun Anda bisa melakukannya sebagai dua operasix + (-y)) - Konstanta
1(tidak ada konstanta lain yang diizinkan, kecuali dihasilkan oleh operasi dari1) - Tugas variabel
[variable] = [expression]
Penilaian: Nilai mulai dalam variabel adan b. Tujuan Anda adalah untuk menyimpan produk mereka a*bke dalam variabel cmenggunakan sesedikit mungkin operasi. Setiap operasi dan penugasan +, -, /, =biaya satu titik (setara, setiap penggunaan (1), (2), (3), atau (4)). Konstanta 1gratis. Solusi poin paling sedikit menang. Tiebreak adalah posting paling awal.
Kelonggaran: Ekspresi Anda harus benar secara aritmatika untuk real "acak" adan b. Hal ini dapat gagal pada subset ukuran nol dari R 2 , yaitu satu set yang tidak memiliki area jika diplot di a- bpesawat Cartesian. (Ini mungkin diperlukan karena kebalikan dari ekspresi yang mungkin 0seperti itu 1/a.)
Tatabahasa:
Ini adalah atom-kode-golf . Tidak ada operasi lain yang dapat digunakan. Secara khusus, ini berarti tidak ada fungsi, kondisional, loop, atau tipe data non-numerik. Berikut adalah tata bahasa untuk operasi yang diizinkan (kemungkinan dipisahkan oleh |). Suatu program adalah urutan <statement>s, di mana a <statement>diberikan sebagai berikut.
<statement>: <variable> = <expr>
<variable>: a | b | c | [string of letters of your choice]
<expr>: <arith_expr> | <variable> | <constant>
<arith_expr>: <addition_expr> | <reciprocal_expr> | <negation_expr>
<addition_expr>: <expr> + <expr>
<reciprocal_expr>: 1/(<expr>)
<negation_expr>: -<expr>
<constant>: 1
Anda sebenarnya tidak harus memposting kode dalam tata bahasa yang tepat ini, asalkan jelas apa yang Anda lakukan dan jumlah operasi Anda benar. Misalnya, Anda dapat menulis a-buntuk a+(-b)dan menghitungnya sebagai dua operasi, atau mendefinisikan macro untuk singkatnya.
(Ada pertanyaan sebelumnya, Multiply tanpa Multiply , tetapi memungkinkan serangkaian operasi yang lebih longgar.)
