Tantangannya sederhana; output enam array integer 2D berikut:
[[ 1, 11, 21, 31, 41, 51],
[ 3, 13, 23, 33, 43, 53],
[ 5, 15, 25, 35, 45, 55],
[ 7, 17, 27, 37, 47, 57],
[ 9, 19, 29, 39, 49, 59]]
[[ 2, 11, 22, 31, 42, 51],
[ 3, 14, 23, 34, 43, 54],
[ 6, 15, 26, 35, 46, 55],
[ 7, 18, 27, 38, 47, 58],
[10, 19, 30, 39, 50, 59]]
[[ 4, 13, 22, 31, 44, 53],
[ 5, 14, 23, 36, 45, 54],
[ 6, 15, 28, 37, 46, 55],
[ 7, 20, 29, 38, 47, 60],
[12, 21, 30, 39, 52]]
[[ 8, 13, 26, 31, 44, 57],
[ 9, 14, 27, 40, 45, 58],
[10, 15, 28, 41, 46, 59],
[11, 24, 29, 42, 47, 60],
[12, 25, 30, 43, 56]]
[[16, 21, 26, 31, 52, 57],
[17, 22, 27, 48, 53, 58],
[18, 23, 28, 49, 54, 59],
[19, 24, 29, 50, 55, 60],
[20, 25, 30, 51, 56]]
[[32, 37, 42, 47, 52, 57],
[33, 38, 43, 48, 53, 58],
[34, 39, 44, 49, 54, 59],
[35, 40, 45, 50, 55, 60],
[36, 41, 46, 51, 56]]
Apa ini array integer 2D? Ini adalah angka yang digunakan dalam trik sulap dengan kartu yang berisi angka-angka ini:
Trik sulap meminta seseorang untuk memikirkan angka dalam kisaran [1, 60], dan memberikan kartu yang melakukan trik sulap semua kartu yang berisi nomor ini. Yang melakukan trik sulap kemudian dapat menjumlahkan angka kiri atas (semua kekuatan 2) dari kartu yang diberikan untuk mendapatkan nomor yang dipikirkan orang itu. Beberapa penjelasan tambahan mengapa ini bisa ditemukan di sini.
Aturan tantangan:
- Anda dapat menampilkan enam array integer 2D dalam format apa pun yang masuk akal. Dapat dicetak dengan pembatas; bisa berupa array integer 3D yang berisi enam array integer 2D; bisa berupa string-list garis; dll.
- Anda diperbolehkan mengisi posisi kanan bawah dari empat kartu terakhir dengan nilai negatif dalam rentang
[-60, -1]
atau karakter'*'
alih-alih meninggalkannya untuk membuat matriks bilangan bulat array persegi bilangan bulat (tidak, Anda tidak boleh mengisinya dengan0
atau tidak). -integer sukanull
/undefined
sebagai alternatif, dengan pengecualian*
karena bintang juga digunakan dalam kartu yang sebenarnya). - Urutan angka-angka dalam matriks adalah wajib. Meskipun itu tidak masalah untuk trik sulap fisik, saya melihat tantangan ini terutama sebagai matriks - kolmogorov-kompleksitas , sehingga pembatasan pesanan.
Urutan matriks itu sendiri dalam daftar keluaran dapat dalam urutan apa pun, karena jelas dari kartu kiri-atas yang merupakan matriks.
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa saja'. - Aturan standar berlaku untuk jawaban Anda dengan aturan I / O default , sehingga Anda diizinkan untuk menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program penuh. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda (yaitu TIO ).
- Juga, menambahkan penjelasan untuk jawaban Anda sangat dianjurkan.
code-golf
number
kolmogorov-complexity
matrix
Kevin Cruijssen
sumber
sumber
n
muncul dik
kartu 'th; di mana tantangan saya adalah KC-challenge untuk menghasilkan enam matriks.)[ascii-art]
tantangan dengan aturan keluaran (MD5) yang ketat, di mana tambang sangat fleksibel (dan baris / kolom dipertukarkan, dan jangkauannya[1,60]
bukan[1,63]
; perbedaan yang cukup kecil, tetapi masih).Jawaban:
MATL ,
1211 byte-1 byte terima kasih kepada tuannya sendiri :)
Penjelasan:
Cobalah online!
sumber
Perl 6 ,
6346 byteCobalah online!
Keluaran sebagai array 2D pada banyak baris, dengan larik terakhir dari masing-masing terputus jika perlu.
sumber
Python 2 , 76 byte
Cobalah online!
Metode di sini adalah membuat daftar semua angka yang mungkin
r(61)
dan kemudian memotongnya ke daftar angka untuk kartui&2**k
.Kemudian, dengan menggunakan pengirisan daftar, daftar angka 1D itu disusun ulang dengan ukuran kartu 6x5 yang benar
[card nums][j::5]for j in r(5)
.Kemudian, generator ini hanya diulang untuk 6 kartu
for k in r(6)
.Meskipun saya tidak dapat menemukan solusi apa pun yang kurang dari 76 byte, berikut adalah dua lainnya yang juga 76 byte:
Cobalah online!
Yang berikutnya ini terinspirasi oleh Jonathan Allan .
Cobalah online!
Setiap komentar sangat dihargai.
sumber
Arang , 26 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Saya mencoba menghitung entri secara langsung tetapi ini sudah 27 byte sebelum menyesuaikan untuk
*
di kanan bawah. Keluaran setiap baris digabungkan dengan spasi dan garis kosong di antara kartu. Penjelasan:sumber
*
untuk bersenang-senang setelah saya melihat bintang-bintang di kartu yang sebenarnya. Bertanya-tanya apakah akan ada bahasa yang menggunakannya, tapi saya senang melihat setidaknya satu bahasa. :) Jawaban bagus!*
setidaknya sesingkat apa pun.05AB1E , 16 byte
Cobalah online!
Penjelasan
05AB1E , 17 byte
Cobalah online!
Penjelasan
sumber
Sekam , 13 byte
Cobalah online!
Penjelasan
sumber
Python 2 ,
82807874 byteCobalah online!
-4 byte, terima kasih kepada Jonathan Allan
sumber
iter
kunci di sini berlebihan karena generator akan melakukan pekerjaan dengan baik .Japt , 14 byte
Cobalah
sumber
JavaScript (ES6),
9088 byteCobalah online!
Berkomentar
sumber
Python 2 , 73 byte
Inspirasi diambil dari TFeld's dan The Matt's .
Cobalah online!
sumber
C (gcc) , 95 byte
Cobalah online!
Mengembalikan matriks sebagai array int 3D di o.
4 matriks terakhir memiliki -1 sebagai nilai terakhir mereka.
Disimpan 2 byte berkat Kevin Cruijssen.
Disimpan
78 byte berkat Arnauld.sumber
o[i][4][5]=-1;for(j=k=0;
kefor(o[i][4][5]=-1,j=k=0;
sehingga kurung dapat dihapus. Jawaban bagus btw, +1 dari saya.#include
untuk menunjukkan bahwa itu bekerja tanpanyaCJam (18 byte)
Demo online . Ini adalah program lengkap yang menampilkan stdout.
Pembedahan
sumber
Jelly , 13 byte
Tautan niladik yang menghasilkan daftar (6) daftar daftar bilangan bulat. (Ini menampilkan pilihan menggunakan default tidak memiliki
*
atau pengisi negatif.)Cobalah online!
Bagaimana?
Banyak dari 15-an tanpa menyadari trik "minimal oleh panjang ketika dibagi menjadi lima":
... dan, ketika berusaha mencari yang lebih pendek, saya mendapatkan 13 lagi tanpa perlu trik sama sekali:
sumber
Bahasa Wolfram (Mathematica) , 88 byte
sumber
Transpose@Partition[#~Append~-1,5]&/@Last@Reap[Do[Sow[k,k~NumberExpand~2],{k,60}],Except@0]
~
trik ini di satu tempat lagi dan mengganti variabelk
denganNull
. Maaf, tidak ada waktu untuk menambahkan tautan tio.Bahasa Wolfram (Mathematica) , 99 byte
Cobalah online!
sumber
Transpose@
alih - alihTranspose[...]
; melapisi hingga 30 entri sebelum dipartisi; gunakanTable[...,{k,6}]
untuk menghindari kebutuhank=#
.Transpose@
berfungsi setelah AndaPadRight
masukPartition
. Komentar lain adalah bahwa pertanyaan itu tampaknya tidak memungkinkan""
bagi pengganti; Anda dapat menggantinya dengan-1
tanpa kehilangan byte apa pun.Jeli , 13 byte
Cobalah online!
Secara longgar didasarkan pada jawaban MATL flawr . Tautan niladik yang menampilkan daftar daftar sesuai kebutuhan.
sumber
R , 73 byte
Saya tidak sepenuhnya yakin apakah saya telah memenuhi persyaratan untuk memesan, karena R secara default mengisi matriks dengan kolom, sehingga urutan sehingga tampak secara fisik pada kartu adalah sama dengan cara alokasi matriks dalam R.
Cobalah online!
sumber
T-SQL, (
1,1681,139 bytes)Saya hanya ingin tahu saya bisa melakukannya.
Versi yang dioptimalkan
Demo online
Cobalah online!
Versi Verbose - dengan catatan sebagai komentar SQL
Voila!
Catatan 1: Beberapa logika berkaitan dengan render kurung dan koma.
Catatan 2: Versi SQLServer yang lebih baru memiliki pendekatan yang lebih ringkas untuk membuat daftar yang dibatasi koma. (Ini dibuat pada SQL Server 2016.)
Catatan 3: Array untuk kartu yang diberikan tidak diurutkan (yang ok per spec). Angka dalam array diurutkan dengan benar. Dalam hal ini, masing-masing "kartu" dari pertanyaan, membuat array pada baris yang terpisah dalam hasil.
Lebih pendek ke array kode keras?
Iya nih.
Byte saya.
sumber
C # (Visual C # Interactive Compiler) , 112 byte
Cobalah online!
sumber
Merah ,
108107 byteCobalah online!
sumber
APL + WIN,
6562 byteCobalah online! Atas perkenan Dyalog Classic
sumber
MATLAB, 155 byte
Ini bisa lebih pendek sebagai beberapa baris tetapi saya ingin melakukannya dalam satu baris kode.
sumber
05AB1E , 14 byte
Cobalah online!
sumber
žO
bukannya adil6L
? Saya tahu Anda tidak menggunakannya di peta Anda, tetapi saya ingin tahu mengapa Anda pernahaeiouy
membuat daftar dengan 6 nilai. xD Jawaban yang bagus, btw!6L
,6и
,5Ý
,5°
, atau9!
.тœ
,₅œ
,₁œ
, juga bekerja, mereka yang cukup dingin juga (:₆b
akan bekerja juga;)