İkili Sayılar Sihir Numarası


28

Sorun basitçe; aşağıdaki altı 2B tam sayı dizisini çıkar:

[[ 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]]

Bu 2B tamsayı dizileri nelerdir? Bunlar, bir sihir numarasında, bu numaraları içeren kartlarla kullanılan sayılardır:

görüntü tanımını buraya girin

Sihir numarası, birinden [1, 60] aralığında bir sayı düşünmesini ve sihir numarasını gerçekleştiren kişiye bu numarayı içeren tüm kartları vermesini ister. Sihir numarası yapan kişi, verilen kartların sol üstündeki sayıları (2'nin gücünün tamamı) kişinin düşündüğü sayıya ulaşmak için toplayabilir. Bu eserin neden burada bulunduğuna dair bazı ek açıklamalar.

Meydan okuma kuralları:

  • Altı 2B tamsayı dizisini herhangi bir makul biçimde verebilirsiniz. Sınırlayıcılarla basılabilir; altı 2D tamsayı dizisini içeren bir 3D tamsayı dizisi olabilir; satırların bir dize listesi olabilir; vb.
  • Sen aralığında bir negatif değere sahip son dört kartların sağ alt pozisyonu doldurmak için izin verilen [-60, -1]veya karakter '*'diziler tamsayı 2D yapmak için dışarı çıkmak yerine dikdörtgen matrisleri (hayır, onları doldurmak için izin verilmez 0veya olmayan - gerçek kartlarda bir yıldızın kullanılması haricinde, alternatif olarak null/ undefinedalternatif olarak bütünleştirici *).
  • Matrislerdeki sayıların sırası zorunludur. Her ne kadar fiziksel sihir numarası için önemli olmasa da, bu mücadeleyi esasen bir olarak görüyorum - olanı, dolayısıyla kısıtlama.
    Matrislerin kendilerinin çıktı listesindeki sırası, hangi matrisin hangi sol üst karttan anlaşılacağı için herhangi bir sırada olabilir.

Genel kurallar:

  • Bu , bayt cinsinden en kısa cevap kazanır.
    Code-golf dillerinin, codegolfing olmayan dillerle cevap göndermekten vazgeçmesine izin vermeyin. Herhangi bir programlama dili için mümkün olduğunca kısa bir cevap bulmaya çalışın.
  • Standart G / Ç kurallarına cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT işlevlerini, uygun parametreleri içeren fonksiyonlar / yöntemleri ve dönüş tipini, tam programları kullanmanıza izin verilir. Senin çağrı.
  • Varsayılan Loopholes yasaktır.
  • Mümkünse, lütfen kodunuzu test eden bir bağlantı ekleyin (ör. TIO ).
  • Ayrıca, cevabınız için bir açıklama eklemek şiddetle tavsiye edilir.

İlgili. (İçinde olduğu gibi, aynı sihir numarasına değiniyor, ancak bence bu meydan okuma için ilham almak için gerçekten yararlı değil. Bu meydan okuma benim sayımın kartta ngörünüp görünmediğine dair bir hakikat / falsey değeri çıkmasını istiyor k; KC altı mücadelenin çıktısını almak için mücadele ediyor.)
Kevin Cruijssen

1
@DigitalTrauma Hm, bunun gerçekten bir kopya olup olmadığından emin değilim, çünkü meydan okumanız bir sanattır (etiketli değil, ama öyle), oysa bu diziyi daha esnek bir biçimde basmanıza izin verir (sadece dört temelde özdeş şekilde değil). Yine de açılmaya oy veremem, çünkü çekiçim var.
Outgolfer Erik,

@EriktheOutgolfer Woops .. Unuttum, benim de bir çekiçim var>.> Bazen çekiçleri açıp kapatabilmek oldukça can sıkıcıdır .. Zaten 2 oy aldı, bu yüzden senin ve benimkiyle birlikte 4 oy daha vardı. Ama eğer biri tekrar kapatmak isterse umrumda değil. Gerçekten çok benzerler, ancak mücadelesi gerçekten [ascii-art]katı (MD5) çıktı kurallarıyla zorlu olsa da , madenin çok esnek olduğu yerler (ve satırlar / sütunlar değiştirildi ve menzil [1,60]yerine [1,63]oldukça küçük farklılıklar var).
Kevin Cruijssen

Görünüşe göre VTRO'ya "bu benim kıymetli mücadelem !!!" en azından ...: P
Outgolfer Erik,

1
Ben de kırıcıyı unuttum. Yine de bunun tekrar oy vermeye yetecek kadar yakın olduğunu düşünüyorum, ancak yeniden açılırsa toplumun bilgeliğini erteleyeceğim.
Dijital Travma

Yanıtlar:


6

MATL , 12 11 bayt

Efendi'nin kendisi sayesinde -1 bayt :)

60:B"@fQ6eq

Açıklama:

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

Çevrimiçi deneyin!


8

Perl 6 , 63 46 bayt

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

Çevrimiçi deneyin!

Gerekirse her birinin son dizisinin kesilmesiyle birden fazla satırda 2B diziler olarak çıktılar.


7

Python 2,76 bayt

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)]

Çevrimiçi deneyin!

Buradaki yöntem, olası tüm sayıların bir listesini oluşturmaktır. r(61) ve sonra bunu bir kart için sayı listesine düşürmektir i&2**k.

Ardından, liste dilimleme kullanılarak, 1D numaraların listesi doğru 6x5 kart boyutuna göre yeniden düzenlenir. [card nums][j::5]for j in r(5) .

Daha sonra, bu jeneratör 6 kart için sadece tekrar edilir for k in r(6) .


76 bayttan daha az bir çözüm bulamadığım halde, aynı zamanda 76 bayt olan iki tane daha var:

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)]

Çevrimiçi deneyin!

Sıradaki, Jonathan Allan'dan ilham alıyor .

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

Çevrimiçi deneyin!

Herhangi bir yorum büyük beğeni topluyor.


6

Kömür , 26 bayt

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

Çevrimiçi deneyin! Bağlantı, kodun ayrıntılı bir versiyonudur. Girdileri doğrudan hesaplamayı denedim, ancak bu *sağ altta ayarlamadan önce zaten 27 byte idi . Boşluklarla birleştirilen her satırın ve kartlar arasında boş bir satırın çıktısını alın. Açıklama:

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

*Asıl kartlardaki yıldızları gördükten sonra bu kuralı eğlence olsun diye ekledim . Bunu kullanan herhangi bir dil olup olmadığını merak ediyordum, ama en az birinin yaptığını görmekten memnun oldum. :) Güzel cevap!
Kevin Cruijssen

1
@KevinCruijssen Kömürün devrik bir operatörü yok ve en golf devrik, bilinen büyüklükte dikdörtgen bir dizi gerektiriyor, bu yüzden büyüklüğü telafi etmek için bir şeyler eklemem gerekiyor ve *en azından herhangi bir şey olabileceği kadar kısa.
Neil

Bunun 26 bayt olduğunu sanmıyorum ...
Tvde1

@ Tvde1 Kömür, bu sitedeki birçok eskalan gibi, özel bir kod sayfası kullanıyor. Bu sayfadaki karakterler 1 byte, diğer karakterler 4 byte'a mal oluyor.
Neil

6

05AB1E , 16 bayt

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

Çevrimiçi deneyin!

açıklama

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 bayt

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

Çevrimiçi deneyin!

açıklama

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

5

Kabuğu , 13 bayt

ṠMöTC5Wnünḣ60

Çevrimiçi deneyin!

açıklama

          ḣ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.


5

Japt , 14 bayt

6Æ60õ f&2pX)ó5

Dene

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

4

JavaScript (ES6),  90  88 bayt

_=>[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=[]))

Çevrimiçi deneyin!

Yorumlananlar

_ =>                        // 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()


4

C (gcc) , 95 bayt

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;}

Çevrimiçi deneyin!

Matrisleri o cinsinden 3B int dizisi olarak döndürür.

Son 4 matris, son değerleri olarak -1 değerine sahiptir.

Kevin Cruijssen sayesinde 2 bayt kaydedildi.

Kaydedilen 7 8 Arnauld sayesinde bayt.


Sen değiştirerek 2 bayt kaydedebilirsiniz o[i][4][5]=-1;for(j=k=0;için for(o[i][4][5]=-1,j=k=0;parantez kaldırılabilir böylece. Güzel cevap btw, +1 benden.
Kevin Cruijssen


(Not% 100 değilim zaten doğru boyutlarla tahsis 3D dizisi geçirerek izin emin Ama eğer düzenli C golfçüler bu konuda daha iyi anlaşılmasını sağlar bildireceğiz..)
Arnauld

@Bunu düşünmüştüm, ama buna karşı karar verdim.
Matej Mulej

#includeonsuz çalıştığını göstermek için dışarıda bırakmak daha iyi
ASCII sadece

3

CJam (18 bayt)

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

Çevrimiçi demo . Bu stdout çıktısı dolu bir programdır.

teşrih

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

3

Jöle , 13 bayt

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

Tamsayı listelerinin listesini (6) veren bir niladik Bağlantı. (Varsayılan *veya negatif dolgu içermeyen varsayılan seçeneği kullanarak çıktılar .)

Çevrimiçi deneyin!

Nasıl?

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

"Beşe bölündüğü zaman minimum düzeyde" püf noktasını anlamadan 15s.

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

... ve daha kısa bulmaya çalışırken, numaraya gerek olmadan 13 tane daha aldım:

60B€Uz0Ts5ZƊ€

3

Wolfram Dili (Mathematica) , 88 bayt

Transpose@Partition[#~Append~-1,5]&/@Last@Reap[Sow[,NumberExpand[,2]]~Do~{,60},Except@0]

Bir TIO bağlantısı ekleme özgürlüğünü aldım ( @ J42161217'nin cevabına dayanarak ). Benden +1.
Kevin Cruijssen


@ Mr.Xcoder Teşekkürler. Bunu kullandım ~bir daha yerde hile ve değişken değiştirilir ktarafından Null. Üzgünüz, tio bağlantısı eklemek için zaman yok.
Bruno Le Floch

2

Wolfram Dili (Mathematica) , 99 bayt

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

Çevrimiçi deneyin!


Bir kaç karakter kaydedebilirsiniz: Transpose@yerine Transpose[...]; bölümlemeden önce 30 girişe doldurma; kullanarak Table[...,{k,6}]ihtiyacı önlemek için k=#.
Bruno Le Floch,

@Bruno Le Floch Tablo bir bayt kurtarabilir. @ Devrik yapmayı denedin mi? Çünkü dikkatlice izlerseniz işe yaramaz.
Afk

Üzgünüm, içeri Transpose@girdikten sonra çalışıyor . Başka bir yorum ise, sorunun yer tutucuya izin vermediği ; bayt kaybetmeden onu değiştirebilirsiniz . PadRightPartition""-1
Bruno Le Floch,


2

R , 73 bayt

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

Sipariş gereksinimini karşılayıp karşılamadığımdan tam olarak emin değilim, çünkü R varsayılan olarak matrisleri sütunlar halinde doldurur, bu nedenle fiziksel olarak kartlarda görünecek olan sıra, matrislerin R cinsinden tahsis edilme şekliyle aynıdır.

Çevrimiçi deneyin!


Çıktı iyi görünüyor. Ve eğer R matrisleri hemen hemen bütün diğer diller gibi satırdan önce satır yerine satırdan önce sütunlarla doldurursa, sanırım bu zorluk için kullanmak iyi bir programlama dili demektir. :)
Kevin Cruijssen

2

T-SQL, ( 1.168 1.139 bayt)

Sadece yapabileceğimi bilmek istedim.

Optimize edilmiş versiyon

 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

Çevrimiçi demo

Çevrimiçi deneyin!

Ayrıntılı sürüm - SQL yorum olarak notlarla

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

İşte bu kadar!

Not 1: Mantığın bir kısmı köşeli parantez ve virgül oluşturma ile ilgilidir.

Not 2: SQLServer'ın daha yeni sürümleri, virgülle ayrılmış listeler oluşturmak için daha kompakt yaklaşımlara sahiptir. (Bu, SQL Server 2016'da oluşturuldu.)

Not 3: Belirli bir kart için diziler sıralanmamıştır (bu özellik başına tamamdır). Bir dizideki sayılar doğru şekilde sıralanır. Bu durumda, sorunun her "kartı", dizileri sonuçlarda ayrı bir satırda işler.

Sabit kod dizilerine daha mı kısa?

Evet.

Bayt beni


Tanrım, sonucu sadece zorlaştırmak daha kısa olmaz mıydı?
Jo King,

Haha. Ne eğlenceli, ne de genişletilebilir.
youcantryreachingme

Tam olarak anlamıyorum - çözümünüzün sadece tesadüfen çalıştığını mı söylüyorsunuz yoksa spesifikasyonları doğru bir şekilde uyguladığınıza ikna mı oldunuz?
Jonathan Frech

@JonathanFrech - Numaraların sıralanmasını açıkça kodlamadım, ancak dilde garantili bir sıra ile sonuçlanan gizli bir durum olabilir. Doğru artan sırada işlerler. Ayrı olarak, gönderimden sonra, verilerin nasıl sunulacağını (kart başına tek bir küme yerine çizgili diziler halinde) yanlış anladığımı fark ettim - bu sorunu henüz çözmedim. Bu nedenle, sonuç şu anda, beklenen 6 kümenin her birinde artan sırada, doğru sayıları vermektedir - bağlantılı sql kemanına bakınız. Hala yapılacaklar: setleri 5 alt gruba ayırın.
19:19

Çabalarınızı takdir ediyorum ancak çözümünüz doğru değilse lütfen düzeltin veya yayınınızı silin. Genellikle geçersiz cevapların oyalanmasına izin vermiyoruz.
Jonathan Frech




1

MATLAB, 155 bayt

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))

Bu, birden fazla satır olarak daha kısa olabilir ama tek bir kod satırında yapmak istedim.


1
Çıktıyı doğrulayabilmem için test kodlu bir TIO bağlantısı ekleyebilir misiniz ?
Kevin Cruijssen

1

05AB1E , 14 bayt

žOε60LDNo&ĀÏ5ι

Çevrimiçi deneyin!


1
Neden žOsadece yerine 6L? Bunları haritanızda kullanmadığınızı biliyorum, ancak neden aeiouy6 değerli bir liste oluşturduğunuzu merak ediyorum . xD Güzel cevap, btw!
Kevin Cruijssen

1
@KevinCruijssen Özel bir nedeni yok, ben sadece daha komik olduğunu düşünmüş 6L, , , , veya 9!.
Grimmy

Kesinlikle gözüme çarptı, bu kesin. ;)
Kevin Cruijssen

Şimdi fark ettim @KevinCruijssen тœ, ₅œ, ₁œ, ayrıca iş, bu oldukça çok serin vardır (:
Grimmy

₆bde çalışacaktı;)
Kevin Cruijssen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.