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

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

5
私の呪文キャストを最適化する!
私は若い魔法使いで、魔法のような出会いの際にマナを無駄にしないように心がけています。 私はいつでもX呪文を利用でき、それぞれに独自のマナコスト Yがあります。X、Yは厳密に11未満の正の整数です。 初心者として、私のマナプールは大きく変動します(常に11未満です)。 、そして私はマナプールを空にしながら、できるだけ少ない呪文をキャストするのに助けが必要です(スクロールは高価です、そうですね)。私のマナプールのサイズと完全に一致するスペルの組み合わせが見つからない場合は、最も近い(そしてより安い)組み合わせを提供します。 私はあなたとあなたの無限の知恵に来て、私が最大の暗い魔法使いになるのを助けました。私はがっかりしないでしょう。 INPUTスタイル(スタイルがすべてであるため): Y; abcdef Yはマナプールのサイズです。(a、b、c、d、e、f)は呪文です。呪文は6つあり、最初の呪文は「a」マナ、2番目の呪文は「b」マナというように続きます。 入力:4; 1 2 3 3 7 6 私は4つのマナと6つの呪文を利用できます。2つの呪文は1マナ、1つの呪文は2マナ、2つの呪文は3マナなどのコストがかかります。 出力:(3,1) 入力:3; 1 3 5 2 10 出力:(3) 入力:8; 4 1 9 出力:(4,1) 入力:4; 1 2 2 3 出力:(2,2)、(1,3) 呪文のすべての組み合わせを出力する必要がありますが、同じコストの呪文を区別する必要はありません。 あなたが望むどんな機械への最も短い呪文も、たくさんの感謝と運命の鞭を与えられます。
8 code-golf 

2
特定の重みのセットに追加する最適な重みのセットを見つける
この課題では、次のように、入力として重みのコンマ区切りリストを受け取ります。 1,3,4,7,8,11 そして、そのセットに追加できる最小量の重みを出力する必要があります。たとえば、このセットの出力は次のようになります 1,3,7 これらの重みをこれら3つだけで表すことができるからです。 1 = 1 3 = 3 1+3 = 4 7 = 7 1+7 = 8 1+3+7 = 11 複数のソリューションが存在する場合があります。例えば、入力のためのソリューションは、1,2可能性があり1,1、または1,2。入力セットを表すことができる重みの最小量が検出される限り、これは有効なソリューションです。 重りを複数回使用することはできません。1つを2回使用する必要がある場合は、2回出力する必要があります。たとえば、2,3はに対して2回2,3,5,7使用できないため、の有効なソリューションではありません。22+2+3=7 入力は、重複した番号がないことが保証されています。 これはコードゴルフなので、文字数による最も短いコードが優先されます。 ネットワークアクセスが禁止されている(あなたの「賢い」のどれもそうwgetソリューション@JohannesKuhn 咳 咳);) 最も単純なケース: 1,5,6,9,10,14,15 => 1,5,9 7,14,15,21,22,29 => 7,14,15 4,5,6,7,9,10,11,12,13,15,16,18 => 4,5,6,7 2,3,5,7 => 2,2,3 or 2,3,7 そして、よりトリッキーなもの: 10,16,19,23,26,27,30,37,41,43,44,46,50,53,57,60,61,64,68,71,77,80,84,87 => 3,7,16,27,34 20,30,36,50,56,63,66,73,79,86 …
8 code-golf 

9
これまでで最も役に立たないプログラム![閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 これまでで最も役に立たないマシンに触発されました。 以下を実行する最短のプログラムを作成します。 グラフィカルウィンドウを作成し、すぐにウィンドウを閉じてプログラムを終了します。 視覚的に明らかな方法でこれを行います。マシンのスイッチを押す「アーム」のように、プログラムはGUIで視覚的な方法を使用して、プログラムを閉じる必要があります。 この視覚的な方法は、プログラムを終了させるものでなければなりません。あなたはそれを横に何かとして示すことはできません(横に他のものがあるかもしれませんが) 注意: プログラムは、アクティビティが終了の原因である限り、目に見えるアクティビティが人間に見えるように十分長く表示される必要はありません。 ウィンドウはGUIでなければなりません(可視の出口メソッドを含むグラフィカルウィンドウを表示する必要があります)。 視覚的な方法は、自動的に行われなかった場合にユーザーが実行できる方法である必要があります。ユーザーがこれを実行できるようにするためにコードで何を変更する必要があるかを説明します(Isziに感謝)。 ユーザーからの干渉がない場合はプログラムを閉じる必要がありますが、ユーザーが干渉する場合は、プログラムを自動的に閉じる必要はありません。 プログラムが終了する原因を説明してください。 例:プログラムでクリックされるボタンを含むウィンドウ。プログラムを閉じる短いコードスニペットを実行します。
8 code-golf 

20
逆フィボナッチ定数
通常のフィボナッチチャレンジが非常に多いため、逆フィボナッチ定数、つまりフィボナッチシーケンスの逆数の合計を計算するのは興味深いことだと判断しました。 課題は、フィボナッチ数列を使用してフィボナッチ数の逆数を計算し、入力として指定された数字を使用することです。つまり、10の入力は、最初の10フィボナッチ数の逆数に基づいて計算することを意味します。おそらく同点の場合、最短のコードが優先されます。 優勝者は、標準のコードゴルフ規則により3週間で選ばれます。

5
ゴルフ:2D座標のリストにある単位長の正方形はいくつありますか?
2d(x、y)座標のリストを前提として、その座標を使用して形成できる単位正方形(エッジ長1単位)の数を決定します。 入力は、座標の0以上のペアの配列になります。例:JavaScriptの場合:numofsq([[0,0], [1,0], [1,1], [0,1]]) 入力に重複する座標はありません 入力順序はランダムになります(ランダムな2D座標)。 座標形式:[x座標、y座標](duh) 座標の順序:[0,0]、[1,0]、[1,1]、[0,1]および[0,0]、[0,1]、[1,1]、[1,0 ]同じ単位の正方形を表す(1回だけ数える) 座標は負または正の整数にすることができます(duh) 関数は、可能な単位平方の数、0以上を返します。 テストケース: Input Coordinates Pairs Expected Output [0,0], [0,1], [1,1], [1,0], [0,2], [1,2] 2 [0,0], [0,1], [1,1], [1,0], [0,2], [1,2], [2,2], [2,1] 3 [0,0], [0,1], [1,1], [1,0], [0,2], [1,2], [2,2], [2,1], [2,0] 4 [0,0], [0,1], [1,1], [1,0], [0,2], [1,2], …

3
ゲームに最適なAIを構築する15
ゲーム15では、2人のプレイヤーが順番に1から9までの数字を選択します(どちらかのプレイヤーがすでに選択している数字を選択することはありません)。合計が15になる3つの数字を持っている場合、プレイヤーが勝利します。すべての数字が選択されており、いずれかのプレイヤーの合計が最大で15でない場合、ゲームは引き分けです。 あなたの仕事は、15のゲームの状態(好きな形で表されます)を取り、次に移動する番号を返す関数を構築することです。これは、AIとして機能し、別のプレイヤーとゲームをプレイします。あなたはポジションが正当であると仮定するかもしれません(どのプレイヤーも他のプレイヤーよりも多くの数を持っておらず、どのプレイヤーも合計で15になる3つの数をすでに持っていません)。 AIは完璧である必要があります。つまり、勝利のポジションが与えられた場合、AIは強制的に勝利を収める必要があり、負けのないポジション(対戦相手に勝利戦略がないポジション)が与えられた場合、そのAIは対戦相手に敗北ポジションを与える(15は解決済みゲームであるため可能です)。 最短のコードが優先されます。 (注:現在最も短い回答を受け入れ、より短い回答が表示された場合は変更します。)

13
モンティホール問題のシミュレーション[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 3年前休業。 モンティホール問題に頭を抱えることはできませんでした。ここに前提があります: ゲームショーに参加していて、3つのドアの選択肢が与えられているとします。1つのドアの後ろには車があります。他の後ろに、ヤギ。あなたはドアを1つ選びます。ドアの後ろに何があるかを知っているホストが、山羊のいる3つ目のドアを開けます。それから彼はあなたに「2番のドアを選びたいですか?」選択を切り替えることはあなたにとって有利ですか? 10,000シミュレーションを実行します。スイッチングの勝率を出力します。例えば: > 66.66733%
8 code-golf 

4
7月4日の版:特定の数の倍数を含むファイルの行を印刷する
1つのコマンドライン引数、nつまり2147483648(2 ^ 31)未満の整数をとるプログラムを作成し、ファイルinput.txtを読み取りinput.txt、正(ゼロ以外)の倍数である部分文字列を含む行を出力します。のn。2147483647より大きい倍数を無視することもできます。 テストケース input.txt含む場合 1. Delaware Dec. 7, 1787 2. Pennsylvania Dec. 12, 1787 1682 3. New Jersey Dec. 18, 1787 1660 4. Georgia Jan. 2, 1788 1733 5. Connecticut Jan. 9, 1788 1634 6. Massachusetts Feb. 6, 1788 1620 7. Maryland Apr. 28, 1788 1634 8. South Carolina …

3
グラフをASCIIで視覚化する
あなたの使命は、それを受け入れることを選択した場合、次のように、グラフを形成する一連のポイントペアを入力することです。 A、BC、AB、AA、DA、EF、GC、G 次に、グラフのASCII視覚化を出力する必要があります。 たとえば、次のA,B C,A C,Dようになります。 A-----------------B \ \ C---------D 編集:コメントに従って、ここにいくつかの入力制約があります: 各ノードには最大5つの接続があります(さらに処理できる場合は+20) グラフは平面です。つまり、線が交差しません(1つの交差でも処理できる場合は+200) 最大16個のノードがあります(さらに処理できる場合は+20) スコアは999-(コードの長さ)+(ボーナス)です。 エンジンを始動してください:)

4
算術式を評価するゴルフプログラムを生成する
あなたの仕事は、次のような入力を取るプログラムを書くことです: a + b * c + a / 2 そして、ユーザー入力を受け取り、式を評価するプログラムのソースコードを生成します。 式は、演算子を含めることができ+、-、*、/、1文字の小文字の変数。0から32000までの整数。標準の算術優先順位に正しく従う必要があります。式は、26個の一意の変数a〜zに制限されています。ただし、1つの変数が複数回現れることがあります。 入力式は有効であると想定できます(これらの規則に従います)。 生成されたプログラムは、このフォームでユーザー入力を要求する必要があり、変数ごとに1回だけ要求します。 a = 0から32000までのユーザー入力は正しく処理されます。次に、式と正しい結果を出力します。整数または浮動小数点演算を使用できます。計算は、少なくとも32ビットの精度で実行する必要があります。それ以上であれば、オーバーフローやゼロによる除算を心配する必要はありません。 上記の式に対して生成された非ゴルフ生成Perlプログラムの例: print "a = "; my $a = <>; print "b = "; my $b = <>; print "c = "; my $c = <>; print "a + b * c + a …
8 code-golf 

2
DOMの要素に最短のテキストゲッター/セッターを書き込む
jQueryのと同様$.fn.textに、要素のテキストを取得および設定できる1つまたは2つの関数を記述します。 あなたは使用することはできませんtextContentかinnerTextさえ少ない、とinnerHTML。 プレーンなJavaScript。DOMライブラリはありません。主要なブラウザで動作する必要があります。(古いIEを気にする必要はありません。) 最短のコードが勝ちます。 楽しい!

3
高度なコードゴルフ-ディスク操作とファイル割り当て
こんにちは、Golfgeneers。 これはかなり長く詳細な質問です。それが求めていることを考えると、それはそうである必要がありました。ご不明な点がございましたらお尋ねください。不明な点がありましたら、私に知らせて修正してください。これはおそらくコードゴルフのより厳しい側面にあります。 私たちは軽量のコンピュータを構築しており、できるだけ軽量なファイルシステムが必要です。最短のコードが選択されます。 私たちは最先端の65536バイトのハードドライブを提供しています。このプロトタイプのために、それは直接のイメージファイルであり、プログラムが存在すると想定でき、適切な場所にあります。つまり、ハードディスク全体を表すバイナリファイルです。この画像はすでに「フォーマット済み」であると想定できます。プログラムがファイル内の何かに依存している場合、それは可能です。初期の空の状態をすべて0以外にする必要がある場合は、その状態を説明してください。 アプリケーションが使用するRAMについては、メモリ制限はありません。 入出力コマンドには、実際のハードドライブへのインターフェースが必要です。ディスクイメージと同様に、プログラムは入力用のファイルが存在し、どこにでも置くことができると想定できます。同様に、プログラムは都合のよい場所に出力できます。ただし、入力または出力コマンドの実行後にファイルを閉じる必要があります。 ディスクイメージに使用する必要のあるフォーマットが提供されていません。独自のフォーマットを自由に作成できます。最大248個のファイルを保存できる必要があります。256バイトを超えるファイルはすべて、256バイトごとまたはその一部に対するこの制限のために、新しいファイルとしてカウントできます。ファイルは最大63488バイトです。基本的には、256バイトの248セクターのハードドライブと同じくらいの能力が必要です。 これらの見かけ上のサイズの背後にある理由は、2048バイトの「管理」を提供することです-ファイルの詳細を保存するためです。各ファイル/フォルダは、4つの英数字の名前でアクセスできる必要があります。これは、好みに応じて、大文字と小文字を区別する場合と区別しない場合があります。プログラムが4文字以下の名前をサポートしている場合、0.95乗数のボーナスがあります。 プログラムは、stdinを介して次のコマンドを受け入れる必要があります。パラメータはスペースで区切られます。コマンドは改行で終了します。 L-現在のすべてのファイルの標準出力する名前とそれらのサイズを改行で区切ってバイト単位でリストします。 C ab-ファイルaを新しいファイルbにコピーします。 D a-ファイルaを削除 R ab-ファイルaの名前を新しい名前bに変更します。 I a-入力ファイル(上記の注を参照)をファイルaとして追加します O a-出力ファイルに出力ファイルa コマンドの実行に失敗する正当な理由として、次のエラーがSTDOUTまたはSTDERRに報告される場合があります。ERR#のみを印刷するように選択できます。#はエラーの番号です。 1-ファイルが存在しません 2-ファイルはすでに存在します 3-スペース不足* *プログラムは、連続したスペースが不足しているという理由だけでこれを発行できないことに注意してください。それでも使用可能なセクターがある場合は、ディスクを最適化して機能させる必要があります。 フォルダーシステムはオプションですが、スコアに0.8乗数のボーナスが加算されます。1レベルを超えるディレクトリをサポートしている場合、(0.8に加えて)0.7乗数のボーナスを獲得します。ボーナスについては、 L、R、C、Dは、現在のディレクトリ内でのみ機能します。Lは、現在のディレクトリ内のフォルダとファイルを一覧表示する必要があります。 新しいコマンドM abは、ファイルaをフォルダーbに移動します。bが「。」の場合、ファイルを親ディレクターに移動します 新しいコマンドG aはフォルダーaに移動します。aが「。」の場合、親フォルダーに移動します Rはフォルダの名前も変更する必要があります Dはフォルダとその中のファイル/フォルダも削除する必要があります Cはフォルダとその中のファイル/フォルダもコピーする必要があります コマンドの実行に失敗する正当な理由として、次の追加のエラーがSTDOUTまたはSTDERRに報告される場合があります。 4-フォルダーは存在しません 5-フォルダーではなくファイルが必要です-ここで、IとOはファイル名を必要とし、フォルダーが指定されています あなたのスコアは: ソースコードのサイズ(バイト単位) 掛ける 4文字以下の名前をサポートする場合は0.95 単一レベルのフォルダーをサポートする場合は0.8 0.7複数のレベルのフォルダーをサポートする場合 小文字または大文字のコマンド(必ずしもファイル名ではない)をサポートする場合は0.95 幸運を。

3
whatfuckを解釈する
Smallfuckは、1ビットのセルを備えたブレインファックのような言語です。次の指示があります。 > Increment the pointer < Decrement the pointer * Flip the current bit [ If the current bit is not set, jump to the instruction after the matching ] ] If the current bit is set, jump to the instruction after the matching [ ( or just jump unconditionally …

4
「m」と「n」の間の自然数に一致する正規表現を生成します
正規表現のタイプはPCREです。 それは間のすべての自然数と一致していることを出力有効PCREは、このようなことをするプログラムを作成mし、nそして何か他のものと一致していません。先行ゼロは許可されていません。 たとえば、let mとnbe 123とすると4321、プログラムはを出力します 1(2[3-9]|[3-9]\d)|[2-9]\d\d|[123]\d\d\d|4([012]\d\d|3([01]\d|2[01]))。 これは正確な文字列と一致するため^、$アンカーは暗黙的です。 2つのバランスをとる必要があります。 正規表現は適切なサイズである必要があります。 コードは短くする必要があります。 最適化しましょう code length in characters + 2 *regular expression length for input 123456 and 7654321 サイドノート:最短のPCRE正規表現がO(log n log log n)か何かであることを証明できるかどうか興味深いです。

4
イオン性化合物の命名
イオン性化合物は次のように命名されます(metal name) (non-metal suffixed with -ide)。これは、置き換える必要のあるすべてのサフィックスのリストです-ide。 -on -ogen -ygen -ine -orus -ur -ic -ium 化合物の各元素の原子数は、イオン性化合物の命名には使用されません。多価金属の命名規則は無視してください。 NaCl -> sodium + chlorine -> sodium chloride. K2S -> potassium + sulphur -> potassium sulphide (or sulfide). Yb2P3 -> ytterbium + phosphorus -> ytterbium phosphide. PbTe2 -> lead + tellurium -> lead telluride. イオン性化合物を含む文字列(NaCl、K2S、Yb2P3)入力として与えられます。多原子イオンは与えられません。プログラムは、この化合物の名前を出力する必要があります。 …

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