タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

5
賢明でないビット操作
私はでゴルフをするのdcが好きですdcが、ビット単位の操作がないために時々イライラしています。 チャレンジ 4つの指定されたCビット演算と同等のものを実装する機能の提供&、|、~および^(ビット単位のAND、OR、NOT、およびXOR)。各関数~は、少なくとも32ビットの符号なし整数である2つのオペランドを取ります(1つだけを取ります)。各関数は、オペランドと同じビット幅の符号なし整数を返します。 制限 でサポートされている操作のみを使用できますdc。これらは: + - * / 算術加算、減算、乗算、除算 ~ modulo(または言語がサポートしている場合はdivmod) ^ べき乗 | モジュラーべき乗 v 平方根 > >= == != <= < 標準の等式/不等式演算子 >> <<ビットシフト演算子。 dcこれらはありませんが、2の累乗による除算/乗算の観点から自明に実装されているため、これらを許可します。 制御構造はdc、(再帰)マクロと(不)平等演算を使用して不器用に構築されます。言語に組み込まれている制御構造を使用できます。 また、論理演算子を && || !直接使用することはできませんが、論理演算子を使用することもできますdc。 あなたはビット単位の演算子を使用してはならない &、|、~および^または自明それらを実装する任意の機能。 さらに、組み込みの文字列のベース変換演算子または関数を使用しないでください。 また、答えの検証に役立つテストプログラムまたはオンラインコンパイラスニペット(ゴルフスコアには含まれていません)の提供を検討してください。

7
スクランブルキーで入力する
あなたの友人はコンピューターがあまり上手ではないので、実際の冗談で誰かがキーボードの文字(az)をスクランブルしました。彼が座ってキーボードを見て名前を入力しようとすると、彼は文字がスクランブルされていることに気づき、助けを求めました。 あなたは賢いので、彼が自分の名前を入力してから、彼の名前の代わりに画面に表示されるものを繰り返し再入力すると、彼は最終的に彼の名前を入力することに成功することを知っています。また、親切でキーを再配置しますが、成功するのに何ターンかかるかを知りたいです。 あなたの仕事は、文字をシャッフルし、友人の名前がターン数を計算するプログラムまたは関数を書くことです。 入力の詳細: 2つの文字列が、言語に便利な構造の入力として与えられます。 最初の文字列は、古い小文字のアルファベット順の新しい小文字のリストです。(最初の文字はの位置にありa、最後の文字はの位置にありzます。)文字列には常に何らかの変更が発生します。 2番目の文字列は名前です。印刷可能なASCII文字を含めることができますが、大文字と小文字のアルファベットのみがシャッフルされます。名前自体はalでシャッフルされないかもしれません。 出力の詳細: 出力は、最小限必要な巻き数の単一の整数です。改行はオプションです。 例: 入力: 'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'(d、e、fの位置が変更されました) 出力:( 3表示される名前はMr. John Fod=> Mr. John Eof=> Mr. John Doe) 入力: 'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'(ROT13暗号) 出力:( 2文字を含むすべての入力名は2、元の名前を生成するためにラウンドします。) 入力: 'aebcdjfghiqklmnopzrstuvwxy' 'John Doe' 出力: 140 これはコードゴルフなので、最短のエントリが優先されます。

5
WythoffのNimを完璧にプレイする
あなたの目標は、Wythoff's Nimのゲームに最適なプレイヤーを書くことです。 ワイソフのニムのルール WythoffのNimは、2つの同じカウンターの山でプレイされる決定論的な2プレイヤーゲームです。プレイヤーは交互にターンし、次のいずれかを行います。 最初のパイルから1つ以上のカウンターを削除します 2番目のパイルから1つ以上のカウンターを削除します 最初のパイルと2番目のパイルの両方から、等しい数のカウンター(1つ以上)を削除します。 もちろん、パイルは負になることはできませんが、0にすることはできます。最後のカウンターをすべて削除したプレイヤーがゲームに勝ちます。 より幾何学的に考えるために、このアプレットでプレイできるゲームの同等の定式化を以下に示します。単一の女王は、コーナーが左下にある4分の1の無限チェス盤の正方形から始まります。プレイヤーは交互にクイーンを移動します。クイーンはチェスのクイーンのように移動しますが、3方向に制限されます。 ダウン 左 斜め下および左 クイーンをコーナーに移動する人が勝ちます。 クイーンの座標(コーナー(0,0))をそれぞれのパイルのサイズに関連付けると、両方のゲームが同じであることが簡単にわかります。 完璧なプレイ (完璧なプレーと勝利の動きの概念に精通している場合は、これをスキップできます。) WythoffのNimは有限で決定的なゲームであるため、完全なプレイという概念があります。完璧なプレーヤーとは、常に理論的に勝ったポジションから勝つ戦略です。つまり、勝利を保証する戦略が存在するポジションです。 勝利戦略となるには、移動したばかりのプレーヤーの理論上の勝利位置に常に移動するように移動するだけで十分です。これらの最初の勝利ポジション(コールドポジションとも呼ばれ(0,0), (1,2), (2,1), (3,5), (5,3)ます)はです。Wythoff's Nimの勝利戦略を見つけるアルゴリズムの説明と、勝利ポジションを生成する公式については、Wikipediaの記事を参照してください。 プログラム要件 プログラムや関数を書くと、入力として位置を取り、その動きの後の位置の形で勝ちの動きを出力します。最少バイトが勝ちます。 勝ち手が存在しない場合、つまりポジションが理論上の損失である場合、プログラムはその旨を示し、没収する必要があります。 プログラムは妥当な時間内に実行する必要があります。したがって、指数関数的再帰ゲームツリー検索では十分ではありません。戦略を事前に計算してハードコーディングしたい場合は、問題ありません。 入力 (i,j)杭のサイズを表す、それぞれ最大で1組の負でない数99。これは、2つの数字、タプル、リスト、または任意のコンテナにすることができます。 出力 移動後の位置を、再び2つの数字またはそのコンテナーとして印刷または出力します。これは勝ちのポジションへの合法的な動きでなければなりません。このような動きが複数ある場合、どれでも構いませんが、1つだけです。 勝つ動きがない場合は、出力でこれを示す必要があります。任意の出力は次のようにFalse、None0、または(-1,-1)それは法的な位置ではありません、すべて負け入力のための同じである限り、行います。 実行例 f(5,0) = (0,0) f(2,2) = (1,2) # Or (2,1) or (0,0) f(1,2) = False f(13,9) = (13,8) …

1
上司のために英語を編集する
あなたの上司は最近、英語と呼ばれるこの興味深いプログラミング言語を知っています。彼はこの「革命的な」アイデアを持っていて、あなたと一緒にコーディングして、コードの生産率を倍にしたいと考えています!彼は技術に精通していないため、彼もあなたがコーディングできるようにコンパイラを書いて欲しいと思っています! さて、あなたは邪悪な怠programmerなプログラマーであり、明らかにこのばかげて複雑な言語をコンパイルするプログラムを書くことはないでしょう。代わりに、上司のコードに常にエラーがあることを確認します。そうすれば、上司は実際のコンパイルに到達せず、コーディングの代わりに文法エラーを修正することができなくなります。 課題は、ターミナルから実行できるプログラムを作成し、ファイルパスを引数として受け入れることです。プログラムは以下を行う必要があります。 タイプミスを導入してファイル入力を変更します。 導入したタイプミスに遭遇したため、コンパイルに失敗するふりをする。 同じファイルのコピーでプログラムを実行しても、同じタイプミスが連続して2回発生することはありません。 課題を説明するために、このファイルでプログラムを実行します。 Take an array as input. Sort the array. Output the array. の行に沿って何かを出力する必要があります Error on line 1: 'Take an arqay as input.' ^ arqay is not a valid identifier. そして、プログラムにコンパイルするように指示したファイルは次のようになります。 Take an arqay as input. Sort the array. Output the array. プログラムの仕様に関する詳細を次に示します。 プログラムでは、上司が入力したプログラム内の任意の文字を別のランダムな文字に交換すると、文法エラーが発生すると想定できます。あなたのプログラムは、ボスコードにエラーを作成するためにアルファベット以外の文字を使用しないでください。あなたの上司は決して数字や記号を使用せず、彼は何かが進行中であることを知ります。あなたのプログラムは、上司のプログラムの言葉にエラーを導入するだけです。文のスペースや句読点を変更しないでください。あなたのプログラムは、上司がコンパイルしようとするプログラムの大文字と小文字を変えてはなりませんarQay。つまり、エラーは無効です。これによりtake、Take、またはのArray代わりにarrayます。プログラムは、まずエラーの行を示すことによりエラーを出力する必要があります。 Error …
16 code-golf 

2
拒否する良い時期
セットアップ あなたが与えられていると仮定し、N 1と、ヒューズ≤ N ≤5、長いメートルでそれぞれが、そしてここで、各ヒューズの関連する燃焼速度有するN個当たりのメートルDの時間。 ヒューズは、片端または両端で点灯し、その後片端または両端で消灯、再点灯、再消灯などを、ヒューズが完全に消費されるまで何度でも行うことができます。ヒューズを瞬時に点灯および消灯することができ、ヒューズが完全に消費された(燃えた)瞬間を正確に観察できます。 ヒューズは切断できず、端以外は点灯できません。 このような設定により、2つのヒューズ点灯/消費イベント間の時間を測定することにより、無限に正確なタイミングシステムが可能になります。たとえば、1時間あたり1メートルの燃焼速度を持つ2つのヒューズがある場合、次の方法で正確に45分(3/4時間)を測定できます。 同時に:最初のヒューズを両端で点灯し、2番目のヒューズを一端で点灯し、時間間隔の開始をマークします 最初のヒューズが消費された瞬間(30分後)に2番目のヒューズの2番目の端を点灯 2番目のヒューズが消費された瞬間(15分後)に時間間隔の終わりをマークする チャレンジ 時間数の小数t、およびn個のヒューズの正確な燃焼速度を表すn個の小数のセットが与えられた場合、ヒューズの系統的燃焼によりt時間を正確に測定できる場合、真の値を出力/返すプログラムまたは関数を記述します。そうでなければ偽の値。 プログラムへの入力は次のいずれかです。 次の形式のコマンドライン引数 TN/TD N1/D1 N2/D2 N3/D3 ... TN/TD N1/D1 N2/D2 N3/D3 ...読み取りstdinまたは同等の形式の文字列 TN/TD N1/D1 N2/D2 N3/D3 ...関数の引数として渡されたフォームの文字列 ["TN/TD", "N1/D1", "N2/D2", "N3/D3", ...]関数の引数として渡される文字列の配列 すべての場合、t = TN/ TD、ここでTN、TD∈[1,10000]。 同様に、すべての場合において:ヒューズ用の燃焼速度は、iが = NをI / D I = N<i>/ D<i>、ここでN<i>、D<i>∈[1,10]∀ I。 常に1〜5個のヒューズ(包括的)があり、すべての入力が有効で範囲内にあると仮定することができます。また、すべての入力分数が最も低い用語で与えられていると仮定することもできます。 …

2
Kingdom Builderのゲームを獲得する
ここで新しい形のコードゴルフを試したいです。ボーナスと同様に、チャレンジのすべての部分を完了する必要はありませんが、各回答には特定のサイズのサブセットを実装する必要があります(すべての回答に実装する必要があるコアがあります)。したがって、ゴルフに加えて、この課題には、うまく機能する一連の機能を選択することも含まれます。 ルール キングダムビルダーはボードゲームで、(先が尖った)ヘックスグリッドでプレイされます。ボードは4つの(ランダム化された)クアドラントで構成され、各クアドラントには10​​x10の16進数セルがあります(したがって、ボード全体は20x20になります)。この課題のために、各ヘックスセルには水(W)、山(M)、町(T)、城(C)、または空(.)が含まれています。したがって、象限は次のようになります . . W . . . . . . . . M W W . . . . . . . M . . W . . . T . M M . W . . . . . . . . M . W W . …

9
人間が読める時間間隔を日付コンポーネントに変換する
チャレンジ 人間が読める時間間隔をフォームの日付コンポーネントに変換する最短のプログラムを作成します。 {±YEARS|±MONTHS|±DAYS|±HOURS|±MINUTES|±SECONDS} サンプルケース 各テストケースは2行で、入力の後に出力が続きます。 1 year 2 months 3 seconds {1|2|0|0|0|3} -2 day 5 year 8months {5|8|-2|0|0|0} 3day 9 years 4 seconds -5 minute 4 years 4 years -3seconds {17|0|3|0|-5|1} ルール strtotimeジョブ全体を実行する組み込み関数を使用することはできません。 最短コード勝利(バイト) 出力をstdoutファイルまたはファイルに印刷できます。結果は関数によって返すこともできますが、それはユーザー次第です トークンは単数形でも複数形でもかまいません。 コンポーネントはランダムな順序である場合があります 番号とトークンの間に空白がない場合があります 時間間隔が正の場合、符号はオプションです(入力および出力) コンポーネントが複数回表示される場合、値を追加する必要があります 各コンポーネントには独自の記号があります コンポーネントは個別に処理する必要があります(たとえば80 minutes、出力では80のままです) 入力は小文字であることが保証されています ハッピーゴルフ!
16 code-golf  string  date 

5
モンドリアン絵画記述言語
この課題は、モンドリアン絵画記述言語(MPDL)のインタープリターのコーディングにあります。 言語定義 この言語は、長方形のスタックで動作します。長方形は、左上の座標と右下の座標で定義されます。座標は整数でなければなりません。スタックは、属性を持つ単一の長方形で初期化されます(1,1,254,254) 各コマンドの形式は次のとおりです。 <character><integer> 次の3つのコマンドがあります。 v<integer>:スタック内の最新の長方形で、パラメーターで示された位置(パーセンテージ)で垂直分割を実行します。ソースの長方形はスタックから削除され、分割の結果の2つの新しい長方形に置き換えられます。左の長方形がスタックにプッシュされ、次に右の長方形がプッシュされます。長方形の座標は整数であるため、分数は最も小さい整数に丸められる必要があります。 h<integer>:水平分割。上の長方形がスタックにプッシュされ、次に下の長方形がプッシュされます。 c<integer>:スタックから最新の長方形を削除し、パラメーターとして指定された色にペイントします。1 =白、2 =赤、3 =青、4 =黄 チャレンジ パラメータとしてペイントの説明を取り、ペイントされた長方形の256x256ビットマップ表現を作成するプログラムを作成します。長方形は、3ピクセルの黒い線で区切る必要があります。1ピクセルまたは2ピクセルの長方形は、黒以外のピクセルを境界線の黒ピクセルで非表示にする必要があります。 入力は、パラメータまたはファイルとして読み取ることができます。コマンドはスペースで区切る必要があります。入力ファイルには正しい構文があり、末尾または先頭のスペース、タブなどがないと仮定できます。出力は、画面に直接表示するか、ファイルを自分で保存できます。 最短のコードが優先されます。 テスト 次のソース: v25 h71 v93 h50 c4 c1 c1 c2 h71 c3 h44 c1 c1 赤、青、黄色のコンポジションIIを生成する必要があります。

17
シーケンス内で最も1が多いサブストリングを見つける
前書き 私はほとんどとサブ見つけたい1「の順にS 0、S」と1のを。 入力 プログラムには、シーケンスとサブストリングの長さの2つの入力があります。 シーケンスは、任意の数である0のと1の: 01001010101101111011101001010100010101101010101010101101101010010110110110 サブストリングの長さは任意の正の非ゼロの整数です。 5 出力 プログラムは、指定された長さの最初の部分文字列の開始インデックスを出力します1。上記の入力では、出力は次のとおりです。 10 文字列の最初の文字はのインデックスで始まり0ます。 得点 最短のコードが勝ちます! ルール プログラムは、有効な入力に対して常に正しいインデックスを出力する必要があります。 デフォルトのオプションで正のスコアを持つ回答から入力/出力方法を選択できます。回答で選択する方法を指定してください。

14
一言:コンウェイ再訪
今までにConwayシーケンス(別名「look-and-say」-sequence)に慣れている必要があります。 1 11 21 1211 111221 312211 etc 任意の番号で開始点として開始することもできます。ましょうf(s)シーケンスの次の要素になります。今与えられたsものごとに見つけることができますf(s)。逆は些細なようではありません:それはすべてのためではありませんy前身に見つけることが可能sなことをf(s) = y。たとえばy = 1、前任者を見つけることができません。ただし、長さが偶数の場合yは、先行の各部分を記述する数字のペアに分割できます。 513211 divides in 51,32,11 so: 51 comes from 11111 32 comes from 222 11 comes from 1 put together: 111112221 したがって、この方法で、偶数の長さごとに一意の先行を定義できますy。 注:sこの方法で定義された「先行」は、一般に満たされないf(s) = y。 ゴール 入力として数字の文字列を受け入れる関数/プログラムスニペットを記述します 入力文字列の長さが奇数の場合、Conwayシーケンスの次の要素を計算します 入力文字列の長さが偶数の場合、上記で定義された入力文字列の先行を計算します。 バイト単位の最短コードが優先されます。 発言シーケンスに基づく最近の質問: 見て、言うシーケンス ポイントフリーのルックアンドセイシーケンス 発言シーケンスのn番目の項の長さをすばやく見つける
16 code-golf 

1
MUパズルソルバーを構築する
MUのパズルは、あなたが回すことができるかどうかを知るしたパズルであるMIにMU与えられ、次の操作: 文字列がで終わる場合、末尾にIa Uを追加できます。(例MI -> MIU) 文字列がで始まる場合、文字列のM後Mにパートのコピーを追加できます。 (例MII -> MIIII) 文字列に3つの連続した文字列が含まれている場合、Iそれらをに変更できますU。 (例MIII -> MU) 文字列に2つの連続したが含まれている場合、Uそれらを削除できます。(例MUUU -> MU)。 あなたの仕事は、これが任意の開始文字列と終了文字列に対して実行可能かどうかを判断するプログラムを構築することです。 プログラムは、入力として2つの文字列を受け取ります。各文字列は次で構成されます。 一つM。 最大29 IのおよびUの文字列。 プログラムはtrue、2番目の文字列が最初の文字列から到達可能な場合(またはプログラミング言語の表現/ YPLRT)、falseそうでない場合(またはYPLRT)を返します。 入力と出力の例: MI MII true MI MU false MIIIIU MI true これを行うための任意の言語の最短コードが勝ちです。

10
平方根を元に戻す
あなたの仕事は、小数を整数の平方根の合計に戻すことです。結果には、少なくとも6桁の有効桁数の精度が必要です。 入力: 平方根の数を示す数値と、近似する数値を示す小数。 入力例: 2 3.414213562373095 出力:スペースで区切られた整数。平方根で加算された場合、少なくとも6桁の有効な10進数まで正確な元の10進数になります。 ソリューションではゼロを使用できません。 複数のソリューションがある場合、1つだけを印刷する必要があります。 出力例(順不同): 4 2 これが機能するのは Math.sqrt(4) + Math.sqrt(2) == 3.414213562373095ます。 これはコードゴルフです。最短コード(オプションのボーナス付き)が勝ちます! 常に解決策がありますが、整数の解決策がないときにプログラムが「いいえ」を出力する場合は-10です。さらに、プログラムが1つではなくすべてのソリューション(改行またはセミコロンなどで区切られた)を印刷する場合は-10。 テストケース: 3 7.923668178593959 --> 6 7 8 2 2.8284271247461903 --> 2 2 5 5.0 --> 1 1 1 1 1 5 13.0 --> 4 4 9 9 9 --> 81 …


1
StackExchange Mustafaは、同じ質問を3回受けるのに耐えられません
オースティン:「誰があなたを送ったの?」 ムスタファ:「あなたは私を殺さなければならない!」 オースティン:「誰があなたを送ったの?」 ムスタファ:「お尻にキスして、パワーズ!」 オースティン:「誰があなたを送ったの?」 ムスタファ:「悪魔博士」 (...) ムスタファ:「同じ質問を3回聞かれるのは我慢できません。ただイライラさせられます。」 オースティンパワーズとムスタファの精神で、短い会話をシミュレートします。ただし、会話全体のデータソースはStackOverflowの質問になります(URLからの入力として提供されます)。 ルール 「オースティン」の代わりに質問者のユーザー名が使用されます。彼らが3回尋ねる質問は、質問のタイトルの最後の文から来ています(まだない場合は疑問符で終わることを余儀なくされています)。 StackExchangeが「ムスタファ」の役目を果たします。最終的に与えられる回答は、疑問符で終わらない回答の最初の文に由来し、回答したユーザーの名前に起因します。 質問がゲームに適格であるためには、(a)答えがなければならず、(b)元の質問に一連のコメントがなければなりません: 質問者以外からのコメント (スキップされたコメントの数) 質問者からのコメント 質問者以外からのコメント (スキップ可能なコメントの数) 質問者からのコメント 上位の回答の日付より前にこのシーケンスが満たされない場合、プログラムは単に出力する必要があります"Oh, behave!" StackExchange Mustafaの怒っているレトルトは、疑問符で終わらない質問者以外の誰かからのコメントの最初の文に由来し、感嘆符で終わることを保証します。コメントに疑問符で終わらない文が存在しない場合、レトルトの候補としてスキップされます。コメントレトルトは、作成者のユーザー名に起因します。 明確化 コメントから先頭の「@XXX」応答データを取り除きます。 StackOverflowはコメントが多数ある場合にコメントを要約するため、完全なリストを取得するには、おそらく2番目のリクエストを使用する必要があります。そのリクエストは/programming//posts/NNN/comments?_=MMM、Nに投稿ID、Mに質問IDを持つフォームです。たとえば、https://stackoverflow.com/posts/11227809/comments?_ = 211160を参照してください。 URLは、テキストのみをアンカーするために削除する必要があります。 「文」は、ピリオド、疑問符、または感嘆符で終わるコードブロックの外側にあるものとして定義します。テキストの連続にこの形式の終了句読点がない場合、テキストの終わりは文の終わりです。ピリオドで書かれているかのように。 修飾される可能性が高い面白いテストケースを探している場合は、ほとんどのコメントのある投稿など、StackExchange Data Explorerを使用してみてください。 ...さらに来て、賭けます... サンプル サンプル1 入力: /programming/2283937/how-should-i-ethically-approach-user-password-storage-for-later-plaintext-retrie/ 出力: shanee:「後でプレーンテキストを取得するために、ユーザーのパスワードストレージに倫理的にアプローチする方法は?」 stefanw:「彼はそれが良くないことを知っていると思います!」 shanee:「後でプレーンテキストを取得するために、ユーザーのパスワードストレージに倫理的にアプローチする方法は?」 ルーク:「おそらく、安全な方法でバッファオーバーフローの脆弱性を実装する方法を尋ねるべきです!」 shanee:「後でプレーンテキストを取得するために、ユーザーのパスワードストレージに倫理的にアプローチする方法は?」 Michael Burr:「パスワードがプレーンテキストである必要がある理由を尋ねます。ユーザーがパスワードを取得できるようにする場合、厳密に言えば、設定したパスワードを取得する必要はまったくありません(パスワードが何であるか覚えていませんとにかく、あなたは彼らが使用できるパスワードを彼らに与えることができる必要があります。」 サンプル2 入力: http://scifi.stackexchange.com/questions/2611/why-dont-muggle-born-wizards-use-muggle-technology-to-fight-death-eaters 出力: …

9
Hofstadterの図と図のシーケンスの生成
でゲーデル、エッシャー、バッハ、ダグラス・ホフスタッターは、一般に、図桁のシーケンスと呼ばれる整数配列を導入します。 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, ... チャレンジの一部としてシーケンスの定義を自分で作成することを楽しむこともできますが、それを理解できない場合はOEISでシーケンスA030124として、ウィキペディアで少し明確な定義を見つけることができます。 nSTDIN、ARGV、または関数引数を介して指定されたプログラムまたは関数を作成し、n適切なリスト形式でシーケンスの最初の番号のリストをSTDOUTに出力します。 これはコードゴルフで、バイト単位で最短のソリューションが勝ちます。

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