Tulis skrip yang menulis ke output standar, atau setara dengan bahasa Anda, 100 baris kode Java (valid) yang dimulai dengan:
class Tuple1 {public Object _0;}
class Tuple2 {public Object _0,_1;}
class Tuple3 {public Object _0,_1,_2;}
class Tuple4 {public Object _0,_1,_2,_3;}
class Tuple5 {public Object _0,_1,_2,_3,_4;}
class Tuple6 {public Object _0,_1,_2,_3,_4,_5;}
class Tuple7 {public Object _0,_1,_2,_3,_4,_5,_6;}
class Tuple8 {public Object _0,_1,_2,_3,_4,_5,_6,_7;}
class Tuple9 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8;}
class Tuple10 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8,_9;}
class Tuple11 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10;}
class Tuple12 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11;}
Baris terakhir harus dimulai dengan class Tuple100
.
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
public static void main(String[] args)
jadi pasti berikan fungsi jika Anda mau.n
generator -tuple saya yang saya tulis di Jawa: github.com/kenzierocks/Tuplocity . Ini menghasilkan tupel sepenuhnya generik!Jawaban:
Jolf, 42 byte
Apakah saya mendapatkan poin bonus untuk mengalahkan Jelly dengan skor terbaik yang pernah ada? Berisi yang tidak diinginkan, jadi Anda mungkin ingin mencobanya secara online di sini . Saya mengganti yang tidak dicetak dengan indeks alt masing-masing untuk dibaca.
Penjelasan
sumber
vim
5654 penekanan tombolKarena V kompatibel dari belakang, Anda dapat mencobanya secara online!
Ini adalah tugas yang sempurna untuk vim! Saya mungkin golf sedikit lebih lama. Perhatikan juga bahwa itu
<c-a>
berarti Control-A, dan itu dihitung sebagai satu keystroke.Penjelasan:
sumber
yy
denganY
.class Tuple101
, bukanclass Tuple100
seperti pertanyaannya.Jelly, 44 byte
Jawaban Jelly pertamaku. Cobalah online!
sumber
Pyth,
535048 byteCobalah online!
Iterasi langsung lebih dari rentang (1.100) dan membangun string yang sesuai dari string yang dikemas melalui memformatnya.
Penjelasan
String yang belum dibuka adalah
class Tuple%i {public Object _%s;}
sumber
s[
alih-alih semua itu+
.[
membuat daftar panjang yang sewenang-wenang, dans
menggabungkannya. Juga, karena Anda ingin[1, 2, ... 100]
, bukan[0, 1, .. 99]
, gunakanVS100
, dan Anda tidak akan membutuhkan keduanyah
.S
trik-! :) Sudah duduk untuk menyingkirkan semua++++
, saya tahu ada cara yang lebih baik."
tidak perlu.j<str><int>
tidakU
?CoffeeScript,
8684 byteLihat solusinya secara online
sumber
for
atau yang setelahin
.)console.log"
bekerja? (Tidak tahu skrip kopi, itu tipuan umum.x? y:z
sama sekali berbeda darix ? y:z
. Bisa dibilangconsole.log?"hello"
tidakconsole.log"hello"
. Ruang putih yang signifikan. Terkadang menyenangkan, terkadang aneh.Java,
160, 125 BytesTerima kasih kepada @DenkerAffe, @Denham Coote dan @Mathias Ettinger untuk peningkatannya.
Java menulis java (karena seseorang harus!)
Dan versi un-golf
sumber
public static void main...
barang.class Tuple1 {public Object _0,;} class Tuple2 {public Object _0,_1,;}
i++
dari pengaturan loopString s = "_0"
sehingga Anda bisas += ",_" + i
dan menyimpan satu byte. Ini juga akan menyelesaikan masalah dengan koma yang tertinggal. Anda harus memulai perulangan for dari1
kurang dari101
dan akan dapat menghapus tambahan 4 byte dengan mengonversi(i+1)
pesan keluaran Anda menjadi hanyai
. Jelas, Anda harus mencetak sebelum menambahs
.Oracle SQL 9.2,
138137 Bytes@ Peter Terima kasih telah menunjukkan kesalahan 0/1.
Kueri menggunakan CONNECT BY CLAUSE dari permintaan hierarkis untuk menghasilkan 100 baris.
Pseudocolumn LEVEL berisi nomor baris setiap baris.
SYS_CONNECT_BY_PATH menggabungkan parameter pertama, nomor baris, setiap baris, dan menggunakan parameter kedua sebagai pemisah.
sumber
Object _1
alih - alihObject _0
, sehingga akan memakan waktu dua byte (-1
). Namun,_
dapat ditambahkan ke charSYS_CONNECT_BY_PATH
daripada concatenating, menguranginya dengan dua byte lagi:REPLACE('class Tuple'||LEVEL||' {public Object'||SYS_CONNECT_BY_PATH(LEVEL-1,',_')||';}','t,_','t _')
Batch, 128 byte
Sunting: Disimpan 10 byte berkat @Bob. Disimpan 1 byte berkat @ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ.
sumber
enabledelayedexpansion
untuk 117 byte: gist.github.com/Elusive138/4cea555114a979954dcb - jika Anda tidak keberatan menutup jendela konsol, Anda dapat menyimpan dua lagi dengan menghapus/b
argumen dariexit
.@echo off
Retina ,
8079 byteHitungan byte mengasumsikan penyandian ISO 8859-1.
Cobalah online!
sumber
Powershell - 65 byte
(Diubah sebagai tanggapan terhadap komentar)
Semua kredit untuk TimmyD
sumber
Perl 6 , 65 byte
sumber
R -
199132123118 byteVersi 4
Versi 3
Versi 2
Versi 1
sumber
=
untuk tugas alih-alih<-
.for(i in 1:100){f=(p=paste0)("class Tuple",i," {public Object ");for(j in 0:(i-1))f=if(j<i-1)p(f,"_",j,",")else p(f,"_",j,";}");cat(f,sep="\n")}
Ruby, 71 byte
sumber
[*0..i]*',_'
wowJava, 103 byte
Pertama kali saya di sini. Hai yang disana! Saya menggunakan ekspresi lambda Java8 (alias fungsi anonim).
Versi tidak disatukan
Untuk benar-benar menggunakan ini, seperti biasa di Java8, Anda harus menetapkannya ke variabel (atau melemparkannya ke) antarmuka fungsional yang sesuai dan kemudian memanggil metodenya; tetapi secara teknis, fungsinya hanya ekspresi lambda itu sendiri, jadi saya hanya menghitung itu.
Ini juga memerlukan parameter input, yang menyelamatkan saya beberapa byte, karena saya dapat menyalahgunakannya sebagai variabel lokal tanpa harus menentukan jenisnya. Saya tidak yakin apakah itu dianggap curang, tetapi bagi saya tampaknya itu sesuai dengan aturan: Saya hanya melihat orang menyatakan bahwa memposting fungsi diperbolehkan, bukan bagaimana fungsi itu perlu dipanggil. :) Dan itu tidak benar-benar membaca parameter, jadi fungsinya masih mandiri; Anda dapat meneruskan String apa pun ke sana, atau bahkan nol, dan masih akan menghasilkan output yang benar.
Dan inilah cara menggunakannya:
sumber
Python 2, 96
Python 3, 98
Pemakaian:
Tidak Disatukan:
pembentuk:
103
108
sumber
print f(3)
beri:class Tuple1 {public Object _0;}
class Tuple2 {public Object _0,_1;}
class Tuple3 {public Object _0,_1,_2;}
class Tuple4 {public Object _0,_1,_2,_3;}
class Tuple%d {public Object _0,_1,_2,_3
CJam, 53 byte
Coba di sini .
sumber
Groovy, 74 karakter
"join ()" tidak terkalahkan ... Solusi baru, terima kasih kepada @yariash
Solusi lama, 78 karakter:
sumber
100.times{}
bukan(1..100).each{}
.Julia, 77 byte
sumber
Lua,
128106 BytesSaya masih mencoba menemukan cara untuk langsung bekerja pada nilai yang dicetak, dan bukan pada string.
Sunting: Ditemukan sebagian! Saya masih membutuhkan string untuk bagian "_0, _1 ...", tetapi sudah lebih baik :).
Solusi 128 Bytes lama
Tidak disatukan
sumber
Python 3,
111109105 byteItu bukan hal terpendek di dunia, saya hanya berpartisipasi.
sunting1: turun 2 byte dengan menghapus
0,
dulurange
edit2: Saya tidak perlu pengecoran
int
untukstr
bukan hanya menggunakan%i
... Down to 105.sumber
range(i)
di tempatrange(0,i)
atau karena Anda menggunakanrange
dua kali, cobar=range
lebih awal kemudian referensi setiap panggilan dengan adilr
(seperti dalam solusi Python lainnya).range
mulai 0 secara default. Turun 2 byte, bagaimanapun, menambahkanr=range;
hasil awal dalam jumlah karakter yang persis sama, saya sudah mencobanya! : D',_'.join(map(str,range(i)))
lebih pendek 7 byte di sini.Mathematica, 130 Bytes
sumber
\n
dapat diganti dengan karakter baris baru literal.Scala, 85 Bytes
sumber
Jawa, 116
(hanya untuk fungsi pencetakan - menurut beberapa komentar, ini sesuai dengan aturan)
sumber
PHP, 112 byte
sumber
<?php for($i=0;$i<100;$i++){$m.=$i==0?"_$i":",_$i";echo 'class Tuple'.($i+1)." {public Object $m;}\n";}
echo 'class Tuple'.($i+1)." {public Object $m;}\n";
, Anda dapat menggunakanecho'class Tuple',$i+1," {public Object $m;}\n";
, yang lebih pendek 3 byte. Juga, sesuai dengan meta, Anda dapat menghapus<?php
dan menganggap bahwa kode Anda akan dieksekusi denganphp -r "code"
. Juga, Anda dapat melakukannyafor(;++$i<101;)echo"class Tuple$i {public Object ",$m=($m?"$m,":'')."_$i",";}\n";
untuk 80 byte (Anda harus mengganti\n
dengan baris baru yang sebenarnya). Cobalah di sini: ideone.com/oOzKtPSerius, 55 byte
Hexdump (dapat dibalik dengan
xxd -r
):Cobalah online!
Ya, baris baru itu seharusnya ada di sana.
Penjelasan (baris baru diganti dengan
\n
):sumber
Japt, 52 byte
The
?
harus menjadi literal byte 0x95. Uji secara online!Japt memiliki:
Saya bahkan tidak bisa menggunakan titik koma di dalam string karena fungsi yang dibungkus ingin mengembalikan semuanya setelah titik koma. Ini seharusnya hanya 46 byte:
Tapi sayang sekali, tidak. Saya akan melihat apakah saya dapat memperbaiki bug ini selama beberapa jam ke depan.
Bagaimana itu bekerja
sumber
X
.Javascript,
112110 byte2 byte mati terima kasih @ CᴏɴᴏʀO'Bʀɪᴇɴ .
Tidak Disatukan:
sumber
${i+1}
dengan${i++}
dan mengganti${[...Array(i++)]
dengan${[...Array(i)]
.++i
Groovy, 97 byte
Cobalah online!
sumber
join','
), menghapus spasi setelah println, dan menggantinya.collect{}
dengan*.with{}
Python 2, 96 Bytes
Terima kasih @DenkerAffe untuk saran penggunaan
lambda
.Terima kasih @MathiasEttinger untuk
join
idenya.sumber
reduce(lambda x,y:'%s,_%s'%(x,y), r(i))
',_'.join(map(str,r(i)))
untuk menghapus 14 byte tambahan (atau 15, karena Anda meninggalkan ruang ekstra di Andareduce
).C ++,
164159157 byte (155 sebagai fungsi saja)Ini adalah program lengkap. Anda dapat menyimpan 2 byte dalam bentuk fungsi saja jika Anda mengganti
int main()
denganvoid f()
.Jalankan kode di Ideone
Tidak digabungkan, termasuk ekspansi makro
sumber
j=1
di for for loop Anda, sehingga tidak memilikiif(j)
.for(int j=0;++j<=i;)
akan menghemat satu byte lagi.