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

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

22
タイムアナグラム
もともと@Tlinkによって投稿(および削除)されました。これは、このStackOverflowの質問に触発された可能性が高いです。 それは削除されたのは残念だったので、それは一般に良い挑戦のように思えたので、私は適切なフォーマットとルールでそれを再投稿すると思いました。(@Tlinkに連絡して投稿の許可を取得しようとしましたが、(s)彼はこれ以上応答しないため、今すぐ自分で投稿することにしました。) 入力: 6桁。 出力: 24時間形式の最初または最後の有効な時間(00:00:00〜23:59:59)。(最初または最後の有効な時間を出力するかどうかを自分で選択できます。) 例: 入力がの1,8,3,2,6,4場合、次の時間が作成できます。 12:36:48 12:38:46 12:46:38 12:48:36 13:26:48 13:28:46 13:46:28 13:48:26 14:26:38 14:28:36 14:36:28 14:38:26 16:23:48 16:24:38 16:28:34 16:28:43 16:32:48 16:34:28 16:38:24 16:38:42 16:42:38 16:43:28 16:48:23 16:48:32 18:23:46 18:24:36 18:26:34 18:26:43 18:32:46 18:34:26 18:36:24 18:36:42 18:42:36 18:43:26 18:46:23 18:46:32 21:36:48 21:38:46 21:46:38 21:48:36 23:16:48 23:48:16 …
29 code-golf  date 

9
山岳ですか?
チャレンジ この課題のために、山岳文字列はM: x(Mx)*、各プロダクションですべてのxが同じ文字である文法規則に準拠する文字列です。インデントすると、山のような文字列は次のようになります。 A B C D C E F E C B A ご覧のとおり、横から見ると少し山のように見えます。 正式な定義 どのキャラクターaも山岳です。 場合S山岳文字列で、a文字があり、その後、aSa並置は、文字列の連結を表し、山岳です。 場合aSaやaTa山岳文字列である、そしてaSaTa山岳文字列です。この規則は、このパターンが任意の数の繰り返しに適用されることを意味することに注意してください。(すなわちaSaTaUa、aSaTaUaVa、aSaTaUaVaWa...すべての山地です。) 例 すべての奇数長パリンドロームは、たとえば次のように山岳です。 t a c o c a t qwertytrasdfdgdsarewqjklkjq それほどささいな例です: q w e r t y t r a s d f d g d s a r e w …

8
フロップする方法を教えてください
コンピューターサイエンティストとして、おそらくpopとpushの基本的なリスト操作に慣れているでしょう。これらは、要素のリストを変更する簡単な操作です。しかし、操作フロップについて聞いたことがありますか?(フリップフロップのように)?とても簡単です。番号nを指定すると、リストの最初のn要素を逆にします。以下に例を示します。 >>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> a.flop(4) [4, 3, 2, 1, 5, 6, 7, 8, 9, 10] フロップ操作のクールな点は、ソートなど、リストに対してクールなことを実行できることです。フロップでも同様のことを行います。 整数のリストを指定すると、「Neighbor it」。つまり、重複する要素がすべて連続して表示されるように並べ替えます。 これはフロップで行えます!たとえば、次のリストをご覧ください。 >>> a = [3, 2, 1, 4, 3, 3, 2] >>> a.flop(4) [4, 1, 2, 3, 3, 3, 2] >>> …

21
Levi-Civitaシンボル
三次元エディントンのイプシロンは関数であるf数のトリプル取る(i,j,k)の各{1,2,3}にし、{-1,0,1}として定義されます。 f(i,j,k) = 0i,j,k区別されない場合、つまりi=jまたはj=kまたはk=i f(i,j,k) = 1とき(i,j,k)の巡回シフトである(1,2,3)の一つです(1,2,3), (2,3,1), (3,1,2)。 f(i,j,k) = -1 いつ (i,j,k)の巡回シフトである(3,2,1)の一つです(3,2,1), (2,1,3), (1,3,2)。 結果は、の順列の符号であり(1,2,3)、非順列は0を返します。あるいは、値1,2,3を直交単位基底ベクトルe_1, e_2, e_3に関連付けると、f(i,j,k)で決定因子列の3×3の行列のはe_i, e_j, e_k。 入力 それぞれから3つの数字 {1,2,3}順に。または、zero-indexedを使用することもできます{0,1,2}。 出力 Levi-Civita関数値 {-1,0,1}。これはコードゴルフです。 テストケース 27の可能な入力があります。 (1, 1, 1) => 0 (1, 1, 2) => 0 (1, 1, 3) => 0 (1, 2, 1) => 0 (1, …

4
真の文字列追加を実装する
多くの言語では、文字列をで「追加」できます+。しかし、これは本当に連結であり、真の追加はグループ公理に従います。 閉じられています(2つの文字列の追加は常に文字列です) 結合的です((a + b)+ c = a +(b + c)) アイデンティティがあります(∃e:a + e = a) すべての要素には逆があります(∀a:∃b:a + b = e) (連結は第4グループ公理に違反します) したがって、あなたへの私のタスクは、真の文字列の追加を実装することです。これは、文字列を表す2つのバイトシーケンスを受け取り、バイトシーケンスのすべてのグループ公理を満たす関数を返す関数です。 nullバイトの文字列を含む文字列を表すすべてのバイトシーケンスで動作する必要があります。 これはコードゴルフなので、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いです。

27
コードゴルフ:独自の水平ペットASCIIスネーク
この挑戦に非常に強く触発されたCode Golf:あなた自身のペットのASCIIスネーク -水平にすると複雑さが増すと思いました。 水平のヘビの例: 0 0 0 0 0 000 00 0 00 000 0 0 000 0 0 0 00 0 000 ルールは次のとおりです。 正確に5行の文字が印刷されます 各行は正確に30文字の長さで、スペースとヘビを描くために選択した文字の組み合わせで構成されます あなたの蛇は3行目から始まります スネークの描画に使用する次の行は、現在の行、1行上(まだ1行目でない場合)、または1行下(5行目でない場合)からランダムに選択する必要があります。 これらの選択肢は、等しく重み付けする必要があります。したがって、ライン1にいる場合は、ライン1にとどまる可能性が50%、ライン2に移動する可能性が50%あります。ライン2にある場合、ライン1に移動する可能性は33%です。ライン2にとどまる確率33%またはライン3に移動する確率33% あなたのヘビはすべての行を訪れる必要はありません。

30
0までランダム化
チャレンジ サンドボックスポスト 正の整数を考えると(K)出力に一様乱数整数(Y)の間を[0, K)。 場合Y > 0と仮定K = Yしてまでこのプロセスを繰り返しますY = 0。 ルール 最初に入力を印刷する必要があります 希望通りの出力形式 プログラムを終了する必要があります。 0 最終出力である必要があります。オプションとして空行 0
29 code-golf  random 

30
整数から最上位ビットをクリアする
入力 入力は単一の正の整数です n 出力 出力のn最上位ビットはに設定されてい0ます。 テストケース 1 -> 0 2 -> 0 10 -> 2 16 -> 0 100 -> 36 267 -> 11 350 -> 94 500 -> 244 たとえば350、バイナリでは101011110です。その最上位ビット(すなわち、左端の設定1にビットを)0それが変身00101111010進数に相当する94、出力。これはOEIS A053645です。

30
プログラミング言語クイズ、Mark II-強盗
警官の挑戦 強盗の挑戦 脆弱な答えを見つけます。つまり、まだ解読されておらず、安全でもない答えです。 その言語を理解することによってそれをクラックします。すなわち、検索任意の所与のプログラムが有効なプログラム(上記警官チャレンジに概説規則に従う)である言語。これが警官が意図した言語であるかどうかは関係ありません。 使用可能な言語を見つけたら、Robbersのスレッドに回答を投稿し、Copの回答の下にコメントします。コメントするほどの評判がない場合は、回答の中でこれを言ってください。誰かがあなたのためにコメントします。 有効なクラックを構成するには、出力形式が警官の意図したソリューションと同じである必要があります。 すべてのユーザーは、回答ごとに1つの推測のみを取得します。これには、他の人に答えを伝えることや、推測に対するヒントが含まれます。自分の答えを破ってはいけません(明らかに...)。 最大数の回答をクラックしたユーザーが強盗の挑戦に勝ちます。ひびの入った回答のバイトの合計によって関係が壊れます(多くの方が良い)。 頑張って強盗!

21
積み重ね可能なシーケンス
デッキから0から9のラベルが付いたカードを1つずつ配り、0から始まり1ずつカウントアップするスタックを形成します。 0を配るとき、新しいスタックを開始するためにテーブルに置きます。 他のカードを配るとき、あなたはそれをカバーする、ちょうど1つ価値の低いカードの上にそれをスタックします。そのようなカードがない場合、デッキはスタックできません。 デッキが与えられたら、与えられた順序で配られたときにスタックできるかどうかを判断します。同様に、数字のリストを指定して、それぞれの形式の互いに素なサブシーケンスに分割できるかどうかを決定します0,1,..,k 例 デッキを取り0012312425ます。最初の2枚のカードは0なので、テーブルに置かれます。 Stacks: 00 Deck: 12312425 次に、を処理しますが1、これはに0関係なく、次のどれでも構いません。 1 Stacks: 00 Deck: 2312425 私たちは、その後、対処2だけ-置きの上1、及び3その上に。 3 2 1 Stacks: 00 Deck: 12425 次に1、2かつ配置された第1のスタックの上及び4第1の頂上。 4 3 22 11 Stacks: 00 Deck: 25 次に、を配置する必要がありますが、どちらのスタック2の1上にもありません。そのため、このデッキはスタッカブルではありませんでした。 入力:数字0-9の空でないリスト、またはそれらの文字列。常に0が入力に含まれると想定することはできません。 出力:2つの異なる一貫した値の1つ、1つはスタッカブルシーケンス用、もう1つは非スタッカブルシーケンス用 テストケース: スタッカブル: 0 01 01234 00011122234567890 012031 0120304511627328390 スタック不可: 1 021 0001111 0012312425 012301210 …

11
セミジグザグを構築する
N入力として正の整数が与えられます。あなたの仕事はN、それぞれの長さの側面のセミジグザグを構築することNです。タスクを明確に説明することは比較的難しいため、例をいくつか示します。 N = 1: O N = 2: O OO N = 3: OO OO OOO N = 4: OOOO OO OO OOOO N = 5: OOOOOO OOO OOO OOO OOOOOO N = 6: OOOOOOOO OOO OOO OOO OOO おおおおおおおおおおおおお N = 7: おおおおおおおおおお OOOO OOOO OOOO OOOO OOOO OOOOOOOOOOOOOO …

25
バイナリツイストの回文数
警告:これは「ちょっと、ASCIIアートでケーキを描いてみよう」チャレンジではありません!読み続けてください;) 少し前に私の誕生日でした、私は今33歳です。 そのため、家族や友人を招待し、数字のようなろうそくをケーキの上に置いたり、歌を歌ったり、プレゼントを贈ったりする、この厄介な社会的伝統があります。 33 -------- 数字の代わりに、バイナリシステムを使用して標準のキャンドルを置くことができます。6本をケーキの上に置き、2本を点灯します。 100001 -------- 私の年齢の10進数と2進数の両方が回文的であることがわかります! チャレンジ 他の数字をキャンドルでケーキに付けて、回文、10進数、2進数にすることができるかどうかを知りたいです。 数値が10進数と2進数の両方で回文的かどうかをテストするプログラム/関数を作成します。しかし、待ってください、もっとあります:バイナリでは、テストのために先行ゼロがカウントされます! 入力 0 <x <2 32 -1の誕生日回文であるかどうかをテストする10進数x (はい、私の次元の人々は非常に長生きしています) 出力 これらの2つの条件を完全に満たす場合は真実です。それ以外の場合は偽です。 数値の10進表現は標準的な回文です 数値のバイナリ表現は標準的なパリンドロームであり、先行ゼロを追加するとこれに役立つ場合があります テストケース 1 > 1 => Truthy 6 > 110 (0110) => Truthy 9 > 1001 => Truthy 10 > 1010 (01010) => Falsey, 10 is not palindromic …

16
プリミティブピタゴラストリプル
(関連) A ピタゴラストリプルリストで(a, b, c)満たす式その2 + B 2 = C 2。 プリミティブピタゴラストリプル(PPT)を一度ここでありa、bおよびc全てである互いに素(すなわち、三つの要素の間の唯一の公約数です1)。たとえば、(3, 4, 5)直角三角形は有名な原始的なピタゴラストリプルです。 チャレンジ inputが与えられるとn、nth PPTを出力します。または、 inputを指定するnと、最初のnPPTが出力されます。 これらのPPTを順序付けて適切な順序のリストを作成し、どちらがnthであるかを判断する方法は複数あります。アルゴリズムがすべての可能な一意のPPTを生成できることを証明できる(非公式には問題ありません)限り、任意の順序を選択できます。たとえば、コードは両方(3,4,5)を出力すべきではありません。(4,3,5)これらは同じトリプルの複製なので、どちらか一方を出力してください。 同様に、使用しているコードを記述している限り、コードのインデックスが0か1かは問題ありません。 例 以下の例では、1つのインデックスを使用し、nth PPTを出力し、最小値c、最小値a、最小値の順に並べていbます。 n | output 1 | (3, 4, 5) 2 | (5, 12, 13) 5 | (20, 21, 29) 12| (48, 55, 73) ルール 入力と出力は、任意の便利な形式で指定できます。 提出する際には、エントリの順序、およびエントリのインデックスが0か1かを明記してください。 選択した順序で複製を作成することはできません。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 …

30
特定の入力を印刷するスクリプトを出力するスクリプト
入力として文字列を受け取り、実行時に初期入力文字列を出力するのと同じ言語でコードを出力するコードを記述します。 文字A〜Z、a〜z、および0〜9の任意の組み合わせを処理できる必要があります。 Pythonの例: import sys print "print('" + sys.argv[1] + "')" の入力が与えられると、testing123が返されprint('testing123')ます。 これはcode-golfであるため、バイト単位の最短回答が優先されます。

20
フロート754からハミング
入力として(-2 52)から(2 52)kの範囲の整数が与えられます。れているようによく知られている、この範囲内の整数で正確に倍精度浮動小数点値として表すことができます。-45035996273704964503599627370496 次のことを行う必要があり、出力ハミング重みのエンコーディングの(1の数)kで binary64形式。これは、符号に1ビット、指数に11ビット(オフセットでエンコード)、仮数に52ビットを使用します。詳細については、上記のリンクを参照してください。 例えば、数22として表され 0 10000000011 0110000000000000000000000000000000000000000000000000 あるため5、出力は5です。 エンディアンは結果に影響しないため、マシンの実際の倍精度値の内部表現を安全に使用して出力を計算できます。 追加のルール プログラムまたは機能が許可されています。 任意のプログラミング言語を使用できます。 標準的な抜け穴は禁止されています 入力番号は10進数です。それ以外は、入出力手段と形式は通常どおり柔軟です。 バイト単位の最短コードが優先されます。 テストケース 22 -> 5 714 -> 6 0 -> 0 1 -> 10 4503599627370496 -> 5 4503599627370495 -> 55 1024 -> 3 -1024 -> 4 -4096 -> 5 1000000000 -> 16 -12345678 -> …

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