Dalam varian Four Four puzzle ini, Anda harus menggunakan hingga x
x's
(dan tidak ada nomor lain) dan serangkaian operasi untuk mencapai setiap angka dari 0 hingga 100. Jika x = 4
demikian, Anda dapat menggunakan hingga empat 4s
dan pertanyaan ini menjadi empat merangkak klasik puzzle (kecuali Anda dapat menggunakan hingga empat 4s daripada harus menggunakan persis empat dari mereka). Kami berasumsi 1 < x <= 9
.
Dalam versi ini, hanya operator berikut yang diizinkan:
- Penambahan (
+
), Pengurangan (-
), Perkalian (*
), Divisi (/
). Perhatikan ini adalah pembagian nyata, jadi itu5/2 = 2.5
. - Eksponensial (mis. 4 ^ 4) karena ini tidak melibatkan simbol tambahan jika ditulis secara normal dengan tangan.
- Anda dapat membuat bilangan bulat baru dengan menyatukan
xs
. Misalnya Anda dapat membuat bilangan bulat4, 44, 444, 4444
.
Anda juga dapat menggunakan tanda kurung untuk mengelompokkan angka hanya untuk mengontrol urutan evaluasi operator. Misalnya Anda tidak dapat menggabungkan tanda kurung dengan rangkaian seperti pada (4/4)(4/4) = (1)(1) = 11
.
Tidak ada simbol lain yang dapat digunakan dan urutan operasi standar berlaku.
Program Anda harus menghasilkan, diberikan x
dalam kisaran yang ditentukan dan di n
antara 0
dan 100
inklusif, solusi yang benar untuk input itu jika ada. Kalau tidak, kode Anda harus menampilkan sesuatu untuk menunjukkan tidak ada solusi seperti itu.
Anda harus dapat menjalankan kiriman Anda sampai selesai pada mesin Anda untuk setiap nilai input x
dan n
dalam rentang yang diizinkan. Ini kode golf, sehingga solusi terpendek menang.
Pertanyaan terkait yang lama ini menggunakan lebih banyak operator (dan hanya 4) dan karenanya semua angka dari 0 hingga 100 dapat dipecahkan yang tidak akan berlaku untuk tantangan ini.
Masukan dan keluaran
Kode Anda mengambil dua bilangan bulat x
dan n
sebagai input dan harus menampilkan solusi (atau indikasi tidak ada solusi) dalam format yang dapat dibaca manusia yang Anda rasa nyaman. Input 4 6
berarti "Menggunakan hingga empat 4s, buat angka 6" misalnya. Jadi jika inputnya adalah 4 6
output bisa (4+4)/4+4
.
Jawaban:
Python 3 , 265 byte
Cobalah online!
Berfungsi untuk semua angka dalam referensi yang ditautkan oleh Engineer Toast.
Berjalan hingga
x=8
tio,x=9
membutuhkan beberapa menit di mesin saya.Fungsi
g
mengembalikan satu set semua kombinasi denganx
jumlah paling banyakx
.f
kemudian lewati mereka dan kembalikan yang pertama mengevaluasi ke nomor tersebutn
.Jumlah nilai yang mungkin saya temukan untuk masing
x
- masing adalah:Semua angka-angka di atas dapat dihasilkan dari
(a+b)
,(a-b)
,(a+b)
,a*b
,a/b
,(a/b)
, dana^b
.a+b
dana-b
jangan memberi angka lebih banyak.a^b
juga hanya digunakan sekali, karena jika tidak, angka yang sangat besar akan dibuat (ini juga diverifikasi dalam dokumen referensi di atas)Versi alternatif yang mengalami hubungan arus pendek segera setelah menemukan solusi (tidak seperti golf):
Ini jauh lebih cepat karena
x=7..9
semua nomor dapat dibuat.Python 3 ,
338289 byteCobalah online!
sumber
(4/4**(4-4))
untuk4
) tetapi ternyata bukan itu masalahnya.exit(e)
lebih pendek darireturn e