こんにちは世界!!!フィボナッチ分布


21
  1. プログラムは正確に出力する必要があります:Hello world!!!改行ありまたは改行なし。
  2. プログラムには何も入力しないでください。
  3. ソースコードの文字分布は、次の条件に従って正しくなければなりません。
    • 数字の数(0-9)は、正確に1つのフィボナッチ数列でなければなりません。
    • ソースコード内のその他の数字以外の文字!(0-9)の数は、上記のフィボナッチシーケンス番号の前のフィボナッチシーケンス番号でなければなりません。

ソースコード内の有効な文字分布の4つの例:

  • 13桁の数字、8桁の非数字。
  • 34桁の数字、21桁の非数字。
  • 数字55文字、数字以外の文字34文字。
  • 89桁の数字、55桁の非数字。

これはコードゴルフで、バイト単位の最短コードが勝ちです!がんばろう!

編集:この質問は、コードゴルフであることに加えてソースコードのサイズに制約があるため、受け入れられる回答(複数のシェアが同じ勝利キャラクターの長さである場合)は、投票数が多く(文字数が最小)回答になります。 03-01。


6
したがって、すべてのソリューションには、フィボナッチ数である文字カウントがあります。
ハワード14年

1
ここでは検証の答えにプログラムがある(入力ボックスにコードを貼り付けます。)
ジャスティン

1
55文字未満でこれを行うことさえ可能ですか?必要な出力には14文字が含まれており、1文字につき少なくとも1文字を使用せずに数字を使用して文字を出力できる言語は考えられません。
ジャスティン14年

2
間違いなくOKではない@Plarsen
ジョン・ドヴォルザーク

1
さて、私はルールを変更しません:)
プラーセン14年

回答:


27

Windowsのコマンドプロンプト- 34、8、5つの文字、(下記2)

* これらはルール2に違反する場合もしない場合もありますが、ここではとにかく

%~099

ファイルに名前を付けます:

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


ファイルシステムを少し壊してみましょう-2文字(または必要に応じてそれ以下)

A1

ファイルに名前を付けます(お好みの非正統的な方法を使用):

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

これはどのように作動しますか:

cmdスクリプトは 'cmd.exe / C "%1"%*'で呼び出されるため、実行されるコマンドは次のようになります。

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

次の順序で:

  • 「c:\ PATH_TO_THE_SCRIPT \」の実行に失敗しました
  • Hello world!を印刷する新しいシェルを開きます。\ n
  • 元のシェルを終了します

2
うわー!ルールに入力がないと言われていない場合、勝者がいたと思います。とにかく外からの思考のために+1。
プラーセン14年

2
Windows CMDでゴルフをコーディング... +1。また、「入力が」「何も読んでSTDIN」を意味していない可能性があることに議論の余地です:P
カミロ・マーティン

1
これは他のコードゴルフにとっても興味深いトリックです。ファイル名に実際のコードを記述し、eval $0それを実行するようなものを使用してください<rolleyes>
トビア14年

1
それ無理!!5文字?本当に興味深いアプローチ
プラーセン

1
実際、2文字のソリューションを以下に投稿しました。
トビア14年

20

MySQL、34

x'48656C6C6F20776F726C642121'||'!'

これはHello world!!!sql_mode設定にが含まれると仮定して評価されるMySQL式ですPIPES_AS_CONCAT。正確に21桁と13桁の非数字が含まれています。

これが有効なエントリであるかどうかは、審査員に任せます。

mysql> select x'48656C6C6F20776F726C642121'||'!';
+------------------------------------+
| x'48656C6C6F20776F726C642121'||'!' |
+------------------------------------+
| Hello world!!!                     |
+------------------------------------+
1 row in set (0.00 sec)

5
何が... CMDとSQLで勝利したコードゴルフ??
カミロマーティン14年

selectそして;間違いなく文の一部が、それでも賢いソリューションです。
プリモ14年

@primoであるため、これが資格があるかどうかはわかりません。しかし、私は陽気のためにそれを投稿すると思った;
トビア14年


11

GolfScript、55文字

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

34文字のソリューションを見つける方法が見つからなかったため、このソリューションを作成しました。


10

Befunge 98-55

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

何も費用がかからないので、改行でそれをすることにしました。数値は、フィボナッチ数列を連結した値です。


8

Python 34-55

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

はい。私はそれらを無駄にします。あなたはそれについて何をするつもりですか?


pi〜3がとても便利だと知っている人はいません!
カイルカノス14年

1
質問では、21の非数値と34の数値が表示され、答えは34の非数値と21の数値です。
user12205 14年

1
「hello world」は「Hello world」でなければなりません。それはhを大文字にします。
ジャスティン14年

7

C(89文字)

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

上記は有効ですが、残念ながら、次のプログラムでそれを圧縮する努力は仕様を満たしていません。見る価値はあると思いますが、誰か他の人が少し短くすることもできます(64文字、37桁の数字、27桁の非数字)。コンパイルするには、clangとwithを使用する必要があります-fms-extensions

main(){puts((__int128[]){671944380693508453879479574226248i8});}

複合リテラルは、探しているものの名​​前です。私はそれらを使ってこれを21文字にしようとしています!
charmlessCoin 14年

私が到達できる数値以外の最小数は26 ですi(グローバルにする(省略int))。を使用longするとコンマを節約できますが、コストがかかります。21は非常に遠い。
ウゴレン14年

ええ、それは多くの無駄なスペースです。その小さなトリックを使用して、私はそれを得ることができますmain(){puts((int[]){1819043144,1870078063,560229490,8481});}が、それはまだ60文字です。さらにいくつか削除できる場合は...編集:うわー、グローバルは宣言する必要はありませんか?誰かわかったね?
vmrob 14年

@vmrob、グローバルには宣言が必要です。しかし、タイプはデフォルトであるためinta;と同等int a;です。
ウゴレン14年

@ugoren私は彼らが宣言をしなければならないことを知っていた、それがintにデフォルト設定されたことに気がつかなかった!
vmrob 14年

6

Windows PowerShell(おそらくBashも)、55

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

あなたはネットワークアクセスについて何も言わなかったので、ここに汚い解決策があります。2回目の試行で、文字数が少ないbit.ly URLがあります。残念ながら、それはまだ21桁の非数字であり、34桁を使用または浪費する必要があります。


bit.lyリンクを編集できることを知っていますか?
ティムテック14年

どういう意味ですか、編集しますか?また、私はいずれの場合も13文字未満でこれを取得しません。
ジョンドヴォルザーク14年

[コピー]の横にある鉛筆を押して、リンクを編集できます。削除しても、すべての古いバージョンが引き続き機能します。
ティムテック14年

1
34に短縮!curl 37.187.42.18/?hw=112358132134
ドムヘイスティングス14年



5

バッシュ、2文字

非常によく、ありそうもないケースでは、ロバートの答えは失格ではありません、ここに私のものがあります:

$0

ファイルに名前を付けてecho Hello world!!!、実行しshます。


5

Python

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

桁数:55桁以外:34


ソリューションにはコメントがありません。コードのみ。
エリシャ14年

4

PHP(55バイト)

このプログラムはバイナリを使用します(同じトリックを再利用するのは3回目です)。21桁の非数字、34桁の数字。手紙は退屈だからです。

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

@JanDvorak:「前か後か」を読んだことはほぼ確実だ。まあ、それで修正させてください。
コンラッドボロウスキ14年


4

スクリプティング(34文字)

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

残念ながらScliptingはASCII文字をまったく使用しないため、プログラムに21個の無駄な数字を埋め込む必要があります:(


2

ForthまたはRuby、55

(数値34 +非数値21)

フォース

." Hello world!!!" \ 3141592653589793238462643383279502

ルビー

puts"Hello world!!!"#3141592653589793238462643383279502

コメントを使用して埋めるのは汚い感じがしますが、有効な答えです。


2

J(55文字)

(数値34 +非数値21)

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

0

C#、233バイト

233文字
144数字
89 数字以外の文字

/*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));

出力:

Hello world!!!



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.