プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

3
Universal Machineエミュレーターを実装する
目標は、最短コードでICFP 2006のユニバーサルマシンをエミュレートする完全なプログラムを作成することです。Universal Machineには、ここで説明する非常に単純な命令セットがあります。エミュレータはコマンドライン引数からファイル名を読み取り、プログラムとしてファイルを実行する必要があるため、言語は何らかの方法でコマンドライン引数と標準入力/出力をサポートする必要があります。エミュレータは、妥当な時間内(数十年以内)にサンドマークを完了する必要があります。命令セットの簡単な説明を次に示します。 マシンには8つのレジスタがあり、それぞれが32ビットの符号なし整数を保持しています。 マシンは、32ビットの符号なし整数セルの配列のインデックス付きセットを保持します。 簡単に言えば、割り当て命令は不透明な32ビットuintを返します。これは、作成された配列へのハンドルであり、静的サイズを持ち、32ビットuint要素を保持します。 0番目の配列はプログラムを示します。起動時にビッグエンディアンファイルから読み込まれます。 0配列のセルを指す命令ポインターもあります。 各ステップで、ポインターが指すセルから命令が読み取られ、ポインターは何かが実行される前に確認されます。 最上位4ビットはオペコードを表します。 オペコードが13の場合、次の3ビットはレジスタを表し、残りの25ビットはそのレジスタに書き込まれる番号を表します。 それ以外の場合、9つの最下位ビットは3つのレジスタ、たとえばA、B、およびCを表します。Cは3つの最下位ビットで表されます。 その後、オペコードに応じて、次のようになります 。0 = C == 0でない限りA = B 1. A = B [C] 2. A [B] = C 3. A = B + C 4. A = B * C 5. A = B / C 6. A …

24
2つのファイルの内容を交換する
これはコードゴルフの質問です。2つの別個のファイル(i.txtおよびo.txt)の内容を取得して、それらを交換する必要があります。3番目のファイルを作成してプロセスを支援することもできますが、ファイルの内容が交換された後にプログラムで削除してください。ファイルの名前変更が再び許可されるようになりました。 プログラムは、すべてのファイルコンテンツに対して機能する必要があります。 最短のコードが勝ち、対象となるすべての提出が投票されます。
13 code-golf 

3
サンタを必死に探して
混雑したシーンでサンタと彼のトナカイを見つけてください。 入力 入力はSTDIN上にあり、長さは等しいが可変の文字の可変行数になります。サンタ(キャラクターで表されるS)がシーンにいる場合、プレゼントの袋(キャラクターで表されるP)は、彼に隣接する位置(水平、垂直、または斜め)のいずれかにあります。彼のトナカイ(キャラクターで表されるR)はすべて、彼を囲む5x5の正方形内にあります。Sプレゼントの袋がないシーン、または少なくとも4人のトナカイが同伴していないシーンに登場する場合は、サンタではありません。 出力 シーンはすべての難読化をクリアし(サンタ以外、プレゼントなし、トナカイ以外のキャラクターはすべてスペースに置き換えられます)、サンタ、プレゼントの袋、トナカイを表示します。他のすべてのキャラクターはスペースに置き換えられます。サンタとトナカイがシーンにない場合は、そのまま出力します。ソリューションは1つのみであることが保証されているため、有効なサンタが複数存在することはなく、プレゼントの袋を複数持ち歩くこともありません。 例 これらの例では、私はちょうど使用している*ことが容易に参照できるようにすること、文字をS、PとRの文字が、しかし、あなたのプログラムから任意のASCII文字を処理することができるはず!の`(96から33)。混乱を避けるため、小文字と上記の文字は省略しました。 入力: *********** *********** *********** *****R***** ******P**** *****S***** *****R***** ****R**R*** *********** *********** *********** *********** 出力:(ドットは無視し、ページに空白行を表示するように強制します) . . . R P S R R R . . . . 入力:(十分なトナカイではありません) *********** *********** *********** *********** ******P**** *****S***** *****R***** ****R**R*** *********** *********** *********** *********** 出力: *********** *********** …

22
あるファイルからテキストを入力し、別のファイルに出力する
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け付けていません。 チャレンジ: 1つのファイルからテキストを入力し、別のファイルに出力します。解決策は完全で機能する機能でなければなりません。 注:これはコードトローリングの質問です。質問や回答を真剣に受け取らないでください。詳細はこちら。

17
西暦2000年災害の作成[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた2年前。 あなたのプログラムはあなたが望むものを何でもすることができます。唯一の条件は、日付が2000年より前である場合に期待どおりに実行され、その後で劇的に失敗することです。思いのままに見事に定義します。 最初のY2Kを逃したすべての人々のために、ここにあなたのチャンスがあります! 最高得点で答えます。

11
Nドア、Kモンキーズ
N個のドアとK個の猿がいます。最初は、すべてのドアが閉じられています。 ラウンド1:最初のサルがすべてのドアを訪れ、ドアを切り替えます(ドアが閉じている場合は開かれ、開いている場合は閉じられます)。 ラウンド2:最初のサルがすべてのドアを訪れ、ドアを切り替えます。その後、2番目のサルは2番目のドアごとに訪問し、ドアを切り替えます。 。。。 。。。 ラウンドk: 最初のサルがすべてのドアを訪れ、ドアを切り替えます。。。。。。。。。。k番目のサルはk番目のドアをすべて訪れ、ドアを切り替えます。 入力: NK(単一のスペースで区切られる) 出力: 単一のスペースで区切られた開いているドア番号。 例: 入力:3 3 出力:1 2 制約: 0 <N <101 0 <= K <= N 注: N個のドアには1からNまでの番号が付けられ、K個の猿には1からKまでの番号が付けられているとします 最短のコードを持つものが勝ちます。また、N = 23、K = 21の出力を表示します

3
三角形の中心
円と正方形には、単一の明確な中心点があります。しかし、三角形の中心の概念は長い間議論されてきました。古代ギリシャ人には4つの異なるセンターが知られていました。 中央:三角形の角二等分線の交差点 重心:三角形の各頂点から反対側の中央までの線の交点 Circumcenter:側面の垂直二等分線の交点 Orthocenter:三角形の高度の交点 オイラーは後に、重心、外心、および直交中心が任意の三角形で共線であることを証明しました。これらの3つの点が三角形になっている線は、オイラー線と呼ばれます。すべてのポイントが一致する正三角形を除くすべての三角形に対して定義されます。 あなたの課題は、2つの入力が与えられたときに特定の中心または三角形のオイラー線を出力する最短のプログラムまたは関数を作成することです。最初は、三角形の各頂点の座標を指定します。2番目は1〜5の整数で、何を出力するかを決定します。 1 - Incenter 2 - Centroid 3 - Circumcenter 4 - Orthocenter 5 - Equation of Euler Line (if the Euler Line is vertical, output the `x` value of the line (e.g. output `5` if the equation of the line is `x = …

4
ハードコードゴルフ:チャットルームを作成する
Cue Storyline: 21世紀初頭であり、ほとんどのものは過去のものになっています。しかし、あなたとあなたの仲間のコードゴルフ愛好家は、1990年代を再現しようとしています。この課題の一部として、最小限のチャットルームを作り直す必要があります。 目標: できるだけ少ないバイト数でチャットルームを作成する。作成するプログラムは、ユーザーが画面にテキストを投稿できるWebページを提供する単純なサーバーとして機能します。 実際の目標: 自分のコンピューターから実際に動作するチャットルームをホストすること。これを行う必要はありませんが、この方法の方がずっと楽しいです。 要件: ユーザーは、セッションが続くユーザー名を自分で入力できる必要があります。 ユーザーは、他のユーザーに表示されるテキストを繰り返し入力および送信できる必要があります。 各ユーザーは、すべてのユーザーによって送信されたテキストと、送信者のユーザー名を表示でき、情報は時系列で表示される必要があります。 ページには、オンラインの人数とユーザー名のリストも表示する必要があります チャットルームは、インターネット上のどこからでも見つけられる場所(IPアドレスを知っているなど)にアクセスできる必要があります。 最新のWebブラウザで機能するはずです。 他のすべてはあなた次第です! 提出: ソースコード、またはソースコードへのリンクを含める必要があります 機能的なチャットルームのスクリーンショットを含める必要があります 動作させるために必要なすべてのプログラム/ファイルの合計サイズをバイト単位で含める必要があります。 この課題はサンドボックス内にしばらくの間存在しているため、すべてのねじれが解決されたことを願っています。
13 code-golf 

7
大文字や句読点を変更せずに単語を逆順にする
文字列内の各単語を逆順に並べ、句読点と大文字を最初の場所に保持しながら、文字数が最小のプログラムを作成します。 「単語の順序」とは、各単語が空のスペース( "")で分割されていることを意味するため、短縮などは1つの単語として扱われます。収縮のアポストロフィは同じ場所にとどまる必要があります。(「しない」=>「いいえ」)。 (句読点は、a〜z、A〜Z、または空白*以外の文字を意味します)。 大文字の番号を使用できないため、このリストから番号が削除されました。数字は句読点として扱われるようになりました。 たとえば、入力の場合: Hello, I am a fish. 出力されるはずです: Olleh, I ma a hsif. Hは以前は同じ場所で大文字だったため、最初の単語の最初の文字であるOが大文字になっていることに注意してください。 コンマとピリオドも同じ場所にあります。 その他の例: This; Is Some Text! 出力します Siht; Si Emos Txet! 任意の言語を使用できます。キャラクターの数が最も少ないプログラムが勝ちます。

30
RGB intから16進数へ
3つの整数rgbを指定すると、16進表現を文字列として出力します。 Input: Output: 72 61 139 #483D8B 75 0 130 #4B0082 0 255 127 #00FF7F 最も短い最も正統でないコードが勝ちます
13 code-golf 

4
モーツァルトゴルフ-ミニ「ロンド」
「Mozart-Alla Turca」をstdoutに出力します(「参照実装」のサンプルを参照) シンセサイザーと音楽の両方を最小サイズにパックする方法を見つけてください。 要件: フィードに適した形式aplay -f cd(署名付き16ビットリトルエンディアン、2チャネル)。 音楽全体を再生する必要があります(音符やパートをスキップせずに、少なくともサンプルプログラムよりも少なくしないでください)。しかし、ポリフォニーは必要ありません。 /usr/bin/timidity、/usr/bin/soxまたはそのようなものだけを呼び出すことはできません(たとえば、特別な音楽モジュールをインストールする必要があります)。 ネットワークにアクセスできない、または音楽がローカルで利用可能であると想定できない。 解析可能なスコアを使用した「リファレンス実装」:https : //gist.github.com/vi/5478693 (古いサンプルPerlプログラム:https : //gist.github.com/vi/5447962)
13 code-golf  music 

8
イースターの日付を計算する
関数またはプログラムは、入力として1年をとり、その年のイースターの日付(グレゴリオ暦)を返す(または印刷する)必要があります(東方正教会のイースターではありません)。返される日付は、ISO 8601に従ってフォーマットする必要がありますが、9999を超える年(312013-04-05または20010130など)をサポートする必要があり、1583(年グレゴリオ暦の採用)、および5701583以下の年(イースターの日付のシーケンスが繰り返され始めたとき)。 例: e(5701583) = 5701583-04-10 e(2013) = 2013-03-31 e(1583) = 1583-04-10 e(3029) = 30290322 e(1789) = 17890412 e(1725) = 17250401 イースターの日付を返すための組み込み関数の使用は退屈であるため、許可されていません。最短回答(文字数)が勝ちます。 リソース: http://en.wikipedia.org/wiki/Computus#Algorithms http://web.archive.org/web/20150227133210/http://www.merlyn.demon.co.uk/estralgs.txt
13 code-golf  date 

5
読みやすさの指標を構築する
フレッシュ・キンケイド可読性アルゴリズムは、完全に客観的、またはコンピュータを使用して、容易に自動化されどちらもワードカウントと音節数、の措置に依存します。たとえば、ハイフンを含む「code-golf」は1語または2語としてカウントされますか?「百万」という言葉は2音節か3音節ですか?このタスクでは、正確なカウントには時間、スペース、そして最も重要なことにはコードが必要になるため、概算する必要があります。 あなたの仕事は、英語の文章を読める言語(完全な文章であると仮定)で可能な限り最小のプログラム(関数)を構築し、Flesch Reading Easeインデックスを8ポイントの許容範囲まで計算することです(説明のため)音節カウントと単語カウントのバリエーション)。次のように計算されます。 FRE = 206.835 - 1.015 * (words per sentence) - 84.6 * (syllables per word) プログラムは、手動カウントを使用してインデックスが計算された以下の参照パッセージに合わせる必要があります。 I would not, could not, in the rain. Not in the dark, not on a train. Not in a car, not in a tree. I do not like them, Sam, …

1
ソリティアの夢-勝てるソリティアスターティングハンドを作成する
それは私です。ケーブジョンソン。 5月21日です。あなたは地球上で最高の会社であるAperture Scienceで働いており、明日、私たちの主力ウィンドウシステム(またはWindowS)のバージョン3.0 CavOSをリリースします。残念ながら、明日の朝、私たちの主要な競合他社はWindowSのバージョン3.0もリリースしています! 競合するWindowSには、CavOSにはない機能が1つあるという、Cave JohnsonのCEOに漏らされました。KlondikeSolitaireのゲームです。私、ケイブ・ジョンソンは、この省略が大幅な売上減少につながることを懸念しています。そのため、私、ケイブジョンソンは、プログラミングインターン間の競争を考案して、ソリティアのゲームを作成しました。エントリーが選ばれたプログラマーは、刺激的なGlaDOS AIプロジェクトに参加する機会を得ます。 私、ケイブ・ジョンソンには、いくつかの要件があります。 ソフトウェアは明日出荷する必要があるため、すでに印刷され、イメージ化されたフロッピーのスペアセクターに収まるように、最短のプログラムが選択されます。 ゲームプレイについて心配する必要はありません。私たちの顧客はプリンターを持っていますか?私が必要なのは、あなたのプログラムが以下を示すリストを作成することだけです:デッキのカードの順序と、7つの山のそれぞれの内容。デッキは上から配られます。杭は下から見えるようになります。Hearts、Diamonds、Clubs、およびSpadesには、略語H、D、C、Sを使用します。King、Queen、Jack、およびAceには、略語K、Q、J、Aを使用します。各カードはスペースで区切る必要があります。最初の行はデッキを示し、2番目は最初の最小のパイルのカード、3番目は2番目のパイルのカードなどを示します。必要に応じて、10の代わりにTを使用できます。 ここではレモネードを作っています-レモンを吸いません。私、ケイブ・ジョンソンは負けたくないし、顧客も好きではない。すべてのゲームは勝つ必要があります ゲームはランダム化する必要があります。単一のゲームをエンコードしようとしません。クロンダイクには7000兆のハンドがあり、それらの約90%が勝ちです。256以上の異なるハンドを作成できるプログラムに満足しています。言語に(タイマーなどから)乱数を取得する方法がない場合は、言語に適した方法でシードを取得できると想定してください。 お客様はかなり賢いです。勝ち勝ちのために、彼らはデッキ3で時間制限なしでDraw 3をプレイしていると仮定します Apertureの皆さん(およびすべてのもの)を代表して、皆さんの幸運を祈ります。お待ちしています。 「キャロライン?どうやったらこの事を止められるの?」 性格外:Windowsのルール3、ドロー3、ベガス以外のソリティアを想定します。私はすべてのtを渡り、すべてのiにドットを付けようとしましたが、質問があるかどうか尋ねます。幸運を。 出力例: 5H AS 7C 8S QH ... AH JS 10S JC JH 7C 9D AC 8D 7C . . .
13 code-golf  game 

3
Brainfuckのビット演算子
あなたの仕事は、以下の二項演算子のそれぞれに対して1つのBrainfuckプログラムを作成することです。各プログラムは、入力から1つまたは2つの8ビット数(AおよびB)を取得し、指定された操作を計算する必要があります。 A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 5つすべてを実装する必要はありません。スコアは次の方法で計算されます。 #totalCharacters + {4000 * #problemsNotCompleted} したがって、有効なスコアはゼロ(最高)から20,000(何も完了していない)までです。 結果を保存する場所や、入力を保存するかどうかは気にしません。8ビットセル、および必要なだけの空のセルを右側にのみ想定します。 最適なメモリ位置に番号がすでにあると仮定することができるので、IO操作を心配する必要はありません。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

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