タグ付けされた質問 「kolmogorov-complexity」

コルモゴロフの複雑さは、非公式には、文字列や画像などの定数オブジェクトを記述または生成するために必要なコードの量です。このカテゴリにチャレンジを投稿するときは、既存のチャレンジに何か新しいものを追加してください。

30
"こんにちは世界!"
だから...ええと...これは少し恥ずかしいです。しかし、「Hello、World!」という単純なものはありません。まだ挑戦しています(35個のバリアントがhello-worldでタグ付けされ、カウントされています)。これは一般的な言語で最も興味深いコードゴルフではありませんが、特定のエソランで最短の解決策を見つけることは深刻な課題です。たとえば、私の知る限り、可能な限り最短のBrainfuckソリューションがまだ見つかっているかどうかはわかりません。 さらに、すべてのウィキペディア(ウィキペディアのエントリは削除されていますが、archive.orgにコピーがあります )で、エソランとロゼッタコードには「Hello、World!」のリストがあります。プログラム、これらのどれも各言語の最短時間に興味がありません(このGitHubリポジトリもあります)。コードゴルフコミュニティの重要なサイトになりたい場合は、最短の「Hello、World!」の究極のカタログを作成してみてください。プログラム(基本的なクインチャレンジに、さまざまな言語で知られている最短のクインが含まれていることに似ています)。それでは、これをしましょう! ルール 各提出は完全なプログラムでなければなりません。 プログラムは入力Hello, World!を受け取らず、STDOUT(大文字と句読点を含むこの正確なバイトストリーム)に加えて、オプションの末尾の改行のみを出力します。 プログラムは、STDERRに何も書き込まないでください。 空のプログラムが印刷する言語を作成することでこれを悪用したい人はHello, World!、おめでとう、彼らは非常に退屈な答えへの道を開いただけです。 提出物をテストできるように、通訳が必要であることに注意してください。以前に実装されていない言語用にこのインタープリターを自分で作成することは許可されています(さらには推奨されています)。 送信は、適切な(既存の)エンコーディングで、通常(必ずしもではありませんが)UTF-8 で、バイト単位でスコアリングされます。Foldersのような一部の言語は、スコアを付けるのが少し難しいです。疑問がある場合は、Metaで質問してください。 これは、「Hello、World!」という最短の言語を見つけることではありません。プログラム。これは、最短の「Hello、World!」を見つけることです。すべての言語のプログラム。したがって、回答を「承認済み」としてマークしません。 選択した言語が、すでに回答を持っている別の(潜在的により人気のある)言語の些細な変形である場合(BASICまたはSQL方言、Unixシェル、またはAlphuckのような些細なBrainfuck派生語を考えてください)、既存の回答にメモを追加することを検討してください同じまたは非常に類似したソリューションは、他の言語でも最短です。 サイドノートとして、ゴルフにそれほど多くない言語で退屈な(しかし有効な)答えに投票しないでください-可能な限り完全なカタログをコンパイルしようとするので、これらはまだこの質問に役立ちます。しかし、著者が実際にコードをゴルフすることに努力しなければならなかった言語では、主に回答を支持してください。 インスピレーションについては、Hello World Collectionを確認してください。 カタログ この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 ## Perl, 43 + 2 (-p flag) = 45 bytes 言語名をリンクにして、スニペットに表示することもできます。 ## [><>](https://esolangs.org/wiki/Fish), 121 bytes …

8
UpgoatまたはDowngoat?
ヤギの画像が与えられた場合、プログラムはヤギが逆さまになっているかどうかを特定するのが最善です。 例 これらは入力が何であるかの例です。実際の入力ではありません 入力: 出力: Downgoat スペック プログラムは最大30,000バイトである必要があります 入力には完全なヤギが含まれます 写真には常にヤギが含まれます ヤギが逆さまの場合、output Downgoat、そうでない場合Upgoat ただし、入力は画像として入力できます(ファイル名、画像のbase64など)。 「Upgoat」または「Downgoat」を含む画像名またはその他のメタデータに依存しないでください。要点のファイル名は参照用です。 ハードコードしないでください。それは退屈だ、私はそれを完全に強制することはできませんが、私はうまく尋ねることができます。 テストケース 画像の要点。で始まる画像にdowngoatはDowngoat出力があり、で始まる画像にupgoatはUpgoat出力があります。 テストケースの2番目のバッチ すべてのテストケースで画像をテストしてください。これらの画像はjpgsです。画像サイズは異なりますが、それほど大きくはありません。 注:回答を受け入れる前にいくつかのテストケースを追加して、ハードコードする回答を回避し、プログラムの一般的なパフォーマンスを確認することができます。 アバターを正しく取得するためのボーナスポイント:P 得点 スコアは次の方法で計算できるパーセントです: (number_correct / total) * 100

30
私たちはゴルフをコーディングするのは見知らぬ人ではありません、あなたはルールを知っています。
Rick Astleyによる「Never Gonna Give You Up」の歌詞全体を印刷する最短のプログラムを作成します。 ルール: 上記のpastebin *に表示されるとおりに歌詞を出力する必要があります。生ダンプは次のとおりです。http://pastebin.com/raw/wwvdjvEj 外部リソースに依存することはできません-すべての歌詞は、コードによって生成/埋め込まれている必要があります。 コードに完全なアルゴリズムを含めない限り、既存の圧縮アルゴリズム(gzip / bzip2など)は使用しません。 任意の言語を使用すると、最短のコードが優先されます。 更新、2012年6月1日: 非ASCIIテキストを含むソリューションの場合、ソリューションのサイズはUTF-8エンコードに基づいてバイト単位でカウントされます。UTF-8でエンコードできないコードポイントを使用する場合、ソリューションは有効と判断されません。 更新、2012年6月7日: すばらしいソリューションをありがとうございました!明日の午後、最短の回答を受け入れます。現時点では、Peter TaylorのGolfScriptの答えが勝っているので、彼を打ち負かしたい場合は、いくつかの改善点に挑戦してください!:) * Pastebinにはタイプミスがあります(46行目、 "know"は "known"である必要があります)。自由に複製することも、しないこともできます。

30
1、2、フィズ、4、バズ
前書き 標準プログラミング演習用の最短ソリューションのカタログを収集するための最近の取り組みで、PPCGの最初のバニラFizzBu​​zzチャレンジがここにあります。他のカタログの課題を見たい場合は、「Hello World!」があります。そして「この数は素数であります?」。 チャレンジ 1から100までの10進数を出力するプログラムを作成します。しかし、3の倍数の場合は数字ではなく「フィズ」、5の倍数の場合は「バズ」が印刷されます。3と5の両方の倍数である数字の場合、「FizzBu​​zz」と印刷します。 出力 出力は、改行(\nまたは\r\n)で区切られた数字(およびFizzes、Buzzes、FizzBu​​zzes)のリストになります。末尾の改行は使用できますが、先頭の改行は使用できません。改行の選択とは別に、出力は次のようになります。 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 …

27
Google Overlordをなだめる:「G」ロゴを描く
正の整数Nを取り込んで、この*構成に従ってGoogleの「G」ロゴのN×Nピクセルの画像を出力するプログラムまたは関数を作成します。 たとえば、Nが400の場合、正しいサイズと色で400×400ピクセルのロゴを出力する必要があります。 Nの大きさに関係なく、正確に見えるはずです。たとえば、N = 13です。 コードをインターネットに接続する必要はありません。たとえば、外部でホストされているsvgのスケーリングは許可されていません。(ただし、コードでエンコードされたsvgのスケーリングは問題ありません。) アンチエイリアシングが使用される場合とされない場合があります。それはあなた次第です。 「G」の水平バーが画像の右端まで完全に伸びていないことに注意してください。円は、通常、切断される前に右端で内側に湾曲します。 バイト単位の最短コードが優先されます。 *ロゴの作成は、この課題のために簡素化されています。正しい構造はこことここで見ることができます。

30
あなたがほとんど味わうことができるとてもリアルなキーボード
...そうではありませんか?タスクは簡単で、次のテキストを出力します。 ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ________ ||` |||1 |||2 |||3 |||4 |||5 |||6 |||7 |||8 |||9 |||0 |||- |||= |||BS || ||__|||__|||__|||__|||__|||__|||__|||__|||__|||__|||__|||__|||__|||______|| |/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/______\| ________ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ||TAB |||Q |||W |||E …

30
お気に入りのプログラミング言語にハッピーバースデーを歌います
お気に入りのプログラミング言語は誕生日を迎えたばかりです。素敵になり、ハッピーバースデーの歌を歌ってください。 もちろん、その言語でプログラムを書くことでこれを達成する必要があります。プログラムは入力を受け取らず、次のテキストを標準出力または任意のファイルに書き込みます。 Happy Birthday to You Happy Birthday to You Happy Birthday Dear [your favourite programming language] Happy Birthday to You 括弧で囲まれた部分を置き換える必要があります(括弧を省略します)。 これはコードゴルフです。最短のコードが勝ちます。 更新 この質問が大きな関心を呼んだことを嬉しく思います。スコアリングに関する追加情報を追加しましょう。もともと述べたように、この質問はコードゴルフであるため、最短のコードが勝ちます。勝者は今週の終わり(10月19日)に選出されます。 しかし、私はまた、他の機知に富んだ提出物に高額の投票で報います(そして、私も皆にそうすることを勧めます)。したがって、これはコードとゴルフのコンテストですが、それほど短くない回答も歓迎します。 結果 このコンテストの勝者であるオプティマイザー、おめでとう、42バイトの長さのCJam 提出。

30
私の誕生日です:D
前書き 昨年は私の誕生日でした(本当に!)悲しいことに、私は自分のパーティーを開催しなければなりませんでした。さて、あなたは知っています、少なくともケーキを作ることができませんでしたか? チャレンジ n入力として整数を指定し、ろうそくをつけた誕生日ケーキを出力する完全なプログラムを作成nします。 出力 ろうそくを1本つけたケーキは次のとおりです。 $ | --- ~~~ --- そして、3本のろうそくをつけたケーキは次のとおりです。 $ $ $ | | | ------- ~~~~~~~ ------- あなたはそれからそれを解決できると確信しています ただし、入力の0場合、次を出力する必要があります。 Congratulations on your new baby! :D 未満の入力の場合0、キャンドルのないケーキを出力する必要があります。 --- ~~~ --- STDERRへの出力は許可されません。 末尾の改行とスペースは許可されます。 勝ち バイト単位の最短コードが優先されます。 リーダーボード var QUESTION_ID=57277;OVERRIDE_USER=30525;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var …

7
指数関数的にぬるぬるしたプログラミング:Minecraftのスライムを積み重ねる
スライムは、Minecraftのキューブ型の敵で、殺されると複数の小さなバージョンになります。この課題の目的のために、3色の8×8ピクセル画像としてそれらを描写します: ←真の8×8バージョン。 正確なRGBカラーは次のとおりです。 0, 0, 0 目と口のために 110, 170, 90 中央の濃い緑色用 116, 196, 96 外側の明るい緑色 チャレンジ 正の整数Nを取り込んで、長方形にパックされたNサイズのスライムのイメージを出力するプログラムまたは関数を作成します。左から右に進むと、画像は次のパターンに従う必要があります。 2 (N-1) 8×8スライムのスタック。 2 (N-2) 16×16スライムのスタック。 2 (N-3) 32×32スライムのスタック。 スタックにスライムが1つだけ含まれるようになるまで続きます。 8×8バージョン()よりも大きいスライム画像は、最近傍のアップサンプリング(つまり、すべてのピクセルを2倍にする)によって生成されます。ここで与えられた正確なスライムのデザインと色を使用する必要があることに注意してください。 最終画像には2 N -1個のスライムが含まれ、幅は2 (N + 3) -8ピクセル、高さは2 (N + 2)ピクセルになります。 画像は、一般的な画像ファイル形式で出力したり、ファイルに保存したり、生データストリームとして印刷/返送したり、実行時に直接表示したりできます。 バイト単位の最短コードが優先されます。 例 プログラムはこれらの正確な結果を生成するはずです。 N = 1: N = 2: N = …

30
アイスランドの国旗を描く
今年のUEFA Euro 2016は終了し、いくつかの否定的な見出しに加えて、アイスランドのサッカー代表チームという非常に前向きな驚きもありました。国旗を描きましょう。 入力 まあ、明らかに、この課題には入力がありません。 出力 アイスランドの旗を、少なくとも100 x 72ピクセルまたは25 x 18文字の適切な視覚形式で描きます。 出力をファイルに保存するか、すぐに表示します。例の形式は、png、jpgなどの画像、ベクターグラフィックス、HTMLキャンバスに描画、または視覚化に空白以外の文字を使用します。 これらの色を使用してください:青:#0048e0、白:#ffffffおよび赤:#d72828。 言語が特定の色の値をサポートしていない場合は、ANSIカラーコードの赤、青、白の標準値を使用してください。 次の図に示すように、正しい比率でフラグを描画します。 ボイラープレート プログラムまたは関数を作成できます。無名関数の場合は、呼び出す方法の例を含めてください。 これはコードゴルフなので、バイト単位の最短回答が勝ちです。 標準の抜け穴は許可されていません。 リーダーボード コードスニペットを表示 var QUESTION_ID = 85141; // 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 …

30
読み込み中...永遠に
あなたの課題は、次のような無限のロード画面を作成することです。 または、より具体的に: 入力なし。 出力Loading...、末尾にスペースがあり、末尾に改行はありません。 無限に文字を循環|、/、-および\:0.25秒ごとに、シーケンス内の次で最後の1を上書きします。最後の文字だけを上書きすることも、行全体を削除して書き換えることもできますが、その間はLoading...変更されません。 ルール 出力テキストは、指定されたとおりに表示される必要があります。末尾の改行/スペースは許容されます。 最初に出力を表示するまで0.25秒待つべきではありません -プログラムが実行されるとすぐに最初のフレームが印刷されます。 プログラムは無期限に実行できる必要があります。たとえば、フレームにカウンターを使用する場合、カウンターが言語の最大値を超えてエラーを引き起こすことはありません。 各「フレーム」間の待機期間は0.25秒である必要がありますが、明らかにこれは決して正確ではありません-10%程度の誤差が許容されます。 関数を送信できますが、に印刷する必要がありますstdout。 読み込みアニメーションを生成できる限り、非コンソール(ただしテキストベース)環境で回答を送信できます。 これはcode-golfであるため、最短のソリューション(バイト単位)が優先されます。標準的なコードとゴルフの抜け穴が適用されます。 可能であれば、動作中のロード画面のgifを提供してください。 例 これが、サンプルの作成に使用したC ++コードです(変更なし)。 #include <iostream> #include <string> #include <thread> using namespace std; int main() { string cycle = "|/-\\"; int i = 0; cout << "Loading... "; while (true) { // Print current character cout …

30
フランスの国旗を描く
掲示された他の多くの旗の挑戦がフランスの国旗のためのものではありませんでした。今週は適切な時期のようです。 このフラグを可能な限り少ないバイト数で生成します。 画像のサイズは3:2で、サイズは少なくとも幅78ピクセル、高さ52ピクセルでなければなりません。 各ストライプは幅の3分の1を占めます。 :左から右へのストライプの色はRGBです(0, 85, 164)、(255, 255, 255)、(239, 65, 53)。 画像は、一般的な画像ファイル形式でファイルに保存するか、RAWでSTDOUTにパイプするか、表示することができます。 または、ANSIカラーコードを使用して、フラグを表す空白以外の文字で構成される少なくとも78文字幅のテキストブロックを出力します。(標準の青、白、赤を使用します。) 組み込みのフラグ画像/ライブラリは使用できません。 バイト単位の最短コードが優先されます。 リーダーボード この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からリーダーボードを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 ## Perl, 43 + 2 (-p flag) = 45 bytes 言語名をリンクにして、スニペットに表示することもできます。 ## [><>](http://esolangs.org/wiki/Fish), 121 bytes コードスニペットを表示 <style>body { text-align: …

12
ロシアの暗号規格が構造化されすぎていることの証明
この課題の目的は、選択した言語で、次の関数の不可能なほど短い実装を見つけるpことです。これを実装するCコード(出力も印刷するこのTIOリンクを参照 )と、それを含むウィキペディアページがあります。 unsigned char pi[] = { 252,238,221,17,207,110,49,22,251,196,250,218,35,197,4,77, 233,119,240,219,147,46,153,186,23,54,241,187,20,205,95,193, 249,24,101,90,226,92,239,33,129,28,60,66,139,1,142,79, 5,132,2,174,227,106,143,160,6,11,237,152,127,212,211,31, 235,52,44,81,234,200,72,171,242,42,104,162,253,58,206,204, 181,112,14,86,8,12,118,18,191,114,19,71,156,183,93,135, 21,161,150,41,16,123,154,199,243,145,120,111,157,158,178,177, 50,117,25,61,255,53,138,126,109,84,198,128,195,189,13,87, 223,245,36,169,62,168,67,201,215,121,214,246,124,34,185,3, 224,15,236,222,122,148,176,188,220,232,40,80,78,51,10,74, 167,151,96,115,30,0,98,68,26,184,56,130,100,159,38,65, 173,69,70,146,39,94,85,47,140,163,165,125,105,213,149,59, 7,88,179,64,134,172,29,247,48,55,107,228,136,217,231,137, 225,27,131,73,76,63,248,254,141,83,170,144,202,216,133,97, 32,113,103,164,45,43,9,91,203,155,37,208,190,229,108,82, 89,166,116,210,230,244,180,192,209,102,175,194,57,75,99,182, }; unsigned char p(unsigned char x) { return pi[x]; } とは p pは、2つのロシアの暗号化標準、つまりハッシュ関数Streebogとブロック暗号Kuznyechikのコンポーネントです。で、この記事(およびISO会議中)、これらのアルゴリズムの設計者は、彼らが、配列を生成したと主張しpiたランダム8ビットの順列を選ぶことで。 「不可能」な実装 256 !≈ 21684256!≈21684256! \approx 2^{1684}あります!≈ 2 1684年 8ビットに置換。したがって、与えられたランダムな順列に対して、それを実装するプログラムは、1683ビット未満しか必要としないことが予想されます。 しかし、たとえば次のCプログラムのように、複数の異常に小さい実装(ここにリストされています)が見つかりました。 p(x){unsigned char*k="@`rFTDVbpPBvdtfR@\xacp?\xe2>4\xa6\xe9{z\xe3q5\xa7\xe8",l=0,b=17;while(--l&&x^1)x=2*x^x/128*285;return l%b?k[l%b]^k[b+l/b]^b:k[l/b]^188;} 158文字しか含まれていないため、1264ビットに収まります。ここをクリックして、動作することを確認してください。 …

30
アダム・ウェストを称えて
Adam Westは亡くなりました。PPCGに関する彼の記憶に敬意を表したいと思いますが、彼が私たちの存在を知っているかどうかは疑っています。この男は多くのさまざまなことで知られていますが、元のバットマンとしての彼の役割ほど目立つものはありません。私は継父が今でも昔のバットマンとロビンを見続けていることをいつも覚えています。この挑戦は本質的に単純化されており、アダム・ウェストであった複雑な人とはまったく一致していません。しかし、これは男性のキャリアの最も象徴的なイメージであるため、私が考え出すことができる最高のものです。 これを以前に投稿したかったのですが、誰かがもっと良いものを思い付くのを待っていました。 以下を出力します(末尾のスペース/改行の有無にかかわらず): * * **** * * **** **** ******* **** ****** ******* ****** ********* ********* ********* *********************************************** ************************************************* ************************************************* ************************************************* *********************************************** ***** ********************* ***** **** *** ***** *** **** ** * *** * ** これはcode-golfで、最小のバイト数が勝ちます。

30
5お気に入りの手紙
挑戦は実際には非常に簡単です。5つの異なる文字を選択し(必要に応じて最短のコードを許可する5文字を選択できます)、それらをコンソールに出力します。ただし、ツイストは、それらが次のリストからのものでなければならないということです。 AAA BBBB CCCC DDDD EEEEE FFFFF GGG H H A A B B C D D E F G H H AAAAA BBBB C D D EEEE FFFF G GG HHHHH A A B B C D D E F G G H H A A BBBB CCCC DDDD …

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