Terinspirasi oleh George Gibson's Print a Tabula Recta .
Anda harus mencetak / menampilkan teks ini:
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
(Ya, saya mengetiknya dengan tangan)
Anda diizinkan menggunakan semua huruf kecil dan bukan semua huruf besar.
Namun, pilihan case Anda harus konsisten di seluruh teks.
Aturan / Persyaratan
- Setiap pengajuan harus berupa program atau fungsi lengkap. Jika itu adalah suatu fungsi, itu harus dapat dijalankan dengan hanya perlu menambahkan panggilan fungsi ke bagian bawah program. Hal lain (mis. Tajuk dalam C), harus dimasukkan.
- Jika memungkinkan, berikan tautan ke situs tempat program Anda dapat diuji.
- Program Anda tidak boleh menulis apa pun
STDERR
.
- Celah Standar dilarang.
- Program Anda dapat menampilkan dalam hal apa pun, tetapi harus dicetak (bukan array atau serupa).
Mencetak gol
Program-program dinilai berdasarkan byte, dalam UTF-8 secara default atau serangkaian karakter pilihan Anda.
Akhirnya, jawaban dengan byte terkecil akan menang.
Pengajuan
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda dapat menyimpan skor lama di headline, dengan mencoretnya. Misalnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:
# Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat tautan nama bahasa yang kemudian akan muncul di cuplikan papan peringkat:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
Papan peringkat
Berikut ini adalah Stack Snippet untuk menghasilkan leaderboard biasa dan gambaran umum pemenang berdasarkan bahasa.
/* Configuration */
var QUESTION_ID = 87064; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 48934; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
if (/<a/.test(lang)) lang = jQuery(lang).text();
languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.lang > b.lang) return 1;
if (a.lang < b.lang) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body { text-align: left !important}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 290px;
float: left;
}
table thead {
font-weight: bold;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b">
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<div id="language-list">
<h2>Winners by Language</h2>
<table class="language-list">
<thead>
<tr><td>Language</td><td>User</td><td>Score</td></tr>
</thead>
<tbody id="languages">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr>
</tbody>
</table>
Jawaban:
Excel, 19.604 byte
Rekatkan formula ini
A1
, lalu seret ke seluruhA1:Z26
.Jumlah byte:
sumber
A1:Z26
di Name Box (kiri bilah rumus) [ 7 byte]; (2) ketik=CHAR(64+MAX(COLUMN(),ROW()))
+ masukkan di bilah rumus [ 30 byte]; (3) ketikAlt E I D Alt E I R
untuk mengisi rentang yang dipilih [ 8 byte]. Total 7 + 30 + 8 = 45 .[A1:Z26]="=CHAR(64+MAX(COLUMN(),ROW()))"
adalah 40 byte dan masih eleganVim, 43 byte
Di sini
↵
mewakili Return (0x0a
) dan♥
mewakili Ctrl-R (0x12
).Tidak sesingkat jawaban Tabula Recta saya, tapi ...
sumber
h<_↵
It:help at_t
v_b_<_example
di Vim 7.4 untuk Cygwin.Jelly, 6 byte
Coba di sini. Kalau saja saya tidak malas kemarin dan menerapkan alternatif satu byte untuk
j⁷
(bergabung dengan baris baru) ...sumber
Y
.Y
posting tanggal tantangannyabrainfuck,
10396959187 byteIni menggunakan konstanta brainfuck Esolangs 'untuk 64 . Cobalah online!
sumber
/// ,
141949282 byteCobalah online: Demonstrasi
Bahasa yang cukup menyenangkan.
Penjelasan:
Kode singkat untuk hanya mencetak kotak 4x4:
Penggantian pertama
/:/\\\\A/
menggantikan:
dengan\\A
. Ini memberi:Kemudian
/#/\\Ab\\Ac\\Ad\\A//\\A/
ganti#
dengan\Ab\Ac\Ad\A
:Sekarang
/\\A/\/a\Ab\Ac\Ad\A<newline>\/a\//
ganti masing-masing\A
dalam kode selanjutnya dengan/aAbAcAdA<newline>/a/
, jadi ini menghasilkan:Sekarang bagian pertama
/A//
menghapus semuaA
s.Lima karakter pertama
abcd<newline>
dicetak. Perintah selanjutnya/a/b/
digantia
denganb
, menghasilkan:Sekali lagi lima karakter pertama
bbcd<newline>
dicetak. Perintah selanjutnya/b/c/
digantib
denganc
:Sekali lagi lima karakter pertama
cccd<newline>
dicetak. Perintah selanjutnya/c/d/
digantic
dengand
:Lima karakter pertama
dddd<newline>
dicetak. Dan perintah selanjutnya/d/
tidak lengkap dan karena itu tidak melakukan apa pun.sumber
Dyalog APL , 11 byte
A[
...]
pilih elemen dari alfabet huruf besar sesuai dengan∘.⌈⍨
tabel maksimum⍳26
26 bilangan bulat pertamaTryAPL online!
sumber
Mathematica,
696557 byteDisimpan 8 byte karena @MartinEnder .
Fungsi anonim. Tidak mengambil input dan mengembalikan string sebagai output. Pada dasarnya hanya
char('A' + max(x, y))
untuk semua x , y dari 1 hingga 26.sumber
/// , 348 byte
Cobalah online!
Saya telah menggunakan teknik yang sama untuk membangun ini sebagai / / / jawaban saya untuk tantangan ini didasarkan pada . Namun, saya harus memperbaiki skrip CJam karena tidak benar menangani substring yang dapat tumpang tindih sendiri.
sumber
Retina , 41 byte
Hitungan byte mengasumsikan penyandian ISO 8859-1. Linefeed terkemuka sangat penting.
Penjelasan
Setel string menjadi 26 salinan
Z
. Kemudian{...}
instruksikan Retina untuk melakukan dua instruksi yang tersisa dalam satu lingkaran sampai string berhenti berubah.Gandakan baris pertama jika tidak dimulai dengan
A
.Ini adalah tahap transliterasi. Ini hanya diterapkan jika string dimulai dengan setidaknya dua salinan dari karakter yang sama. Jika demikian, semua kecuali yang terakhir dari karakter tersebut dikurangi. Penurunan terjadi dengan memetakan
L
(huruf besar) ke_L
(kosong diikuti dengan huruf besar). "Semua kecuali yang terakhir" diindikasikan oleh batas-2
yang memberitahu Retina hanya untuk mentransliterasi semua karakter hingga yang kedua hingga terakhir dalam pertandingan.Cobalah online!
sumber
Haskell, 35 byte
sumber
Python 2, 59 byte
Uji di Ideone .
sumber
R, 58 byte
Berkat prioritas operator,
2:i-1
setara dengan1:(i-1)
. Menggunakan konstanta bawaanLETTERS
yang berisi alfabet dalam huruf besar. Segala sesuatu yang lain cukup jelas.Pemakaian:
sumber
Sesos , 25 byte
Cobalah online! Periksa Debug untuk melihat kode SBIN yang dihasilkan.
Perakitan Sesos
File biner di atas telah dihasilkan dengan merakit kode SASM berikut.
Bagaimana itu bekerja
Kami mulai dengan menginisialisasi rekaman ke
ABCDEFGHIJKLMNOPQRSTUVWXYZ
. Ini sebagai berikut.Menulis 26 ke sel, meninggalkan kaset dalam keadaan berikut.
Selama sel di bawah kepala data bukan nol, kami melakukan hal berikut.
Salin nomor ke dua sel ke kiri dan tambahkan 64 ke salinan paling kiri.
Pindahkan salinan paling kiri ke lokasi asli, lalu kurangi 1 dari salinan paling kanan.
Proses berhenti setelah 26 iterasi, karena salinan paling kanan adalah 0 saat itu. Kami memindahkan sel ke kanan, sehingga keadaan akhir rekaman setelah inisialisasi adalah sebagai berikut.
Sekarang kita siap untuk menghasilkan output, dengan mengulangi proses berikut sampai sel di bawah kepala data nol.
Pertama, kami memindahkan konten sel di bawah kepala data satu unit ke kiri, lalu pindah ke kiri hingga sel terakhir dengan konten yang tidak nol.
Sekarang, kita mencetak semua sel, mulai dengan yang di bawah kepala data dan bergerak ke kanan hingga kita menemukan 0 sel, menambah setiap sel yang dicetak setelah mencetaknya. Setelah mencetak
A
, rekaman itu terlihat sebagai berikut.Sekarang kita bergerak ke kanan, kembali mencetak semua sel sampai 0 sel di temui. Setelah mencetak
BCDEFGHIJKLMNOPQRSTUVWXYZ
, rekaman itu terlihat sebagai berikut.Sekarang, kita menulis 10 ke sel saat ini, mencetak karakter yang sesuai (linefeed) dan nol sel dengan panggilan masuk
get
pada input kosong, meninggalkan rekaman tidak berubah.Akhirnya, kami pindah ke yang bukan nol terakhir ke kiri, menyiapkan rekaman untuk iterasi berikutnya.
Iterasi berikutnya serupa. Kami pertama-tama memindahkan 66 satu sel ke kiri, mencetak 66 sel (
BB
) dan menambahnya menjadi 67 , lalu mencetak sel-sel yang tidak nol yang tersisa ke kanan (CDEFGHIJKLMNOPQRSTUVWXYZ
), dan akhirnya menempatkan kepala data di 67 , meninggalkan rekaman sebagai berikut .Setelah 24 iterasi lagi dan setelah pencetakan
ZZZZZZZZZZZZZZZZZZZZZZZZZZ
dan pemberian baris, kaset dibiarkan dalam kondisi berikut.Memindahkan kepala data ke kiri ke sel non-nol berikutnya akan membiarkannya pada posisi saat ini, sehingga sel di bawahnya adalah 0 dan loop berakhir.
sumber
J, 13 byte
Penerjemah online .
Penjelasan
sumber
Matlab / Oktaf,
4339 byte1 byte dihapus berkat gagasan @ beeker tentang penggunaan
[...,'']
untuk mengonversi ke char.Ini adalah fungsi anonim yang mengembalikan array char 2D.
Cobalah di Ideone .
Penjelasan
gallery('minij',...)
memberikan matriks di mana setiap entri sama dengan minimum indeks baris dan kolomnya:Ini diputar 180 derajat dengan
rot90(...,2)
:The
91-...
operasi memberikan kode ASCII dari huruf besar:Akhirnya
[...,'']
digabungkan secara horizontal dengan string kosong. Ini memiliki efek konversi ke char.sumber
gallery
gallery('maxij',...)
, ya? ;)PowerShell v2 +,
765240 byteLoop dari
65
ke89
. Setiap iterasi, kami membangun sebuah array menggunakan koma-operator yang terdiri dari angka saat ini$_
dikalikan dengan variabel pembantu pasca kenaikan$i++
, disatukan dengan array nomor saat ini$_
ke90
. Itu dienkapsulasi dalam sebuah array char-array, dan-join
ed bersama menjadi sebuah string. Misalnya, untuk iterasi pertama, array ini akan setara dengan65..90
, atau seluruh alfabet. Iterasi kedua adalah66+66..90
, atau seluruh alfabet denganB
diulang dan tidakA
.Itu semua ditinggalkan di pipeline di akhir program (sebagai array), dan pencetakan ke konsol adalah implisit (default
.ToString()
untuk array dipisahkan melalui baris baru, jadi kami mendapatkannya secara gratis).sumber
C #, 147 byte
terkadang saya bertanya-tanya mengapa saya bahkan mencoba
sunting: perbaiki
Cobalah online
sumber
MATL, 10 byte
Demo online (Jika Anda memiliki masalah dengan penerjemah ini, ping saya di obrolan MATL . Juga, di sini adalah tautan TIO jika Anda memiliki masalah)
Penjelasan
sumber
Python 2,
767068 byteSangat mirip dengan jawaban saya untuk pertanyaan terkait .
Disimpan 2 byte berkat @xnor (lagi)!
sumber
exec
ke dalamfor
menggunakan karakter saat sedang iterasi berakhir:for c in a:a[:i]=[c]*i;i+=1;print'%c'*26%tuple(a)
.Oktaf, 26 byte
Sampel dijalankan pada ideone .
sumber
[...,'']
triknya05AB1E , 9 byte
Kode:
Penjelasan:
Menggunakan pengkodean CP-1252 . Cobalah online! .
sumber
Javascript ES6, 81 byte
Cukup jelas.
sumber
replace
lebih darimap
iterasi string lebih dari char-by-char.a.slice(y)
mana variabela
berasal?R, 56 byte
Tidak memiliki perwakilan untuk berkomentar, tetapi jawaban @plannapus dapat di- drop sedikit ke:
menghasilkan output yang sama:
Padahal, jika jawaban sebagai matriks diperbolehkan ( yaitu seperti di sini ), kita bisa melakukan 49 byte:
sumber
R ,
4241 byteCobalah online!
The jawaban R terpendek berikutnya masih agak terlalu lama karena mencetak baris demi baris. Saya sedang memikirkan pertanyaan lain sebelumnya hari ini dan menyadari bahwa pendekatan yang jauh lebih pendek mungkin untuk yang ini: Saya membuat matriks sekaligus menggunakan
outer
danpmax
(maksimum paralel) dan kemudian mencetaknya (*) dalam satu langkah denganwrite
.(*) secara teknis, transposnya, tapi untungnya simetris melintasi diagonal.
sumber
Haskell,
5346 byteMengembalikan string tunggal dengan L-phabet.
pergi melalui karakter
i
dariA
keZ
dan membuat daftar(length ['B'..i])
salinani
diikuti oleh[i..'Z']
. Gabung elemen dengan baris baru di antaranya.sumber
Python 3,
7165 byteTerima kasih kepada @LeakyNun untuk -6 byte
Program lengkap yang mencetak ke STDOUT.
Bagaimana itu bekerja
Kami menetapkan kode karakter untuk huruf-huruf alfabet, dari
0
untukA
ke25
untukZ
. Program ini mengulangi interval[0, 25]
dengan penghitung garisi
, yang menentukan karakter saat ini untuk diulang dan panjang bagian yang diulang, dan indeks karakterx
. Dengan memanggilmax(i,x)
, semua karakter di bawah karakter yang diulang dijepit ke kode karakter yang sama. Menambah65
dan memanggilchr
mengkonversi kode karakter yang dihasilkan ke ASCII setara mereka;''.join
menyatukan karakter, dan setiap baris dicetak ke STDOUT.Cobalah di Ideone
sumber
𝔼𝕊𝕄𝕚𝕟, 12 karakter / 15 byte
Try it here (Chrome Canary only).
Pada dasarnya port jawaban ES6 saya.
sumber
ZZZZZZZZZZZZZZZ...
intinya. Hanya mendapat satuZ
.R, 54 byte
v=L=LETTERS;for(i in 2:26){L[1:i]=L[i];v=cbind(v,L)};v
Solusi ini menggunakan konstanta bawaan R
LETTERS
, yang ... yah ... mencantumkan huruf besar. Ada juga konstantaletters
untuk huruf kecil.sumber
C,
787067 byteKode memanfaatkan teknik golf berikut untuk C:
stdio.h
)int
65
alih-alih'A'
)putchar
untuk menampilkan satu karakterputs("")
untuk menampilkan baris baruJuga, aturannya
If it is a function, it must be runnable by only needing to add the function call to the bottom of the program.
tidak melarang fungsi dipanggil dengan parameter (terima kasih kepada ABcDexter!).Cobalah di Ideone
Versi ungolfed (tanpa peringatan dengan gcc) akan terlihat seperti ini:
sumber
f(i,j){for(i=0;++i<27;puts(""))for(j=0;++j<27;putchar((i>j?i:j)+64));}
. Anda tidak memerlukan program lengkap, hanya fungsi yang telah melakukan operasi yang sama setiap kali dipanggil (yang memang demikian).i=0;
dan membuat panggilan fungsi sebagaif(0,0)
?If it is a function, it must be runnable by only needing to add the function call to the bottom of the program.
sepertinya tidak melarang hal ini, karena tidak mengatakan parameter cuaca apa pun ke pemanggilan fungsi diperbolehkan). Saya membiarkanmain
panggilan sajaf(0)
, karena inisialisasi untuk yang kedua untuk loop (yang denganj
sebagai counter) masih diperlukan.Cheddar, 90 byte
Itu
String.letters
terlalu lama: /Harus menambahkan
.slice(1)
karena baris baru terkemuka tidak diizinkanPenjelasan
Cheddar, 65 byte (tidak bersaing)
Bekerja dengan cabang malam . Tidak bersaing ... bagian yang menyedihkan adalah saya sudah melakukan perubahan ... tidak pernah berkomitmen; _;
sumber
65@"90
berfungsi untuk String.letters