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

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

16
ドットを回転させる
はじめに 2×nブール行列は、4文字の文字列として表すことができます. ':。文字列には「上行」と「下行」があり、1を表すドットと0を表す空のスペースがあります。たとえば、2×6行列 1 0 1 0 0 1 0 0 0 1 0 1 として表すことができます' '. :。あなたの仕事は、この「圧縮された形式」のマトリックスを取り、そのエントリーをコンベヤーベルトのように時計回りに1ステップ回転させることです。 入力 あなたの入力は文字の上の単一の文字列. ':です。その長さは少なくとも2であることが保証されています。 出力 出力は入力文字列になりますが、すべてのドットは時計回りに1ステップ回転します。より明確に言えば、一番上の行のドットは、右に1つずつ配置されていますが、一番右のドットは下に移動します。下の行のドットは左に1ステップ移動しますが、左端のドットは上に移動します。特に、出力文字列は元の文字列と同じ長さでなければならず、空白は重要です。 例 :..:'.2×6行列に対応する入力文字列を考えます 1 0 0 1 1 0 1 1 1 1 0 1 この行列の回転バージョンは 1 1 0 0 1 1 1 1 1 0 1 0 …
46 code-golf  string 

23
ターミナルの海
バックグラウンド 北半球の夏は終わりました。多くの人は太陽、ビーチ、海の波を逃します。 挑戦 ここに海があります: ** ** ** ** ** **** **** **** **** **** ***** ***** ***** ***** ***** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ****** ****** ****** ****** **** 海はこの波パターンの5倍でできています。 ** **** ***** ** …

15
ワイヤーで跳ねる電子
nスペースがある「ワイヤー」を想像してください。さらに、そのワイヤに「電子」があると想像してください。これらの電子は1単位の時間だけ生きます。正確に1つの電子に隣接するワイヤ内のスペースはすべて電子になります。Game of Lifeの用語では、これはB1/Sです。 たとえば、これは長さ10、期間62のワイヤです。 ルール 入力、nは、単一の正の整数です。 出力は、長さnのワイヤの周期を示す単一の整数でなければなりません。 開始状態は、ワイヤの一端にある単一の電子です。 期間には必ずしも開始状態が含まれるわけではありません。一部の長さは開始状態に戻ることはありませんが、それらはすべて周期的です。 静的ワイヤ(つまり、電子のないワイヤ)の周期は1です。 境界条件は周期的ではありません。つまり、ワイヤはトロイダルではありません。 テストケース このリストを作成してくれたorlpに感謝します。(n = 27まで検証しました。) 1 1 2 2 3 1 4 6 5 4 6 14 7 1 8 14 9 12 10 62 11 8 12 126 13 28 14 30 15 1 16 30 17 28 18 …

3
コンビネーションバイクロック
シナリオ 長い一日の仕事でオフィスで時間を過ごし、stackexchange.comを閲覧した後、私はようやく16:58にドアを出ました。私はまだインターンであるため、現在の交通手段は自転車です。信頼できるプジョーレイノルズ501に向かいますが、航海する前にロックを解除する必要があります。ロックは、フレームと前輪を通る標準の4桁のコンビネーションロック(0〜9)です。目を覚まそうとするとき、手を組んで組み合わせに入る。 挑戦 私の指はとても疲れているので、最小限の動きで正しい組み合わせにロックを回したいと思います。1つの動きは、1つの位置(36度)による回転として定義されます。たとえば、から5737への1つの動きがあり5738ます。ただし、連続する3つのリングを同時に把握し、1つとして回転させることができます。これは、1つの動きとしてカウントされます。たとえば、からまたはへの移動は1つだけです。桁番号1、2、および4は桁番号3とは無関係に同じ方向に移動したため、からに移動することは1つの動きではありません。57376837562657376838 したがって、特定の組み合わせについては、自転車のロック(4桁の整数)で見ることができ、ロックを解除するためにできる最小の動きは何ですか、そして、はい、いつでもどちらの方向にも回転できます。これにより、ある方向にいくつかの数字を、別の方向に他の数字を回せることを意味します。ロックを解除するたびに、すべての動きが反時計回りまたは時計回りになるわけではありません。 私は怠け者なので、ロック解除コードは0000です。 これはコードゴルフです。多くのコードを書くのは面倒なので、バイト数の最も短いプログラムが勝ちます。 入力は標準入力からであり、コードは、各移動後に各ステップで表示できる組み合わせを出力する必要があります(末尾の0000を含む)。各組み合わせの出力は、スペース/改行/コンマ/ピリオド/アンパサンドで区切る必要があります。 例 Input: 1210 0100 0000 Input: 9871 9870 0980 0090 0000 Input: 5555 4445&3335&2225&1115&0005&0006&0007&0008&0009&0000 Input: 1234 0124 0013 0002 0001 0000 私はこれをhttp://bicycles.stackexchange.comに投稿しようとしましたが、彼らはそれを好きではありませんでした... 免責事項:最初のゴルフですので、壊れている情報や不足している情報はお知らせください!また、すべての例を手作業で行ったので、動きが少ないソリューションがあるかもしれません! 編集:等しい数の動き(実際にはすべて)を持つ複数のソリューションパスがある回答の場合、推奨されるソリューションはありません。

26
OOo CODEを翻訳
oOo CODEで記述されたプログラムの入力が与えられると、それが表すBFコードを出力します。 oOo CODEの仕組みの簡単な説明を次に示します。 最初に、アルファベット以外の文字がすべて削除されます(範囲外のすべて A-Za-z)。 たとえば、プログラムを使用しますPROgRam reVERsES giVeN iNPut sEqUENcE(esolangs wikiページに記載されている、期待どおりの動作をする例)。この最初のステップの後、次のようになりました PROgRamreVERsESgiVeNiNPutsEqUENcE。 次に、残りのすべての文字を3つのグループに分割します PRO,gRa,mre,VER,sES,giV,eNi,NPu,tsE,qUE,NcE。1文字または2文字の末尾グループがある場合、それを破棄します。 次の表に基づいて、3文字の各グループをBFコマンドに変換します。 ooo > ooO < oOo [ oOO ] Ooo - OoO + OOo . OOO , つまり、グループの最初の文字が小文字、2番目が大文字、3番目が小文字の場合、コマンドに変換され [ます。 この例では、これが最終的にBFプログラムになり、,[>,]<[.<]+実際に入力が逆になります。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: <empty string> -> <empty string> A -> <empty string> Ab -> <empty string> …

10
文字列のジグザギフィ
印刷可能なASCII文字の空でない文字列を取り込むプログラム(または関数)を作成します。 文字列内の文字のジグザグチェーンを隣接するすべての文字ペアで印刷(またはリターン)します。 /通常のASCII順で最初の文字が2番目の文字の前にある場合。例えば B / A \最初の文字が通常のASCII順序で2番目の文字の後にある場合。例えば B \ A -最初の文字と2番目の文字が同じ場合。例えば A-A だから、のための出力Programming Puzzles & Code Golfになります o / \ r z-z o e G l / \ / \ / \ / \ / \ P o r m-m n u l s & C d f \ / …
46 code-golf  string 

17
ゼリーでのゴルフのヒント
Jellyは、当社独自のDennisによる暗黙のゴルフ指向プログラミング言語です。独自のコードページと強力なチェーンシステムを使用してプログラムを簡潔に表現することで、PythやCJamのような他のゴルフ言語を破り、より頻繁にここに答えが現れます。 ゼリーでゴルフをするための便利なヒントを集めましょう。(いつものように、回答ごとに1つのヒントをお願いします!)
46 code-golf  tips  jelly 

19
レバーシミュレーター2015
なぜシミュレーターなのか? 最近の子供たちは、実際にシーソーに箱を積み込んだり、物理的な物体のバランスをいじったりする時間も野心もありません。私のモデルによれば、これはレバーシミュレーターのためのソフトウェア市場に多くの余地を残します。 プログラミングヘルプ募集 私はそのようなゲームの特許を申請中です(保留中)が、ゲームロジックを書くために専門のプログラマが必要です。私の理解では、最終的なプログラムのバイト単位のサイズに基づいてプログラマーに報酬を支払うことは標準的な習慣です。このように、私はこの有利な契約を最低入札者に授与します。 仕様 レバーとは、支点によってバランスが保たれた一連の箱または空の空間です。各ボックスには、特定の重みがあるものを経由9、スペースには重みがありません。ご存知のように、レバー上のボックスの重量は、そのボックスが支点からどれだけ離れているかに直接比例します。4支点から3番目のスペースにある重量の箱は12、レバーのその側に有効な力の単位を提供します。 入力レバーが与えられた場合、レバーが左に傾くか、右に傾くか、完全にバランスが取れているかを出力するプログラムが必要です。 I / Oガイドライン あなたは私のためにプログラムを書くでしょう。 入力には1行のテキストが含まれます。 入力はstdin、1つのコマンドライン文字列から、または1つのコマンドライン文字列として取得されます。 ボックスは、文字「1」から「9」で表されます。これらの文字は、それぞれの重みを表します。空のスペースはスペース「」で表されます。支点はキャレット「^」で表されます。 サンプル入力レバーは次のようになります。 8 2^ 941 このレバーは完全にバランスが取れています。 (4*8) + 0 + 0 + (1*2) == 0 + (2*9) + (3*4) + (4*1) == 34 先頭または末尾のスペースはありません。末尾の改行はありません。 不正な入力を処理する必要はありません。入力には常に1つの支点があり、数字とスペースのみがあります。 出力は、レバーが左に重いか、右に重いか、バランスが取れているかを示します。 プログラムには、整形式の入力から生じる可能性がある正確に3つの出力が必要です。これらを選択できます。 出力は、出力されるかstdout、プログラムの戻りコードである必要があります。 テストケース ここで私は使用してL、R、Bバランス、右重い、左重いことを意味します。 入力:11 ^9出力:B 入力:321^ 12出力:L 入力:9^ 1出力:R (「トリッキーな」テストケースがある場合は、自由に編集してください)。 …

2
OEISの拡張:ダイヤモンドタイルのカウント
私は約束します、これはダイアモンドタイルに関する私の最後の挑戦になるでしょう(とにかく、しばらくの間)。明るい面では、この課題はASCIIアートとは関係がなく、コードゴルフでもないため、これは実際にはまったく異なります。 念のため、すべての六角形に3つの異なるダイヤモンドのタイトルを付けることができます。 興味深い質問は、特定の六角形のサイズに対してこれらのタイルがいくつ存在するかです。これらの数値はかなり徹底的に研究されており、OEIS A008793に記載されているようです。 ただし、回転と反射までのタイルの数を尋ねると、問題は複雑になります。たとえば、辺の長さN = 2の場合、次の20のタイルが存在します。 ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ /\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\ /\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\ \/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/ \/_/_/ \/_/_/ \/_/_/ …

30
118を超える要素名
IUPACは、耐え難い知恵で、新しく作成された要素の体系的な要素名を作成しました。これは、実際の名前について最終的に決定するまでの要素の一時的な名前です。仕組みは次のとおりです。要素番号の各桁には、その値に基づいてプレフィックスが割り当てられます。プレフィックスは、末尾に「ium」と連結されます。これが完了し、ダブルi(ii)またはトリプルn(nnn)が発生した場合、それらをシングルiおよびダブルnに置き換えます。要素の記号は、連結され、結果が大文字で使用される各プレフィックスの最初の文字です。使用されるプレフィックスは次のとおりです。 0 nil 5 pent 1 un 6 hex 2 bi 7 sept 3 tri 8 oct 4 quad 9 enn したがって、このゴルフでは、コードは、指定された正の整数に対して要素名とそのシンボルの両方を生成する必要があります。したがって、コードに137が指定されている場合、stdoutに出力するか、両方untriseptiumを返しUtsます。少なくとも118から558まで有効です。コードの長さが長くならない場合は、それよりも高い値が有効です。 メソッドを示すPythonの例: def elename(n): '''Return name and symbol of new element for given element number.''' prefixes=['nil','un','bi','tri','quad','pent','hex','sept','oct','enn'] nmeFixes, symFixes = [], [] while n: # each digit of element number …

30
ポインター、ポインター、ポインター!
前書き Javaなどの一部の言語のエラー出力では、エラーがどこで間違ったのかをプログラマに正確に知らせるためのポインタが表示されます。 Ideoneでこの例を取り上げます。 Main.java:12: error: ';' expected Invalid Java! ^ キャレットが無効なコードの場所を示していることに注意してください。 チャレンジ あなたの課題は、次のとおりです。与えられた数Nと文字列Sは、上にポインタを置くNにおける番目の文字S。 例 入力:2, "Lorem ipsum, dollar sit amet." 出力: Lorem ipsum, dollar sit amet. ^ ルール 入力は、STDINまたは関数パラメーターを介して受信されます 出力はコンソールまたはreturnedに出力されます 末尾の改行、スペースなどは出力で許可されます ポインタの文字はしなければならないこと^キャレットと、新しい行になければなりません。 これはコードゴルフであるため、最短の回答が勝ちます。幸運を!
46 code-golf 

30
偽のマーキーテキスト
このチャレンジでは、偽のマーキーテキストは、スクロールのように部分的に表示されるテキストです。 いくつかの例: testing 4 t te tes test esti stin ting ing ng g hello 2 h he el ll lo o foobarz 3 f fo foo oob oba bar arz rz z Something a bit longer 10 S So Som Some Somet Someth Somethi Somethin Something Something omething a …
46 code-golf  string 

24
Pythでのゴルフのヒント
PythはPythonにヒントを得た手続き型プログラミング言語で、PPCGユーザーisaacgによって作成されました。 Pythでゴルフをするための一般的なヒントは何ですか?私は、少なくともPythに特有のゴルフ問題全般のコードに適用できるアイデアを探しています。 回答ごとに1つのヒントをお願いします。
46 code-golf  tips  pyth 


20
悪魔の階段を描く
悪魔の階段は、カントール集合に関連するフラクタルのような機能です。 あなたの仕事は、このファンキーな機能をASCIIアートで再現することです! 入力 n >= 0出力のサイズを示す単一の整数。入力は、STDIN、関数引数、またはコマンドライン引数を介して指定できます。 出力 sizeの悪魔の階段のASCIIアート表現n。文字列として返されるか、STDOUTに出力されます。各行の末尾のスペースは大丈夫ですが、先頭のスペースはそうではありません。オプションで、単一の末尾の改行を印刷できます。 sizeの0場合、出力は次のとおりです。 x (希望する場合は、スペースの代わりに、印刷可能な他のASCII文字を使用できますx。) サイズについてはn > 0、次のとおりです。 サイズの出力をn-1取得し、各行を3倍に拡大します 単一の行の間リフルx秒 行を右にシフトしてx、各列に正確に1つがあり、最初の位置xは最小になりますが、行とともに減少します たとえば、の出力n = 1は次のとおりです。 x xxx x の出力を取得するにはn = 2、各行を3倍に拡大します。 xxx xxxxxxxxx xxx singleの行間をさわらせますx: x xxx x xxxxxxxxx x xxx x 右にシフト: x xxx x xxxxxxxxx x xxx x 別の例として、ここにありn = 3ます。 得点 これはコードゴルフであるため、最小バイト数のソリューションが優先されます。

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