L-phabet'i Yazdır / Çıktı


65

George Gibson'dan esinlenildi Bir Tabula Recta yazdırın .

Bu tam metni basacak / çıkacaksınız:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
BBCDEFGHIJKLMNOPQRSTUVWXYZ
CCCDEFGHIJKLMNOPQRSTUVWXYZ
DDDDEFGHIJKLMNOPQRSTUVWXYZ
EEEEEFGHIJKLMNOPQRSTUVWXYZ
FFFFFFGHIJKLMNOPQRSTUVWXYZ
GGGGGGGHIJKLMNOPQRSTUVWXYZ
HHHHHHHHIJKLMNOPQRSTUVWXYZ
IIIIIIIIIJKLMNOPQRSTUVWXYZ
JJJJJJJJJJKLMNOPQRSTUVWXYZ
KKKKKKKKKKKLMNOPQRSTUVWXYZ
LLLLLLLLLLLLMNOPQRSTUVWXYZ
MMMMMMMMMMMMMNOPQRSTUVWXYZ
NNNNNNNNNNNNNNOPQRSTUVWXYZ
OOOOOOOOOOOOOOOPQRSTUVWXYZ
PPPPPPPPPPPPPPPPQRSTUVWXYZ
QQQQQQQQQQQQQQQQQRSTUVWXYZ
RRRRRRRRRRRRRRRRRRSTUVWXYZ
SSSSSSSSSSSSSSSSSSSTUVWXYZ
TTTTTTTTTTTTTTTTTTTTUVWXYZ
UUUUUUUUUUUUUUUUUUUUUVWXYZ
VVVVVVVVVVVVVVVVVVVVVVWXYZ
WWWWWWWWWWWWWWWWWWWWWWWXYZ
XXXXXXXXXXXXXXXXXXXXXXXXYZ
YYYYYYYYYYYYYYYYYYYYYYYYYZ
ZZZZZZZZZZZZZZZZZZZZZZZZZZ

(Evet, elle yazdım)

Büyük harf yerine tüm küçük harfleri kullanmanıza izin verilir.

Ancak, dava seçiminiz tüm metin boyunca tutarlı olmalıdır.

Kurallar / Gereksinimler

  • Her gönderim tam bir program veya işlev olmalıdır. Eğer bu bir fonksiyon ise, fonksiyon çağrısını sadece programın altına eklemek zorunda kalarak çalıştırılabilir olmalıdır. Başka herhangi bir şey (örn. C'deki başlıklar) dahil edilmelidir.
  • Mümkünse, programınızın test edilebileceği bir siteye bağlantı sağlayın.
  • Programınız hiçbir şey yazmamalı STDERR.
  • Standart Loopholes yasaktır.
  • Programınız her durumda çıktı verebilir, ancak yazdırılması gerekir (bir dizi veya benzeri değil).

puanlama

Programlar baytlara göre, UTF-8'de varsayılan olarak veya seçtiğiniz farklı bir karakter kümesinde puanlanır.

Sonunda en az bayt olan cevap kazanacaktır.

gönderimler

Cevabınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak cevabınızı bir başlık ile başlatın:

# Language Name, N bytes

Gönderinizin Nbüyüklüğü nerede ? Puanınızı artırmak varsa, olabilir onları içinden vurarak, başlığa eski hesapları tutmak. Örneğin:

# Ruby, <s>104</s> <s>101</s> 96 bytes

Başlığınıza birden fazla sayı eklemek istiyorsanız (örneğin, puanınız iki dosyanın toplamı olduğundan veya tercüman bayrağı cezalarını ayrı ayrı listelemek istediğiniz için), gerçek puanın başlıktaki son sayı olduğundan emin olun :

# Perl, 43 + 2 (-p flag) = 45 bytes

Dil adını, daha sonra büyük afiş snippet'inde görünecek bir bağlantı da yapabilirsiniz:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes

Liderler Sıralaması

Burada hem düzenli bir lider tablosu hem de kazananların dile göre bir genel bakışını oluşturmak için bir Stack Snippet'i var.



5
Çıktı (bir fonksiyonun dönüş değeri olarak) bir satır dizisi olabilir mi?
Doorknob

@Doorknob hayır derdim.
Leaky Nun

@GeorgeGibson Evet.
Leaky Nun

@LeakyNun İzleyen bir newline izin veriliyor mu?
Jakube,

Yanıtlar:


61

Excel, 19.604 bayt

=CHAR(64+MAX(COLUMN(),ROW()))

Bu formülü yapıştırın A1, ardından her yere sürükleyin A1:Z26.

Bayt sayısı:

  1. Formül 27 bayttır.
  2. 26 ^ 2 kez kopyalamanız gerekir. 27 * 26 * 26 = 19604.
  3. Ben ve diğerleri puanın düşük olması gerektiğini düşündüm çünkü formülü tekrar tekrar yazmanıza gerek yok. Şimdi bunun alakasız olduğunu düşünüyorum - programın boyutunu sayıyoruz, onu yazmak için harcanan işi değil.
  4. Karşılaştırma için - bkz. 28,187 karakter JS cevabı - açıkçası, birileri tüm bunları yazmak yerine onu oluşturdu, ancak boyutunu değiştirmedi.

22
Bu beni güldürdü, bunu saymak için meta sking yazmalısınız
Rohan Jhunjhunwala

19
Bunun için adil bir sayı 45 olacaktır: (1) A1:Z26Ad Kutucuğuna yazınız (formül çubuğunun solunda) [ 7 bytes]; (2) tip =CHAR(64+MAX(COLUMN(),ROW()))+ formül çubuğuna [ 30 bayt] girin; (3) Alt E I D Alt E I Rseçilen aralığı [ 8 byte] doldurmak için yazın . Toplam 7 + 30 + 8 = 45 .
Joffan

8
Otomatik tamamlamanın daha az sayıda bayt olarak sayıldığını sanmıyorum. Sonra tartışmalı bir şekilde netbekleri tartıştığını söyleyerek javamı küçültebilirdim. Tuş vuruşları ile yapılan önlemin 46 tuş
vuruşuyla

3
@rohan Ben, biri için Java + otomatik tamamlama dilini arayarak mükemmel bir şekilde iyi olur.
John Dvorak

5
@Joffan [A1:Z26]="=CHAR(64+MAX(COLUMN(),ROW()))"40 bayttır ve hala zarif
Anastasiya-Romanova 秀

39

Vim, 43 bayt

:h<_↵jjYZZPqqlmaYp`ajyl:norm v0r♥"↵`ajq25@q

Burada Return ( 0x0a) ve Ctrl-R ( 0x12) temsil edilir .

Tabula Recta'mın yanıtı kadar kısa değil, ama…

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


3
ne. . cehennem. dır-dir. bu. kahrolası. büyü.
haneefmubarak

1
Hangi yardım sayfasını açıyorsun? Ne zaman Yapmam h<_↵beni getiriyor:help at_t
DJMcMayhem

v_b_<_exampleCygwin için Vim 7.4'te açıyorum .
Lynn,

@haneefmubarak Evet, Vim'in büyüsü.
Chromium,

28

Jöle, 6 bayt

ØA»'j⁷

Burada dene. Keşke dün tembel olmasaydım ve şu bir baytlık alternatifi j⁷uygulasaydım (newlines'a katıl)…

ØA      The uppercase alphabet.
  »'    Table of max(x, y).
    j⁷  Join by newlines.

7
Argh, ninja birkaç dakikaya kadar ... Bu alternatif, zincir çatal olacağından beri yardımcı olamazdı.
Dennis,

Aptalca bir soru, ancak eğer bu 6 byte ise hangi karakter kümesindedir?
Bay Lister,

@ MrLister: Cevabın başlığında Jelly kodu sayfasına bir link ekledim.
Lynn

Linefeed ile katılın Y.
PurkkaKoodari

@ Pietu1998 Sanırım Ygönderim zor olsa da
tarihle çıkıyor

17

brainfuck, 103 96 95 91 87 bayt

+++++[>+++++>++<<-]>+[[<<<+>>>-]----[<+>----]<+<<[>+>+>+<<<-]>-]>>[[<.>-]>[.>>]<<[<]>>]

Bu, 64 için Esolangs'ın brainfuck sabitini kullanır . Çevrimiçi deneyin!


16

/// , 141 94 92 82 bayt

/:/\\\\A//#/:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z://:/\/a#
\/a\///A/#

Çevrimiçi deneyin: Gösteri

Oldukça eğlenceli bir dil.

Açıklama:

Yalnızca 4 x 4 kare yazdırmak için kısa kod:

/:/\\\\A//#/:b:c:d://:/\/a#
\/a\///A/#

İlk yedek /:/\\\\A/değiştirir :ile \\A. Bu verir:

/#/\\Ab\\Ac\\Ad\\A//\\A/\/a#
\/a\///A/#

Sonra /#/\\Ab\\Ac\\Ad\\A//\\A/yerini #ile \Ab\Ac\Ad\A:

/\\A/\/a\Ab\Ac\Ad\A
\/a\///A/\Ab\Ac\Ad\A

Şimdi sonraki koddaki /\\A/\/a\Ab\Ac\Ad\A<newline>\/a\//her birini değiştirir , bu nedenle şöyle sonuçlanır:\A/aAbAcAdA<newline>/a/

/A//aAbAcAdA
/a/b/aAbAcAdA
/a/c/aAbAcAdA
/a/d/aAbAcAdA
/a/

Şimdi ilk kısım /A//hepsini As.

abcd
/a/b/abcd
/a/c/abcd
/a/d/abcd
/a/

İlk beş karakter abcd<newline>basılıyor. Bir sonraki komut /a/b/yerine agöre bsonuçlanan:

bbcd
/b/c/bbcd
/b/d/bbcd
/b/

Yine ilk beş karakter bbcd<newline>basılıyor. Bir sonraki komutu /b/c/yerine geçer bgöre c:

cccd
/c/d/cccd
/c/

Yine ilk beş karakter cccd<newline>basılıyor. Bir sonraki komutu /c/d/yerine geçer cgöre d:

dddd
/d/

İlk beş karakter dddd<newline>basılıyor. Ve bir sonraki komut /d/eksik ve bu nedenle hiçbir şey yapmıyor.


Kahretsin, bu akıllıca. İyi iş. :) Bu satırlar boyunca tabula recta mücadelesine bir çözüm önerileri?
Martin Ender

@MartinEnder Hayır, henüz değil. Akşamları ona bakacağım. Bu zorluk nedeniyle öğle yemeği molasını zaten tam bir saate (normalin iki katı) uzattı.
Jakube 11

Bir şey buldum (fikirlerinizi, özellikle de bir karakterden diğerini işlemek için sonraki yönergeleri değiştirme şeklinizi kullanarak) fikirlerinizden çok faydalandım.
Martin Ender


10

Mathematica, 69 65 57 bayt

@MartinEnder nedeniyle 8 bayt kaydedildi .

FromCharacterCode[64+Max~Array~{26,26}]~StringRiffle~"
"&

Anonim işlev Giriş yapmaz ve bir dize çıktı olarak döndürür. Temel olarak char('A' + max(x, y)), tüm x , y'yi 1'den 26'ya kadar alır.


5
10k için tebrikler!
Loovjo

9

/// , 348 bayt

/|/\/\///v/NNN|u/MMM|t/LLL|s/WXYZ|r/OOO|q/KLMa|p/RRRR|o/QQQQ|n/PPPP|m/SSS|l/EFGc|k/RSTb|j/UUUU|i/TTTT|h/WWW|g/VVV|f/XXXX|e/ZZZZZ|d/YYYYY|c/HIJq|b/UVs
|a/NOPQk/ABCDlBBCDlCCCDlDDDDlEEEElFFFFFFGcGGGGGGGcHHHHHHHcIIIIIIIIIJqJJJJJJJJJJqKKKKKKKKKKqttttMauuuuMavvvvNarrrrrPQknnnnQkooooQkppppRkmmmmmmSTbiiiiibjjjjjbgggggggVs
hhhhhhhWs
ffffffYZ
dddddZ
eeeeeZ

Çevrimiçi deneyin!

Bunu oluşturmak için aynı tekniği kullandım, bunun dayandığı zorluğa /// cevabım . Ancak, CJam komut dosyasını düzeltmem gerekiyordu çünkü üst üste gelebilecek alt dizeleri doğru işlemiyordu .


Ben gerçekten bu dili ... öğrenmemiz gerekiyor
George Gibson

9

Retina , 41 bayt

Bayt sayısı, ISO 8859-1 kodlamasını varsayar. Lider hat beslemesi önemlidir.


26$*Z
{`^[^A].+
$&¶$&
}T0-2`L`_L`^(.)\1+

açıklama


26$*Z

Dizeyi 26 kopyaya ayarlayın Z. Ardından, {...}Retina'ya, dize değişmeyi bırakana kadar kalan iki talimatı bir döngüde gerçekleştirmesini isteyin.

{`^[^A].+
$&¶$&

Bir ile başlamazsa ilk satırı çoğaltın A.

}T0-2`L`_L`^(.)\1+

Bu bir harf çevirisi aşamasıdır. Yalnızca dize aynı karakterden en az iki kopyayla başlarsa uygulanır. Eğer öyleyse, bu karakterlerin sonuncusu hariç tümü azalır. Azalma, L(büyük harf alfabe) ile _L(boş sonra büyük harf alfabe) eşleştirilerek gerçekleşir . "Hepsi hariç, sonuncusu", -2Retina'ya maçtaki tüm karakterleri yalnızca ikinci karaktere kadar harmanlamasını söyleyen sınır ile belirtilir .

Çevrimiçi deneyin!


2
100 bin dolar! :)
Yytsi

8

Haskell, 35 bayt

a=['A'..'Z']
unlines$(<$>a).max<$>a

8

Python 2, 59 bayt

n=0;exec'print bytearray([n+65]*n+range(n+65,91));n+=1;'*26

İdeone üzerinde test et .


7

R, 58 bayt

l=LETTERS;for(i in 1:26){l[2:i-1]=l[i];cat(l,"\n",sep="")}

Operatör önceliği sayesinde 2:i-1eşittir 1:(i-1). LETTERSBüyük harfle alfabeyi içeren yerleşik sabiti kullanır . Geriye kalan her şey kendi kendini açıklayıcı nitelikte.
Kullanımı:

> l=LETTERS;for(i in 1:26){l[2:i-1]=l[i];cat(l,"\n",sep="")}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
BBCDEFGHIJKLMNOPQRSTUVWXYZ
CCCDEFGHIJKLMNOPQRSTUVWXYZ
DDDDEFGHIJKLMNOPQRSTUVWXYZ
EEEEEFGHIJKLMNOPQRSTUVWXYZ
FFFFFFGHIJKLMNOPQRSTUVWXYZ
GGGGGGGHIJKLMNOPQRSTUVWXYZ
HHHHHHHHIJKLMNOPQRSTUVWXYZ
IIIIIIIIIJKLMNOPQRSTUVWXYZ
JJJJJJJJJJKLMNOPQRSTUVWXYZ
KKKKKKKKKKKLMNOPQRSTUVWXYZ
LLLLLLLLLLLLMNOPQRSTUVWXYZ
MMMMMMMMMMMMMNOPQRSTUVWXYZ
NNNNNNNNNNNNNNOPQRSTUVWXYZ
OOOOOOOOOOOOOOOPQRSTUVWXYZ
PPPPPPPPPPPPPPPPQRSTUVWXYZ
QQQQQQQQQQQQQQQQQRSTUVWXYZ
RRRRRRRRRRRRRRRRRRSTUVWXYZ
SSSSSSSSSSSSSSSSSSSTUVWXYZ
TTTTTTTTTTTTTTTTTTTTUVWXYZ
UUUUUUUUUUUUUUUUUUUUUVWXYZ
VVVVVVVVVVVVVVVVVVVVVVWXYZ
WWWWWWWWWWWWWWWWWWWWWWWXYZ
XXXXXXXXXXXXXXXXXXXXXXXXYZ
YYYYYYYYYYYYYYYYYYYYYYYYYZ
ZZZZZZZZZZZZZZZZZZZZZZZZZZ

Yeni bir kullanıcı Cevabınız golf için bir öneri var burada
Kritixi Lithos

7

Sesos , 25 bayt

0000000: 2829c0 756fc6 aecae2 aecd9c 39e09e 099c63 7d8e3d  ().uo.......9....c}.=
0000015: 65a7c0 39                                         e..9

Çevrimiçi deneyin! Kontrol Debug oluşturulan SBIN kodunu görmek için.

Sesos derleme

Yukarıdaki ikili dosya aşağıdaki SASM kodunu birleştirerek oluşturulmuştur.

add 26
jmp
    jmp
        rwd 1, add 1, rwd 1, add 1, fwd 2, sub 1
    jnz
    rwd 2, add 64
    jmp
        fwd 2, add 1, rwd 2, sub 1
    jnz
    fwd 1, sub 1
jnz
fwd 1
jmp
    jmp
        rwd 1, add 1, fwd 1, sub 1
    jnz
    nop
        rwd 1
    jnz
    fwd 1
    jmp
        put, add 1, fwd 1
    jnz
    fwd 1
    jmp
        put, fwd 1
    jnz
    add 10, put, get
    nop
        rwd 1
    jnz
    fwd 1
; jnz (implicit)

Nasıl çalışır

Kaseti başlatarak başlıyoruz ABCDEFGHIJKLMNOPQRSTUVWXYZ. Bu aşağıdaki gibidir.

Kaseti aşağıdaki durumda bırakarak bir hücreye 26 yazın .

                                                       v
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 0

Veri başlığının altındaki hücre sıfır olmadıkça, aşağıdakileri yaparız.

Sayıyı iki hücreye sola kopyalayın ve 64'ü en soldaki kopyaya ekleyin .

                                                   v
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 26 0 0

En soldaki kopyayı orijinal konumuna taşıyın, sonra en sağdaki kopyadan 1'i çıkarın.

                                                     v
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 90 0

İşlem 26 yinelemeden sonra durur , çünkü en sağdaki kopya 0'a göredir . Bir hücreyi sağa doğru hareket ettiririz; bu nedenle, başlatmanın ardından bandın son hali aşağıdaki gibidir.

     v
0 0 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

Şimdi veri başlığının altındaki hücre sıfır olana kadar aşağıdaki işlemi tekrarlayarak çıktıyı üretmeye hazırız.

İlk önce, veri başlığının altındaki hücrenin içeriğini bir birim sola, ardından sıfır olmayan bir içeriğe sahip son hücreye kadar sola hareket ettiririz.

   v
0 65 0 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

Şimdi, veri kafasının altındaki ile başlayan ve 0 hücreyi bulana kadar hareket eden ve yazdırdıktan sonra her yazdırılan hücreyi artıran tüm hücreleri yazdırıyoruz. Yazdırdıktan sonra A, bant aşağıdaki gibi görünür.

     v
0 66 0 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

Şimdi sağa hareket ediyoruz, tekrar bir 0 hücre karşılaşıncaya kadar tüm hücreleri yazdırıyoruz . Yazdırdıktan sonra BCDEFGHIJKLMNOPQRSTUVWXYZ, bant aşağıdaki gibi görünür.

                                                                                  v
0 66 0 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

Şimdi, geçerli hücreye 10 yazıyoruz , karşılık gelen karakteri yazdırıyoruz (satır getbeslemesi ) ve boş girişe bir çağrı yaparak hücreyi sıfırlayarak bandı değiştirmeden bırakıyoruz.

Son olarak, bir sonraki yineleme için bandı hazırlayarak en sola sıfır olmayana doğru hareket ediyoruz.

        v
0 66 0 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

Bir sonraki yineleme benzer. Önce 66 bir hücreyi sola taşırız, her iki 66 hücreyi ( BB) basarız ve onları 67'ye yükseltiriz , sonra kalan sıfır olmayan hücreleri sağa basarız ( CDEFGHIJKLMNOPQRSTUVWXYZ) ve son olarak veri kafasını 67'ye yerleştiririz , bandı şu şekilde bırakırız .

           v
0 66 66 0 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 0

Sonra 24 daha tekrarlamalar ve baskı sonrası ZZZZZZZZZZZZZZZZZZZZZZZZZZve bir satır besleme, bantlar aşağıdaki durumda bırakılır.

                                                                                  v
0 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 91 0 0

Veri kafasını sola, bir sonraki sıfır olmayan hücreye taşımak, geçerli konumunda bırakacaktır, böylece altındaki hücre 0 olur ve döngü sonlanır.



6

Matlab / Octave, 43 39 bayt

@ Baykan'ın char'a[...,''] dönüştürmek için kullanma fikri sayesinde 1 bayt kaldırıldı .

@()[91-rot90(gallery('minij',26),2),'']

Bu, 2B karakter dizisini döndüren adsız bir işlevdir.

Ideone'da dene .

açıklama

gallery('minij',...) her girişin satır ve sütun indekslerinin minimumuna eşit olduğu bir matris verir:

 1     1     1     1  ...
 1     2     2     2
 1     2     3     3
 1     2     3     4
 ...

Bu, şu şekilde 180 derece döndürülür rot90(...,2):

26    25    24    23  ...
25    25    24    23
24    24    24    23
23    23    23    23
...  

Bu 91-...işlem ASCII'ye büyük harf kodlarını verir:

65    66    67    68
66    66    67    68
67    67    67    68
68    68    69    68 ...
...

Sonunda [...,'']boş bir dize ile yatay olarak birleştirir. Bu char'a dönüştürme etkisine sahiptir.


1
Çok akıllıca kullanımıgallery
Suever

2
Ne yazık ki hayır gallery('maxij',...), ha? ;)
Martin Ender

@MartinEnder Tamamen! :-) BTW, Mathematica yerleşik bekliyorum ...
Luis Mendo

Uzun süre beklemek üzeresiniz, bu ip tabanlı bir mücadeledir. : P
Martin Ender

6

PowerShell v2 +, 76 52 40 bayt

65..90|%{-join[char[]](,$_*$i+++$_..90)}

Döngüler 65için 89. Her yineleme, mevcut sayıdan oluşur virgülle operatörünü kullanarak bir dizi inşa ediyoruz $_sonrası artırılır yardımcı değişkeni ile çarpılır $i++akım sayı dizisi ile birleştirilmiş, $_için 90. Bu bir karakter dizisi dökümünde kapsüllenir ve -joinbir dizgede birleştirilir. Örneğin, ilk yineleme için bu dizi 65..90alfabenin tümüne veya tüm alfabeye eşdeğer olacaktır . İkinci yineleme 66+66..90veya Btekrarlanan ve hayır ile tüm alfabe olur A.

Bunların tümü, program sonunda (bir dizi olarak) boru hattında bırakılır ve konsola yazdırmak, örtüktür ( .ToString()bir dizinin varsayılanı newline ile ayrılır, bu yüzden onu bedavaya alırız).

PS C:\Tools\Scripts\golfing> .\print-the-l-phabet.ps1
ABCDEFGHIJKLMNOPQRSTUVWXYZ
BBCDEFGHIJKLMNOPQRSTUVWXYZ
CCCDEFGHIJKLMNOPQRSTUVWXYZ
DDDDEFGHIJKLMNOPQRSTUVWXYZ
EEEEEFGHIJKLMNOPQRSTUVWXYZ
FFFFFFGHIJKLMNOPQRSTUVWXYZ
GGGGGGGHIJKLMNOPQRSTUVWXYZ
HHHHHHHHIJKLMNOPQRSTUVWXYZ
IIIIIIIIIJKLMNOPQRSTUVWXYZ
JJJJJJJJJJKLMNOPQRSTUVWXYZ
KKKKKKKKKKKLMNOPQRSTUVWXYZ
LLLLLLLLLLLLMNOPQRSTUVWXYZ
MMMMMMMMMMMMMNOPQRSTUVWXYZ
NNNNNNNNNNNNNNOPQRSTUVWXYZ
OOOOOOOOOOOOOOOPQRSTUVWXYZ
PPPPPPPPPPPPPPPPQRSTUVWXYZ
QQQQQQQQQQQQQQQQQRSTUVWXYZ
RRRRRRRRRRRRRRRRRRSTUVWXYZ
SSSSSSSSSSSSSSSSSSSTUVWXYZ
TTTTTTTTTTTTTTTTTTTTUVWXYZ
UUUUUUUUUUUUUUUUUUUUUVWXYZ
VVVVVVVVVVVVVVVVVVVVVVWXYZ
WWWWWWWWWWWWWWWWWWWWWWWXYZ
XXXXXXXXXXXXXXXXXXXXXXXXYZ
YYYYYYYYYYYYYYYYYYYYYYYYYZ
ZZZZZZZZZZZZZZZZZZZZZZZZZZ

6

C #, 147 bayt

void e(){for(int i=0,j=97;i<26;i++,j++)Console.WriteLine(new string((char)j,i)+new string(Enumerable.Range(j,26-i).Select(n=>(char)n).ToArray()));}

bazen neden denediğimi bile merak ediyorum

düzenleme: düzeltildi

Çevrimiçi deneyin


Aslında, kimsenin yapmadığı System.Console yazmamı gerektiren Konsolu kullanıyorum.
downrep_nation

j = 97 ayarını göz önünde bulundurun ve ben beilieve (char) j + i + "" işe yarayabilir ve daha kısa olabilir, ancak yalnızca java'yı biliyorum, bu yüzden emin değilim
Rohan Jhunjhunwala

j ilk karakter için ofset olarak kullanılır. eğer j = 97 yaparsam j ++ aswell yapmam gerekir
downrep_nation

2
üzücü olan şey,
beyin fırtınası

1
Çalıştırdığımda doğru cevabı çıkarmıyor, denemek için bir link ekleyebilir misiniz?
TheLethalCoder

5

MATL, 10 bayt

lY2t!2$X>c

Çevrimiçi demo (Bu tercümanla ilgili sorunlarınız varsa, beni MATL sohbetine pingleyin . Ayrıca,sorunlarınız olması durumunda TIO bağlantısı da burada )

açıklama

lY2     % Push an array of characters to the stack: 'AB...Z'
t!      % Duplicate and transpose
2$X>    % Take the element-wise maximum between these two (with expansion)
c       % Explicitly convert back to characters
        % Implicitly display the result.

5

Python 2, 76 70 68 bayt

a=range(65,91)
i=0
for c in a:a[:i]=[c]*i;i+=1;print'%c'*26%tuple(a)

Bağlantılı soruya verdiğim cevaba çok benzer .

@Xnor sayesinde 2 byte kaydedildi (tekrar)!


1
Bundan önce olduğu gibi, bu çevirmek daha kısa execiçine forakım karakteri üzerinde yinelenilen kullanmak: for c in a:a[:i]=[c]*i;i+=1;print'%c'*26%tuple(a).
xnor,

Whoa, bu harika: D
ABcDexter

4

Octave, 26 bayt

disp([max(L=65:90,L'),''])

İdeone üzerinde örnek çalışması .


Çok hoş! Ben unutuyorum [...,'']hile
Luis Mendo

1
@LuisMendo Gerçekten sadece 1 bayt kaydeder, ancak gösterişli! : D
beher

4

05AB1E , 9 bayt

Kod:

AAv¬N×?=¦

Açıklama:

AA         # Push the alphabet twice.
  v        # For each in the alphabet.
   ¬       # Get the first character and
    N×     # multiply by the iteration variable.
      ?    # Pop and print.
       =   # Print the initial alphabet without popping.
        ¦  # Remove the first character of the initial alphabet and repeat.

CP-1252 kodlamasını kullanır . Çevrimiçi deneyin! .


4

Javascript ES6, 81 bayt

x=>[...a='ABCDEFGHIJKLMNOPQRSTUVWXYZ'].map((x,y)=>x.repeat(y)+a.slice(y)).join`
`

Kendinden açıklayıcı.


[… "MEKTUPLAR"].
MayorMonty

Bu benim orijinal yaklaşımımdı, ama 2 bayt daha uzun.
Mama Fun Roll

Bu meydan okumayı gördüğümde düşündüğüm yaklaşım buydu
MayorMonty

Genellikle, kullanımı daha iyidir replaceüzerinde mapdizeleri Char-by-Char üzerinde ilerlerken.
Mama Fun Roll

1
In a.slice(y)nerede değişken mu ageliyor?
gcampbell

4

R, 56 bayt

Yorum yapacak bir temsilciniz yok, ancak @plannapus cevabı biraz aşağıya düşürülebilir:

for(i in 1:26)cat({L=LETTERS;L[1:i]=L[i];L},"\n",sep="")

aynı çıktıyla sonuçlanır:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
BBCDEFGHIJKLMNOPQRSTUVWXYZ
CCCDEFGHIJKLMNOPQRSTUVWXYZ
DDDDEFGHIJKLMNOPQRSTUVWXYZ
EEEEEFGHIJKLMNOPQRSTUVWXYZ
FFFFFFGHIJKLMNOPQRSTUVWXYZ
GGGGGGGHIJKLMNOPQRSTUVWXYZ
HHHHHHHHIJKLMNOPQRSTUVWXYZ
IIIIIIIIIJKLMNOPQRSTUVWXYZ
JJJJJJJJJJKLMNOPQRSTUVWXYZ
KKKKKKKKKKKLMNOPQRSTUVWXYZ
LLLLLLLLLLLLMNOPQRSTUVWXYZ
MMMMMMMMMMMMMNOPQRSTUVWXYZ
NNNNNNNNNNNNNNOPQRSTUVWXYZ
OOOOOOOOOOOOOOOPQRSTUVWXYZ
PPPPPPPPPPPPPPPPQRSTUVWXYZ
QQQQQQQQQQQQQQQQQRSTUVWXYZ
RRRRRRRRRRRRRRRRRRSTUVWXYZ
SSSSSSSSSSSSSSSSSSSTUVWXYZ
TTTTTTTTTTTTTTTTTTTTUVWXYZ
UUUUUUUUUUUUUUUUUUUUUVWXYZ
VVVVVVVVVVVVVVVVVVVVVVWXYZ
WWWWWWWWWWWWWWWWWWWWWWWXYZ
XXXXXXXXXXXXXXXXXXXXXXXXYZ
YYYYYYYYYYYYYYYYYYYYYYYYYZ
ZZZZZZZZZZZZZZZZZZZZZZZZZZ

Bir matris olarak cevaba izin verilirse de ( yani burada olduğu gibi ), 49 byte yapabiliriz:

sapply(1:26,function(l){L=LETTERS;L[1:l]=L[l];L})

@Plannapus'un cevabını onu cevabınıza yönlendiren cevabı üzerine bir yorum bıraktım
Kritixi Lithos


4

R , 42 41 bayt

write(outer(L<-LETTERS,L,pmax),'',26,,'')

Çevrimiçi deneyin!

Bir sonraki en kısa R cevabı , satır satır basıldığından beri hala çok uzun. Bugün daha önce başka bir soru hakkında düşünüyordum ve bunun için çok daha kısa bir yaklaşımın mümkün olduğunu anladım: Matrisi hepsini bir kerede outerve pmax(en fazla paralel) kullanarak oluşturdum ve sonra bir adımda yazdırdım (*) write.

(*) teknik olarak, devrik, ama neyse ki köşegen boyunca simetrik.


3

Haskell, 53 46 bayt

unlines[(i<$['B'..i])++[i..'Z']|i<-['A'..'Z']]

L-phabet ile tek bir dize döndürür.

karakter geçmesi igelen Aetmek Zve bir listesini yapmak (length ['B'..i])kopyaları iizledi [i..'Z']. Aralarında yeni satır bulunan öğelere katılın.


3

Python 3, 71 65 bayt

-6 baytlık @LeakyNun'a teşekkürler

r=range(26)
for i in r:print(''.join(chr(max(i,x)+65)for x in r))

STDOUT'a yazdıran tam bir program.

Nasıl çalışır

Biz gelen, alfabenin harflerine karakter kodlarını atamak 0için Aiçin 25için Z. Program , tekrarlanacak mevcut karakteri ve tekrarlanan bölümün uzunluğunu ve bir karakter endeksini belirleyen [0, 25]bir satır sayacı ile aralıkta idolaşır x. Çağırarak max(i,x), tekrarlanan karakterin altındaki tüm karakterler aynı karakter koduna sabitlenir. Ekleme 65ve arama chr, sonuç karakter kodlarını ASCII eşdeğerlerine dönüştürür; ''.joinkarakterleri birleştirir ve her satır STDOUT'a yazdırılır.

Ideone'da dene


3

12, 12 karakter / 15 bayt

ᶐⓢ⒨Ċ_+ᶐč_)ü⬬

Try it here (Chrome Canary only).

Temelde ES6 cevabımın bir portu.


Sonuç olarak elde edemiyorum ZZZZZZZZZZZZZZZ.... Sadece bir tane almak Z.
cwallenpoole

Hangi tarayıcıyı kullanıyorsun?
Mama Fun Roll,

1
Aslında, @cwallenpoole, Chrome
Mama Fun Roll

+1 bu negatif puandan kurtulmak için. Google Chrome'da çalışmıyor
Kevin Cruijssen

FF de denedim, ama işe yaramadı. Oh iyi. -1 kaldırıldı.
cwallenpoole

3

R, 54 bayt

v=L=LETTERS;for(i in 2:26){L[1:i]=L[i];v=cbind(v,L)};v

Bu çözüm R sabitini kullanır LETTERS, ki ... peki ... büyük harfleri listeler. lettersKüçük harfler için sabit de vardır .


Biraz nitpicky yapıyorum ancak bu çıktı bir matris, istenen tam metin değil (yani istenen çıktı tüm tırnaklara, boşluklara, satır adlarına, kod satırlarına vb. Sahip olmamalıdır).
plannapus

3

C, 78 70 67 bayt

f(i,j){for(;++i<27;puts(""))for(j=0;++j<27;putchar((i>j?i:j)+64));}

Kod, C için aşağıdaki golf tekniklerini kullanır:

Ayrıca kural If it is a function, it must be runnable by only needing to add the function call to the bottom of the program., fonksiyonun parametrelerle çağrılmasını yasaklamaz (ABcDexter! Sayesinde).

Ideone'da dene

Ungolfed versiyonu (gcc ile herhangi bir uyarı olmadan) şöyle görünür:

#include <stdio.h>

#define MAX(x, y) (x>y ? x : y)

int main()
{
    for(int i=0; i<26; i++)
    {
        for(int j=0; j<26; j++)
            printf("%c", MAX(i, j) + 'A');
        printf("\n");
    }
    return 0;
}

8 bayt Kaydet: f(i,j){for(i=0;++i<27;puts(""))for(j=0;++j<27;putchar((i>j?i:j)+64));}. Tam bir programa ihtiyacınız yoktur, sadece her çağrıldığında aynı işlemleri yapan bir fonksiyona (ki bu yapar).
owacoder

@owacoder Teşekkürler, düzeltildi.
sigalor

Bunu kaldırabilir i=0;ve işlev çağrısı yapabilir misiniz f(0,0)?
ABcDexter

1
@ABcDexter Yep, çalışması gerekir (kural If it is a function, it must be runnable by only needing to add the function call to the bottom of the program., bunu yasaklıyor gibi görünmez, çünkü işlev çağrısına hava parametrelerinin girmesine izin vermez). Yine de mainaramaya izin verdim f(0), çünkü ikinci döngü için başlatılması ( jsayaç olarak bir) yine de gerekli.
sigalor

@sigalor Kesinlikle evet. Kendimi C
deniyordum

3

Çedar, 90 bayt

(|>26).map(i->String.letters.chars.map((j,k,l)->k<i?l[i]:j).fuse).vfuse.slice(1)

Bu String.lettersçok uzun: /

Bir .slice(1)lider eklemek zorunda kaldım çünkü yeni satırın kullanımına izin verilmedi

açıklama

(|>26)       // Range from [0, 26)
.map(i->     // Loop through that range
 String.letters.chars // Alphabet array
  .map(               // Loop through alphabet
  (j,k,l) ->          // j = letter, j = index, l = alphabet
    k<i?l[i]:j        // Basically `l[max(k,i)]` 
  ).fuse     // Collapse the array
).vfuse      // Join on newlines

Çedar, 65 bayt (yarışmaz)

(|>26).map(i->String.letters.map((j,k,l)->k<i?l[i]:j).fuse).vfuse

İle çalışır gece dalı . Rekabet etmeyen ... üzücü kısım, değişiklikler zaten oldu ... hiç bir zaman taahhüt etmedim; _;


65@"90String.letters için işe yarıyor gibi bir şey düşündüm
Conor O'Brien
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.