Halo Dunia!!! Distribusi fibonacci

21
  1. Program Anda harus menampilkan dengan tepat: Hello world!!!dengan atau tanpa linefeed sesudahnya.
  2. Program Anda tidak boleh menerima input.
  3. Distribusi karakter kode sumber harus benar sesuai dengan:
    • Jumlah karakter numerik (0-9) harus tepat satu nomor urutan fibonacci.
    • Jumlah karakter non-numerik lainnya ! (0-9) dalam kode sumber harus persis nomor urutan fibonacci sebelum nomor urutan fibonacci di atas.

Empat contoh distribusi karakter yang valid dalam kode sumber:

  • 13 numerik, 8 karakter non-numerik.
  • 34 numerik, 21 karakter non-numerik.
  • 55 numerik, 34 karakter non-numerik.
  • 89 numerik, 55 karakter non-numerik.

Ini adalah kode-golf, kode terpendek dalam byte yang menang! Semoga berhasil!

Sunting: Karena pertanyaan ini memiliki kendala pada ukuran kode sumber dalam kombinasi dengan menjadi kode-golf, jawaban yang diterima (jika lebih dari satu bagian memiliki panjang karakter yang sama) akan menjadi jawaban dengan suara terbanyak (dan jumlah karakter paling sedikit): 2014- 03-01.

Plarsen
sumber
6
Dengan demikian, semua solusi memiliki jumlah karakter yang merupakan nomor fibonacci.
Howard
1
Berikut adalah program untuk memvalidasi jawaban (tempel kode ke dalam kotak input.)
Justin
1
Apakah mungkin untuk melakukan ini dalam waktu kurang dari 55 karakter? Output yang diperlukan memiliki 14 karakter, dan saya tidak bisa memikirkan bahasa yang bisa menggunakan angka untuk menampilkan karakter tanpa menggunakan setidaknya satu karakter per karakter.
Justin
2
@ Patrick jelas tidak apa
John Dvorak
1
Oke, kalau begitu saya tidak akan mengubah aturan :)
Plarsen

Jawaban:

27

Prompt Perintah Windows - 34, 8 , 5 karakter, (2 di bawah)

* Yang ini mungkin atau mungkin tidak melanggar aturan 2, tapi ini dia

%~099

Beri nama file:

&start call echo Hello world!!!&exit -b .cmd


Sekarang mari kita sedikit korup sistem file - 2 karakter (atau kurang jika Anda mau)

A1

Beri nama file (menggunakan metode ortodoks pilihan Anda):

"&start call echo Hello world!!!&exit&.cmd

Bagaimana cara kerjanya:

Karena skrip cmd dipanggil dengan 'cmd.exe / C "% 1"% *' perintah yang dijalankan adalah:

cmd.exe /C "c:\PATH_TO_THE_SCRIPT\"&start call echo Hello world!!!&exit&.cmd"

yang akan dalam urutan sebagai berikut:

  • Gagal menjalankan "c: \ PATH_TO_THE_SCRIPT \"
  • Buka pencetakan shell baru Halo dunia! \ N
  • Keluar dari shell asli
Robert Sørlie
sumber
2
Wow! Saya pikir kami telah mendapatkan pemenang jika aturan tidak mengatakan tidak ada input. Tetap memberi +1 untuk pemikiran di luar kotak.
Plarsen
2
Code golf dengan Windows CMD ... +1. Juga, dapat diperdebatkan bahwa "tanpa input" dapat berarti "tanpa membaca STDIN": P
Camilo Martin
1
Itu trik yang menarik untuk golf kode lain juga… tulis kode asli dalam nama file dan gunakan sesuatu seperti eval $0untuk menjalankannya <rolleyes>
Tobia
1
Itu tidak mungkin!! 5 karakter? Pendekatan yang sangat menarik
Plarsen
1
Bahkan, saya baru saja memposting solusi 2 char di bawah ini.
Tobia
20

MySQL, 34

x'48656C6C6F20776F726C642121'||'!'

Ini adalah ekspresi MySQL yang dievaluasi Hello world!!!, dengan asumsi sql_modepengaturannya termasuk PIPES_AS_CONCAT. Berisi persis 21 digit dan 13 non-digit.

Apakah ini memenuhi syarat sebagai entri yang valid, saya serahkan ke juri.

Contoh

mysql> select x'48656C6C6F20776F726C642121'||'!';
+------------------------------------+
| x'48656C6C6F20776F726C642121'||'!' |
+------------------------------------+
| Hello world!!!                     |
+------------------------------------+
1 row in set (0.00 sec)
Tobia
sumber
5
Apa ... CMD dan SQL kode memenangkan golf ??
Camilo Martin
Itu selectdan ;bisa dibilang bagian dari pernyataan, tetapi masih merupakan solusi cerdas.
Primo
@rimo mereka, itu sebabnya saya tidak yakin apakah ini memenuhi syarat. Tetapi saya pikir saya akan mempostingnya untuk keriuhan ;-)
Tobia
16

C64 BASIC, 55

masukkan deskripsi gambar di sini

Untuk kesenangan dan nostalgia!

Gabriele D'Antona
sumber
11

GolfScript, 55 karakter

[72 101 108 108 111 32 119 111 114 108 100 33 {.}2*]''+

Tidak menemukan cara untuk memiliki solusi 34 karakter, jadi saya membuat yang ini.

Howard
sumber
10

Befunge 98 - 55

a"!!!dlrow olleH"ek,@1235813213455891442333776109871597

Memutuskan untuk melakukannya dengan baris baru, karena tidak ada biaya apa pun. Angka-angka adalah nilai gabungan dari deret Fibonacci.

Justin
sumber
8

Python 34-55

print "Hello world%s"%("!"*int(3.141592653589793238462643383279502884197169399375105820))

Iya nih. Saya menyia-nyiakan angka mereka. Apa yang akan kamu lakukan?

Reut Sharabani
sumber
Siapa tahu pi ~ 3 akan sangat berguna!
Kyle Kanos
1
Pertanyaannya mengatakan 21 non-numerik ditambah 34 angka, jawaban Anda adalah 34 non-numerik plus 21 angka.
user12205
1
"hello world" seharusnya "Hello world"; yang bermodalkan huruf h.
Justin
7

C (89 karakter)

main() {
int i[0000000000000004]={1819043144,1870078063,560229490,2566922529};
puts(i);
}

Meskipun hal di atas valid, sayangnya, upaya saya untuk memadatkannya dengan program berikut tidak memenuhi spesifikasi. Saya merasa layak untuk dilihat dan mungkin orang lain dapat mempersingkatnya (64 karakter, 37 angka, 27 non-angka). Untuk mengkompilasinya, Anda harus menggunakan dentang dan dengan -fms-extensions.

main(){puts((__int128[]){671944380693508453879479574226248i8});}
vmrob
sumber
Compound literals , adalah nama untuk apa yang Anda cari. Saya mencoba menggunakannya untuk mendapatkan 21 karakter sekarang!
charmlessCoin
Hitungan non-numerik terendah yang bisa saya capai adalah 26, dengan membuat iglobal (menghilangkan int). Menggunakan longdapat menghemat koma, tetapi biayanya lebih mahal. 21 sangat jauh.
ugoren
Ya, ini banyak ruang kosong. Dengan menggunakan trik kecil itu, saya bisa melakukannya main(){puts((int[]){1819043144,1870078063,560229490,8481});}tetapi itu masih 60 karakter. Jika saya bisa menghilangkan beberapa ... Edit: wow, jadi global tidak harus memiliki deklarasi? Siapa yang tahu?
vmrob
@vmrob, global harus memiliki deklarasi. Tetapi tipe defaultnya int, jadi a;sama dengan int a;.
ugoren
@ugoren Saya tahu mereka harus memiliki deklarasi, saya hanya tidak menyadarinya default ke int!
vmrob
6

Windows PowerShell (mungkin juga Bash), 55

curl -L bit.ly/1b9q8ve?1=123581321345589144233377610987

Anda tidak mengatakan apa-apa tentang akses jaringan, jadi inilah solusi kotor. Saya punya URL bit.ly dengan beberapa huruf pada percobaan kedua. Sayangnya, ini masih 21 digit, membutuhkan 34 digit untuk digunakan atau terbuang.

John Dvorak
sumber
Anda tahu Anda bisa mengedit tautan bit.ly kan?
Timtech
Apa maksudmu mengedit? Juga, saya tidak akan mendapatkan ini di bawah 13 huruf dalam hal apa pun.
John Dvorak
Anda dapat menekan pensil di sebelah "Salin" dan edit tautannya. Jika Anda melakukannya, semua versi lama akan tetap berfungsi.
Timtech
1
Dipendekkan menjadi 34! curl 37.187.42.18/?hw=112358132134
Dom Hastings
6

sh, 55

echo Hello world!!! #1234567890123456789012345678901234
pengguna12205
sumber
6

Korn Shell, 21

echo $0
#123456789012

Script harus disebut "Halo dunia !!!" :)

Gabriele D'Antona
sumber
5

Bash, 2 karakter

Baiklah, kalau-kalau jawaban Robert tidak didiskualifikasi, ini milik saya:

$0

Beri nama file echo Hello world!!!dan jalankan dengan sh.

Tobia
sumber
5

Python

print'092020090920200948656c6c6f20776f726c642121212009200909200920'.decode('hex').strip()

digit: 55 non digit: 34

Elisa
sumber
Perhatikan tidak ada komentar dalam solusi. hanya kode.
Elisha
4

PHP (55 byte)

Program ini menggunakan biner (wow, ini ketiga kalinya saya menggunakan kembali trik yang sama). 21 karakter non-numerik, 34 karakter numerik. Tidak ada surat, karena surat itu membosankan.

xxd

0000000: 3c3f 3d7e b79a 9393 90df 8890 8d93 9bde  <?=~............
0000010: dede f53b 2331 3233 3435 3637 3839 3031  ...;#12345678901
0000020: 3233 3435 3637 3839 3031 3233 3435 3637  2345678901234567
0000030: 3839 3031 3233 34                        8901234
Konrad Borowski
sumber
@ JanDvorak: Saya hampir yakin saya membaca "sebelum atau sesudah". Oh well, biarkan aku memperbaikinya kalau begitu.
Konrad Borowski
4

Mathematica 55

"Hello World!!!"(34+21!)/000000000051090942171709440034

Keluaran

Hello World!!!
ybeltukov
sumber
4

Sclipting (34 karakter)

丟0000000000긒괡뉆롲닷댠닶롬뉔밈0000000000併0反

Sayangnya Sclipting tidak menggunakan karakter ASCII sama sekali, jadi saya harus mengisi program dengan 21 karakter angka yang tidak berguna :(

Timwi
sumber
2

Keempat atau Ruby, 55

(34 numerik + 21 non-numerik)

Keempat

." Hello world!!!" \ 3141592653589793238462643383279502

Rubi

puts"Hello world!!!"#3141592653589793238462643383279502

Menggunakan komentar untuk buku terasa kotor, tetapi itu adalah jawaban yang sah

Darren Stone
sumber
2

J (55 karakter)

(34 numerik + 21 non-numerik)

(72 101 108 108 111 32 119 111 114 108 100{a.), 3#33{a.
Mort Yao
sumber
0

C #, 233 Bytes

233 Karakter
144 Numerik
89 Karakter Non-Numerik

/*I suck at CodeGolf!!!*/new List<int>{0072,00101,000108,000108,000111,0000032,00000119,00000111,0000000000114,0000000000108,00000000000000100,00000000000000033,00000000000000033,00000000000000033}.ForEach(c=>Console.Write((char)c));

Output:

Hello world!!!
Pete Arden
sumber
0

Japt , 55 byte

"aaaaaaa1234567890123456789012345678901234"`HÁM WŽld!!!

Cobalah online!

Ini pada dasarnya adalah dunia halo sederhana dengan beberapa sampah di awal yang diabaikan tetapi membuat kode memenuhi persyaratan.

Hawkings
sumber
-1

Windows Batch

echo Hello World!!!::0123456789012345678901234567890123
Timtech
sumber
12
Wow. Ini sangat berbeda dari solusi sh saya.
user12205
-3

http://esolangs.org/wiki/Hello%2B%2B

h000000000051090942171709440034

h mencetak halo dan sisanya hanya angka

qwerty
sumber
Ini tidak didistribusikan menurut Fibonacci, juga, outputnya tidak tepat Hello world!!!
Timtech