Trik Sulap Angka Biner

28

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:

masukkan deskripsi gambar di sini

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 dengan 0atau tidak). -integer suka null/ undefinedsebagai 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 - , 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 , 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.
Kevin Cruijssen
sumber
Terkait (Seperti dalam, itu mengacu pada trik sulap yang sama, tetapi tidak terlalu berguna untuk mendapatkan inspirasi dari untuk tantangan ini, saya pikir. Tantangan itu meminta untuk menghasilkan nilai kebenaran / kepalsuan apakah angka nmuncul di kkartu 'th; di mana tantangan saya adalah KC-challenge untuk menghasilkan enam matriks.)
Kevin Cruijssen
1
@DigitalTrauma Hm, saya tidak begitu yakin apakah ini benar-benar duplikat, karena tantangan Anda adalah ascii-art (tidak ditandai, tetapi memang demikian), sementara yang satu ini memungkinkan Anda untuk output array dengan cara format yang lebih lunak (bukan hanya empat cara yang pada dasarnya identik). Saya tidak dapat memilih untuk membuka kembali, karena saya memiliki palu.
Erik the Outgolfer
@EriktheOutgolfer Woops .. Lupa saya punya palu juga>.> Kadang-kadang bisa menutup / membuka palu cukup mengganggu .. Itu sudah 2 suara sudah, jadi dengan Anda dan saya juga ada 4 suara terbuka. Tetapi jika seseorang ingin menutupnya lagi saya tidak keberatan. Mereka memang sangat mirip, meskipun tantangannya memang merupakan [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).
Kevin Cruijssen
Sepertinya Anda tidak mencoba VTRO dengan sikap "ini tantangan berharga saya !!!" setidaknya ...: P
Erik the Outgolfer
1
Saya juga lupa tentang palu. Saya masih berpikir ini cukup dekat untuk memilih dup, meskipun saya akan tunduk pada kebijaksanaan masyarakat jika dibuka kembali.
Digital Trauma

Jawaban:

6

MATL , 12 11 byte

-1 byte terima kasih kepada tuannya sendiri :)

60:B"@fQ6eq

Penjelasan:

60:           % create a vector [1,2,3,...,60]
   B          % convert to binary matrix (each row corresponds to one number)
    "         % loop over the columns and execute following commands:
     @f       % "find" all the nonzero entries and list their indices
       Q      % increment everything
        6e    % reshape and pad with a zero at the end
          q   % decrement (reverts the increment and makes a -1 out of the zero
              % close loop (]) implicitly
              % display the entries implicitly

Cobalah online!

cacat
sumber
8

Perl 6 , 63 46 byte

say grep(*+&2**$_,^61)[$_,*+5...*for ^5]for ^6

Cobalah online!

Keluaran sebagai array 2D pada banyak baris, dengan larik terakhir dari masing-masing terputus jika perlu.

Jo King
sumber
7

Python 2 , 76 byte

r=range;print[[[i for i in r(61)if i&2**k][j::5]for j in r(5)]for k in r(6)]

Cobalah online!

Metode di sini adalah membuat daftar semua angka yang mungkin r(61)dan kemudian memotongnya ke daftar angka untuk kartu i&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:

r=range;print[[[i for i in r(61)if i&1<<k][j::5]for j in r(5)]for k in r(6)]

Cobalah online!

Yang berikutnya ini terinspirasi oleh Jonathan Allan .

k=32
while k:print[[i for i in range(61)if i&k][j::5]for j in range(5)];k/=2

Cobalah online!

Setiap komentar sangat dihargai.

Matt
sumber
6

Arang , 26 byte

E⁶E⁵⪫E⁶§⁺§⪪Φ⁶¹&πX²ι⁵ν⟦*⟧λ 

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:

E⁶                          Loop over 6 cards
  E⁵                        Loop over 5 rows
     E⁶                     Loop over 6 columns
           Φ⁶¹              Filter over 0..60 where
               π            Current value
              &             Bitwise And
                 ²          Literal 2
                X           Raised to power
                  ι         Card index
          ⪪        ⁵        Split into groups of 5
         §          ν       Indexed by column
        ⁺                   Concatenated with
                      *     Literal string `*`
                     ⟦ ⟧    Wrapped in an array
       §                λ   Indexed by row
    ⪫                       Joined with spaces
                            Implicitly print
Neil
sumber
Saya menambahkan aturan itu *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!
Kevin Cruijssen
1
@KevinCruijssen Charcoal tidak memiliki operator transpose, dan transpose golfiest membutuhkan array persegi panjang dengan ukuran yang diketahui, jadi saya perlu menambahkan sesuatu untuk membuat ukuran, dan *setidaknya sesingkat apa pun.
Neil
Saya tidak berpikir ini adalah 26 byte ...
Tvde1
@ Tvde1 Charcoal, seperti kebanyakan esolang di situs ini, menggunakan halaman kode khusus. Karakter dari halaman itu berharga 1 byte, sedangkan karakter lain berharga hingga 4 byte.
Neil
6

05AB1E , 16 byte

60L2вíƶ0ζε0K5ô®ζ

Cobalah online!

Penjelasan

60L                 # push [1 ... 60]
   2в               # convert each to a list of binary digits
     í              # reverse each
      ƶ             # multiply each by its 1-based index
       0ζ           # transpose with 0 as filler
         ε          # apply to each list
          0K        # remove zeroes
            5ô      # split into groups of 5
              ®ζ    # zip using -1 as filler

05AB1E , 17 byte

6F60ÝNoôāÈϘ5ô®ζ,

Cobalah online!

Penjelasan

6F                  # for N in [0 ... 5] do
  60Ý               # push [0 ... 60]
     Noô            # split into groups of 2^N numbers
        āÈÏ         # keep every other group
           ˜        # flatten
            5ô      # split into groups of 5
              ®ζ    # transpose with -1 as filler
                ,   # print
Emigna
sumber
5

Sekam , 13 byte

ṠMöTC5Wnünḣ60

Cobalah online!

Penjelasan

          ḣ60  Range [1..60]
        ü      Uniquify using equality predicate
         n     bitwise AND: [1,2,4,8,16,32]
 M             For each number x in this list,
Ṡ     W        take the indices of elements of [1..60]
       n       that have nonzero bitwise AND with x,
    C5         cut that list into chunks of length 5
  öT           and transpose it.
Zgarb
sumber
5

Japt , 14 byte

6Æ60õ f&2pX)ó5

Cobalah

6Æ              Create a range from 0 to 5 (inclusive) and map each X into
  60õ             Elements in the range [1..60]
      f             Where
       &2pX)          The number bitwise AND with X is not 0
  ó5              Split into 5 arrays, where each array contains every 5th element

-Q flag is just for formatting purposes
Perwujudan Ketidaktahuan
sumber
4

JavaScript (ES6),  90  88 byte

_=>[1,2,4,8,16,32].map(n=>(g=i=>i<60?g(++i,i&n?m[y%5]=[...m[y++%5]||[],i]:0):m)(y=m=[]))

Cobalah online!

Berkomentar

_ =>                        // anonymous function taking no argument
  [1, 2, 4, 8, 16, 32]      // list of powers of 2, from 2**0 to 2**5
  .map(n =>                 // for each entry n in this list:
    ( g = i =>              //   g = recursive function taking a counter i
      i < 60 ?              //     if i is less than 60:
        g(                  //       recursive call:
          ++i,              //         increment i
          i & n ?           //         if a bitwise AND between i and n is non-zero:
            m[y % 5] =      //           update m[y % 5]:
            [ ...m[y++ % 5] //             prepend all previous values; increment y
              || [],        //             or prepend nothing if it was undefined so far
              i             //             append i
            ]               //           end of update
          :                 //         else:
            0               //           do nothing
        )                   //       end of recursive call
      :                     //     else:
        m                   //       return m[]
    )(y = m = [])           //   initial call to g with i = y = m = []
                            //   (i and y being coerced to 0)
  )                         // end of map()
Arnauld
sumber
4

Python 2 , 73 byte

Inspirasi diambil dari TFeld's dan The Matt's .

k=32
while k:print zip(*zip(*[(i for i in range(61)+[-1]if i&k)]*5));k/=2

Cobalah online!

Jonathan Allan
sumber
4

C (gcc) , 95 byte

i,j,k;f(int o[][5][6]){for(i=6;i;)for(o[--i][4][5]=j=k=-1;j<60;)++j&1<<i?o[i][++k%5][k/5]=j:0;}

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 7 8 byte berkat Arnauld.

Matej Mulej
sumber
Anda dapat menyimpan 2 byte dengan mengubah o[i][4][5]=-1;for(j=k=0;ke for(o[i][4][5]=-1,j=k=0;sehingga kurung dapat dihapus. Jawaban bagus btw, +1 dari saya.
Kevin Cruijssen
1
95 byte
Arnauld
(Perhatikan bahwa saya tidak 100% yakin jika melewati array 3D yang sudah dialokasikan dengan dimensi yang benar diperbolehkan. Tapi saya akan membiarkan pegolf C reguler memberikan wawasan yang lebih baik tentang hal itu.)
Arnauld
@Arnauld saya memikirkan hal itu, tetapi memutuskan untuk tidak melakukannya.
Matej Mulej
lebih baik meninggalkan #includeuntuk menunjukkan bahwa itu bekerja tanpanya
ASCII-hanya
3

CJam (18 byte)

6{61{2A#&},5/zp}fA

Demo online . Ini adalah program lengkap yang menampilkan stdout.

Pembedahan

6{             }fA    # for A = 0 to 5
  61{2A#&},           #   filter [0,61) by whether bit 2^A is set
           5/z        #   break into chunks of 5 and transpose to get 5 lists
              p       #   print
Peter Taylor
sumber
3

Jelly , 13 byte

60&ƇⱮs€5LÐṂZ€

Tautan niladik yang menghasilkan daftar (6) daftar daftar bilangan bulat. (Ini menampilkan pilihan menggunakan default tidak memiliki *atau pengisi negatif.)

Cobalah online!

Bagaimana?

60

60[1,60]5

60&ƇⱮs€5LÐṂZ€ - Link: no arguments
60            - set the left argument to 60
    Ɱ         - map across ([1..60]) with:  (i.e. [f(60,x) for x in [1..60]])
   Ƈ          -   filter keep if:  (N.B. 0 is falsey, while non-zeros are truthy)
  &           -     bitwise AND
      €       - for each:
     s 5      -   split into chunks of five
         ÐṂ   - keep those with minimal:
        L     -   length
           Z€ - transpose each

Banyak dari 15-an tanpa menyadari trik "minimal oleh panjang ketika dibagi menjadi lima":

5Ż2*Ɱ60&ƇⱮs€5Z€
6µ’2*60&Ƈ)s€5Z€
60&ƇⱮ`LÞḣ6s€5Z€

... dan, ketika berusaha mencari yang lebih pendek, saya mendapatkan 13 lagi tanpa perlu trik sama sekali:

60B€Uz0Ts5ZƊ€
Jonathan Allan
sumber
3

Bahasa Wolfram (Mathematica) , 88 byte

Transpose@Partition[#~Append~-1,5]&/@Last@Reap[Sow[,NumberExpand[,2]]~Do~{,60},Except@0]
Bruno Le Floch
sumber
Saya mengambil kebebasan untuk menambahkan tautan TIO (berdasarkan jawaban @ J42161217 ). +1 dari saya.
Kevin Cruijssen
@ Mr.Xcoder Terima kasih. Saya telah menggunakan ~trik ini di satu tempat lagi dan mengganti variabel kdengan Null. Maaf, tidak ada waktu untuk menambahkan tautan tio.
Bruno Le Floch
2

Bahasa Wolfram (Mathematica) , 99 byte

Transpose@Partition[#~FromDigits~2&/@Last@GatherBy[{0,1}~Tuples~6,#[[-k]]&],5]~Table~{k,6}/. 61->-1

Cobalah online!

J42161217
sumber
Anda dapat menyimpan beberapa karakter dengan: melakukan Transpose@alih - alih Transpose[...]; melapisi hingga 30 entri sebelum dipartisi; gunakan Table[...,{k,6}]untuk menghindari kebutuhan k=#.
Bruno Le Floch
@Bruno Le Floch Table dapat menghemat satu byte. Apakah Anda mencoba transpos @? Karena itu tidak berfungsi jika Anda menonton dengan cermat. Saya afk tetapi akan bermain golf nanti
J42161217
Maaf, Transpose@berfungsi setelah Anda PadRightmasuk Partition. Komentar lain adalah bahwa pertanyaan itu tampaknya tidak memungkinkan ""bagi pengganti; Anda dapat menggantinya dengan -1tanpa kehilangan byte apa pun.
Bruno Le Floch
2

Jeli , 13 byte

60B€Uz0µTs5Z)

Cobalah online!

Secara longgar didasarkan pada jawaban MATL flawr . Tautan niladik yang menampilkan daftar daftar sesuai kebutuhan.

Nick Kennedy
sumber
2

R , 73 byte

`!`=as.raw;lapply(0:5,function(i)matrix(c((a=1:60)[(!a&!2^i)>0],-1),5,6))

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!

Aaron Hayman
sumber
Outputnya terlihat bagus. Dan jika R mengisi matriks dengan kolom sebelum baris, bukan baris sebelum kolom seperti hampir semua bahasa lainnya, itu hanya berarti bahasa pemrograman yang baik untuk digunakan untuk tantangan ini, saya kira. :)
Kevin Cruijssen
2

T-SQL, ( 1,168 1,139 bytes)

Saya hanya ingin tahu saya bisa melakukannya.

Versi yang dioptimalkan

 WITH g AS(SELECT 1 AS n UNION ALL SELECT n+1 FROM g WHERE n+1<61),B as(SELECT cast(cast(n&32 as bit)as CHAR(1))+cast(cast(n&16 as bit)as CHAR(1))+cast(cast(n&8 as bit)as CHAR(1))+cast(cast(n&4 as bit)as CHAR(1))+cast(cast(n&2 as bit)as CHAR(1))+cast(cast(n&1 as bit)as CHAR(1))as b FROM g),P as(SELECT * from (values(1), (2), (4), (8), (16), (32)) as Q(p)),S as(select distinct p,p+(substring(b,6,1)*1)*(case when p=1 then 0 else 1 end)+(substring(b,5,1)*2)*(case when p=2 then 0 else 1 end)+(substring(b,4,1)*4)*(case when p=4 then 0 else 1 end)+(substring(b,3,1)*8)*(case when p=8 then 0 else 1 end)+(substring(b,2,1)*16)*(case when p=16 then 0 else 1 end)+(substring(b,1,1)*32)*(case when p=32 then 0 else 1 end)as e from P cross apply B),D as(select * from S where e>=p and e<61),R as(select p,(row_number()over(partition by p order by cast(e as int)))%5 as r,e from D),H as(select k.p,'['+stuff((select','+cast(l.e as varchar)from R l where l.p=k.p and l.r=k.r for xml path('')),1,1,'')+']'as s from R k group by k.p,k.r)select stuff((select','+cast(x.s as varchar)from H x where x.p=z.p for xml path('')),1,1,'')from H z group by z.p

Demo online

Cobalah online!

Versi Verbose - dengan catatan sebagai komentar SQL

WITH gen -- numbers 1 to 60
AS (
    SELECT 1 AS num
    UNION ALL
    SELECT num+1 FROM gen WHERE num+1<=60
),
BINARIES -- string representations of binaries 000001 through 111111
as (
SELECT 
    +cast( cast(num & 32 as bit) as CHAR(1))
    +cast( cast(num & 16 as bit)  as CHAR(1))
    +cast( cast(num & 8 as bit)  as CHAR(1))
    +cast( cast(num & 4 as bit)  as CHAR(1))
    +cast( cast(num & 2 as bit)   as CHAR(1))
    +cast(cast(num & 1 as bit)  as CHAR(1)) as binry FROM gen
),
POWERS -- first 6 powers of 2
as (
SELECT * from (values(1), (2), (4), (8), (16), (32)) as Q(powr)
),
SETELEMENTS -- cross apply the six powers of 2 against the binaries
-- returns 2 cols. col 1 = the power of 2 in question.
-- col 2 is calculated as that power of 2 plus the sum of each power of 2 other than the current row's power value, 
-- but only where a given power of 2 is switched "on" in the binary string, 
-- ie. where the first digit in the string represents 32, the second represents 16 and so on. 
-- That is, if the binary is 100100 then the number will be 
-- the sum of (32 x 1) + (16 x 0) + (8 x 0) + (4 x 1) + (2 x 0) + (1 x 0) 
-- but if the current row's power is 32 or 4, then just that number (32 or 4) is excluded from the sum.
-- rows are distinct.
as (
select distinct powr,
powr+
 (substring(binry,6,1) * 1) * (case when powr = 1 then 0 else 1 end)
 +(substring(binry,5,1) * 2) * (case when powr = 2 then 0 else 1 end)
 +(substring(binry,4,1) * 4) * (case when powr = 4 then 0 else 1 end)
 +(substring(binry,3,1) * 8) * (case when powr = 8 then 0 else 1 end)
 +(substring(binry,2,1) * 16) * (case when powr = 16 then 0 else 1 end)
 +(substring(binry,1,1) * 32) * (case when powr = 32 then 0 else 1 end) as elt
from POWERS cross apply BINARIES
),
DISTINCTELEMENTS -- purge calculated numbers smaller than the power of 2 or greater than 60
as (
select * from SETELEMENTS where elt >= powr and elt < 61
)--,
,
ROWNUMBERED -- for each power, number the rows repeatedly from 0 through 5, then back to 0 through 5 again, etc
as (
select powr, (row_number() over (partition by powr order by cast(elt as int)))%5 as r, elt  from DISTINCTELEMENTS
),
GROUPEDSETS -- for each row number, within each power, aggregate the numbers as a comma-delimited list and wrap in square brackets - the inner arrays
as (
select r1.powr, '['+stuff((select ',' + cast(r2.elt as varchar) from ROWNUMBERED r2 where r2.powr = r1.powr and r2.r = r1.r for xml path('')),1,1,'')+']' as s
from ROWNUMBERED r1
group by r1.powr,r1.r
)
select -- now aggregate all the inner arrays per power
stuff((select ',' + cast(g2.s as varchar) from GROUPEDSETS g2 where g2.powr = g1.powr for xml path('')),1,1,'')
from GROUPEDSETS g1
group by g1.powr

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.

Anda bisa menjangkauku
sumber
Ya ampun, bukankah lebih pendek dari hasil hardcode saja?
Jo King
Ha ha. Tidak menyenangkan, tidak bisa diperluas.
youcantryreachingme
Saya tidak sepenuhnya mengerti - apakah Anda mengatakan bahwa solusi Anda hanya berfungsi secara kebetulan atau Anda yakin telah mengikuti spesifikasi dengan benar?
Jonathan Frech
@ JonathanFrech - Saya tidak secara eksplisit kode untuk pemesanan angka, meskipun mungkin ada kondisi tersirat dalam bahasa yang menghasilkan pesanan yang dijamin. Mereka membuat urutan naik yang benar. Secara terpisah, setelah memposting, saya menyadari bahwa saya telah salah mengerti bagaimana data disajikan (dalam array bergaris per kartu, bukan satu set tunggal per kartu) - jadi belum menyelesaikan masalah itu. Dengan demikian, hasil saat ini membuat angka yang benar, dalam urutan menaik, dalam masing-masing dari 6 set yang diharapkan - lihat biola sql terkait. Yang masih harus dilakukan: pecah set menjadi 5 himpunan bagian masing-masing.
youcantryreachingme
Saya menghargai upaya Anda tetapi jika solusi Anda tidak benar, silakan perbaiki atau hapus posting Anda. Kami biasanya tidak mengizinkan jawaban yang tidak valid untuk berlama-lama.
Jonathan Frech
1

Merah , 108 107 byte

n: 32 until[b: collect[repeat k 60[if n and k = n[keep k]]]loop 5[print
extract b 5 b: next b]1 > n: n / 2]

Cobalah online!

Galen Ivanov
sumber
1

MATLAB, 155 byte

cellfun(@disp,cellfun(@(x)x-repmat(62,5,6).*(x>60),cellfun(@(x)reshape(find(x,30),[5 6]),mat2cell(dec2bin(1:62)-48,62,ones(1,6)),'Uniform',0),'Uniform',0))

Ini bisa lebih pendek sebagai beberapa baris tetapi saya ingin melakukannya dalam satu baris kode.

Paul
sumber
1
Bisakah Anda menambahkan tautan TIO dengan kode uji, sehingga saya dapat memverifikasi hasilnya?
Kevin Cruijssen
1

05AB1E , 14 byte

žOε60LDNo&ĀÏ5ι

Cobalah online!

Grimmy
sumber
1
Kenapa žObukannya adil 6L? Saya tahu Anda tidak menggunakannya di peta Anda, tetapi saya ingin tahu mengapa Anda pernah aeiouymembuat daftar dengan 6 nilai. xD Jawaban yang bagus, btw!
Kevin Cruijssen
1
@KevinCruijssen Tidak ada alasan khusus, saya hanya berpikir itu lucu dari 6L, , , , atau 9!.
Grimmy
Itu pasti menarik perhatian saya, itu pasti. ;)
Kevin Cruijssen
@KevinCruijssen Aku baru sadar тœ, ₅œ, ₁œ, juga bekerja, mereka yang cukup dingin juga (:
Grimmy
₆bakan bekerja juga;)
Kevin Cruijssen