Diberi nomor n
dan l
daftar batas atas angka-angka yang dapat dibuat dengan mengalikan dua atau lebih angka yang terdiri dari hanya tujuh panjang n
atau kurang yang kurang dari l
. A161145 dekat dengan tantangan ini, namun, Anda TIDAK akan menyertakan 7, 77, 777, 7777, 77777, dll.
Contohnya
n=anything, l<49
akan menghasilkan:
[]
n=1, l=49
akan menghasilkan:
7*7=49
f(1,49)=[49]
n=1, l=343
akan menghasilkan:
7*7 =49
7*7*7 =343
f(1,343)=[49,343]
n=2,l=6000
akan menghasilkan:
7*7 =49
7*7*7 =343
7*7*7*7=2401
7*77 =539
7*7*77 =3773
77*77 =5929
f(2,6000)=[49,343,539,2401,3773,5929]
n=3, l=604000
akan menghasilkan:
[49, 343, 539, 2401, 3773, 5439, 5929, 16807, 26411, 38073, 41503, 59829, 117649, 184877, 266511, 290521, 418803, 456533, 603729]
Dll ...
Aturan
- Anda tidak perlu menampilkan langkah-langkah lanjutan, ini dilakukan untuk kejelasan.
- Output dapat berupa array atau dipisahkan oleh karakter apa pun (bahkan baris baru).
- Output harus dalam urutan numerik, terendah hingga tertinggi.
- Untuk membuat judul relevan, tertinggi
n
yang harus ditangani adalahn=77
(jika Anda tidak dapat menangani setinggi itu, perhatikan mengapa - pembatasan bahasa dapat diterima, kemalasan tidak). Keterbatasan ini untuk menghalangi mereka yang ingin membangun seluruh superset di memori. - Jika TIO tidak dapat berjalan
n=77
untuk kode Anda, jelaskan spesifikasi apa yang diperlukan untuk mencapain=77
. - Agar suatu produk valid, harus terdiri dari setidaknya 2 angka.
- Ini adalah kode-golf byte-count terendah akan dianggap menang.
- Anda dapat memilih daftar yang berisi item kurang dari
l
atau kurang dari / sama denganl
. - BONUS : Jika kode Anda tepat 77 byte, pujian dari saya; tidak berharga, saya tahu.
n
atau kurang yang kurang daril
"n=77
danl=7**7**7
, misalnya?Jawaban:
05AB1E , 19 byte
Cobalah online!
Penjelasan
Sangat tidak efisien. TIO link berkinerja
ceil(l^(1/7))
iterasi alih-alihl
iterasi yang digunakan dalam versi golf untuk lebih mudah menguji testcases besar.sumber
$L7ׂ˜
- Mencoba mendapatkan 5 byte, tidak bisa..p
atau.s
terlalu, tetapi bahkan itu tampak lebih lama. Saya secara tidak sengaja menekan 'menyegarkan' pada halaman TIO dengan contoh implementasi saya alih-alih dijalankan, menghapusnya dari keberadaan. Saya pikir itu 26 tahun.Jelly ,
21201918 bytePerhatikan bahwa output tidak cocok dengan OP. Saya telah meninggalkan komentar.
Cobalah online!
Bagaimana itu bekerja
sumber
Python 2 ,
116113109 bytePerhatikan bahwa TIO tidak memiliki cukup memori untuk test case terakhir.
Cobalah online!
sumber
JavaScript (ES6),
103101 byteMengambil input dalam sintaks currying
(n)(l)
.Uji kasus
Kasing uji terakhir mungkin membutuhkan beberapa detik untuk selesai.
Tampilkan cuplikan kode
sumber
PHP, 142 Bytes
-5 Bytes menghapus
$r=[];
dan menggantisort($r);
dengan@sort($r);
Versi Online
Diperluas
Fungsi rekursif membuat semua permutasi termasuk batas
PHP, 145 Bytes
Diperluas
satu loop sampai termasuk batas memeriksa setiap nilai yang dapat dibagi dengan 49
Versi Online
beberapa byte lebih dan array asosiatif dapat dibuat kunci angka dan sebagai nilai array dari tujuh yang digunakan
Versi Online
sumber
while($c=$t*$v[+$i++])$l<$c?f($c)&$r[$c]=$c;
menghemat 3 byte; tapi seharusnya begitu$l<=$c
.$r?sort($r)&print_r($r):0;
bukannya$r=[];
menyimpan satu.$z.=7;
lebih pendek 5 byte dari$z=$z*10+7;
.@
lainnya 4 byte lebih pendek dari$r?...:0;
. (Terima kasih @Christoph)$l<=$c
? Sepertinya kemarin bukan hari saya untuk$z.=7
dan 2 Bytes tambahan yang saya temukan. Saya pertama-tama memikirkan dua saran Anda yang lain. Anda ketinggalan:
dalam loop sementarathat are less than l
, dalam contohnya merekaare less than or equal
. Bergantung pada klarifikasi,$c>$l||...
/$c>$l?:...
atau$c<$l&&...
yang terpendek.Ruby,
8986 byteSolusi rekursif.
-3 byte dengan mengingat bahwa waktu apa pun 0 adalah 0.
Cobalah online!
sumber
Pyth , 22 byte
Cobalah online!
Spesifikasi
l[newline]n
array containing the sorted result
sumber
PHP,
128 125 130 129 127123 byteakan bekerja hingga 22
7
detik tetapi akan membulatkan nilai yang lebih besar (7 ** 23 adalah titik mengambang pada mesin 64 bit).3 byte disimpan oleh Jörg, 3 oleh saya,
5 41 ditambahkan untuk menghindari peringatan untuk hasil kosong.mengambil input dari argumen baris perintah; jalankan dengan
-nr
atau coba online .kerusakan
sumber
for([,$c,$z]=$argv,$n=1+$c;$c<$z;
bukannyafor($n=1+$c=$argv[1];$c<$z=$argv[2];
@
alih-alih$r&&
untuk menekan peringatan?$p<$z&&$r[$p]=$p
$p>$z?:$r[$p]=$p
dari contohn=1, l=343
jelas bahwal
harus dimasukkan. Karenanya tidak ada penghematan saat menggunakan$p>$z||$r[$p]=$p
atau$p>$z?:$r[$p]=$p
.@
; akan mengedit ketika OP membalas.$p>$z||
atau$p<$z&&
. Saya akan tetap dengan deskripsi.Brachylog , 28 byte
Ada banyak ruang untuk perbaikan dalam bahasa itu sendiri, di sini; beberapa hal yang saya tulis terlihat seperti mereka jelas akan diperbaiki dengan beberapa perubahan pada desain bahasa. Ini adalah cara terpendek yang saya temukan dengan versi saat ini. Saya mungkin membuat beberapa saran untuk Brachylog yang akan membuat program ini lebih efisien, lebih pendek, dan lebih mudah dibaca.
Sangat, sangat lambat; TIO mati bahkan pada jawaban nontrivial yang paling sederhana, jadi tidak ada gunanya menyediakan tautan TIO. Saya telah memverifikasi program ini dengan menjalankannya secara lokal.
Ini adalah fungsi (bukan program lengkap), yang outputnya adalah generator (bukan daftar). Tambahkan
.w⊥
ke akhir fungsi jika Anda ingin melihat semua output, bukan hanya yang pertama. (Perhatikan bahwa ini tidak terlalu penting dalam praktiknya, karena program ini terlalu lambat untuk TIO, Anda harus menjalankannya secara lokal, dan penerjemah Brachylog lokal beroperasi dalam REPL yang dapat menggambarkan generator dengan baik.)Penjelasan
sumber
Utilitas Bash + GNU, 108
Cobalah online . TIO membutuhkan waktu sekitar satu menit untuk testcase terakhir. Hasil saya cocok dengan @ Dennis.
sumber
Pyth -
57514942 byteCobalah
sumber
7
dan77
untuk input Anda saat ini.m
alih-alihF
atauV
dll. (Pemrograman fungsional vs. kontrol eksekusi); menggunakanhQ
bukannya@Q0
; menggunakaneQ
bukannya@Q1
; menggunakani*hQ]7T
alih-alih long-loop untuk menghasilkan777...7
.