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

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

3
ベーコンの暗号:ステガノグラフィの紹介
この小さな貯金箱は市場に出ました、この小さな貯金箱はいくつかのコードを書きました... ああ、そのベーコンのことではなく、サーフランシスベーコンのことです!具体的には、暗号ベーコンは、1500年代後半に、メッセージを別のメッセージ内に隠す方法、ステガノグラフィーの方法として考案しました。 暗号は、その内容ではなく、テキストの表示でメッセージを隠すことで機能します。まず、メッセージの文字は次のようにバイナリ(0〜25)にエンコードされます。 注:コード内で次のエンコードを使用してください。入力内の数字、スペース、またはその他の記号については心配しないでください。ただし、エンコードにこれらの文字を含める人にはいくつかのボーナスを考案できます。他の記号を含める場合、文字はエンコードのスペース0〜25を占める必要があります。 Letter Encoding A AAAAA B AAAAB C AAABA D AAABB E AABAA F AABAB G AABBA H AABBB I ABAAA J ABAAB K ABABA L ABABB M ABBAA N ABBAB O ABBBA P ABBBB Q BAAAA R BAAAB S BAABA T BAABB U BABAA V BABAB …

5
nに合計する必要がある正方形、立方体、4乗などはいくつですか?
非負の整数nと整数が与えられp >= 2ます。を取得するには、いくつかのp累乗(p=2正方形をp=3意味し、立方体を意味する)を一緒に追加する必要がありますn。これは常に非負nではありませんが、必要なp(正の整数の)べき乗の多くはわかりません。 これがあなたの仕事です。p合計することができる最小のべき乗の数を見つけますn。 例 >>> min_powers(7, 2) 4 # you need at least four squares to add to 7 # Example: (2)^2 + (1)^2 + (1)^2 + (1)^2 = 4 + 1 + 1 + 1 = 7 >>> min_powers(4, 2) 1 # you need at least one square …

4
StackyMathを解釈してください!
あなたが私の新しいスタックベースの言語を実装する時間です!StackyMathと呼ばれます。これは、スタック上の8つの操作とスタックに番号を追加する方法を備えたスタックベースの言語になります。 操作のリスト: /:部門。スタックの上位2桁で実行されます。結果をスタックにプッシュします。 *:乗算。スタックの上位2桁で実行されます。結果をスタックにプッシュします -:減算。スタックの上位2桁で実行されます。結果をスタックにプッシュします +:追加。スタックの上位2桁で実行されます。結果をスタックにプッシュします ^:べき乗。スタックの上位2桁で実行されます。結果をスタックにプッシュします %:モジュロ。スタックの上位2桁で実行されます。結果をスタックにプッシュします !:階乗。スタックの一番上の番号で実行されます。結果をスタックにプッシュします D:スタックの一番上の番号を複製します 擬似コードで定義された操作: /: push(pop divided by pop) *: push(pop times pop) -: push(pop minus pop) +: push(pop plus pop) ^: push(pop to the pop) %: push(pop mod pop) !: push(factorial pop) D: t = pop; push(t); push(t) 数字をスタックにプッシュする方法: スタックに番号を追加するのは簡単です。必要な場所にプログラムに生の番号を入れるだけです。スタックに複数の数字を配置する必要がある場合は、コンマ(,)で区切ることができます。あなたのプログラムは-入力の数字を処理する必要はありません。ユーザーが数字を望むなら、否定したい数字、ゼロ、-。プログラムの入力の数値も正の整数に制限されます。 入力: プログラムは、コマンドラインで入力するか、標準入力から入力する必要があります。入力は,、必要に応じて区切られた数字(科学表記法または小数なし)と上記で定義された操作のみで構成されます。 …

11
セブンズのゲーム!誰が何を言った?
セブンズのゲームは次のようにプレイされます:nプレイヤーは円に座って、1からカウントアップを開始し、左へ(またはプレイヤーからプレイヤーAへB)通過します。 数ときにp持っている7ことにORで割り切れる7達したが、その後、番号を話したプレイヤーはp-1、次のプレーヤーが言う後p、言わなければならないp+1とは逆転を話す人々のため。例えば、プレイヤーがあればB話す6、プレイヤーはC言う7、Bと言う8と、プレイヤーがA言います9。 注:実生活でプレイしたい人のために、人が数字を忘れた場合(またはsevens言われなかったバージョンで誤ってを言う場合seven)、サークルから除外されますが、この課題からこの詳細を省略します。 チャレンジ自体は、セブンの完璧なゲームで、各プレイヤーがm入力nプレイヤーへの入力までに言うべき数字を印刷することです。 5人は、一例としてA、B、C、D、そしてE、彼らは達するまでプレイしています30。彼らはこのように遊ぶ A: 1 6 8 13 15 19 23 30 B: 2 7* 12 16 18 24 C: 3 11 17* 25 D: 4 10 21* 26 28* E: 5 9 14* 20 22 27*29 にsevensはが付いてい*ます。27と28で2回反転し、からDまで「通常どおり」プレイが継続することに注意してくださいE。 出力は上記の形式である必要はないことに注意してください。わかりやすくするために、そのように印刷しました。 ルール 入力は任意の順序の2つの整数でありm、最後に言う数をn表し、プレーヤーの数を表します。 出力は、プレーヤーごとに1つずつ、複数の配列または複数のストリングにすることができます。文字列を使用する場合は、区切り文字を使用する必要はありません(ただし、コードテストに文字列を追加できる場合は、読みやすくしてください)。どういうわけか実際にそれらを円で印刷できるなら、それも受け入れられます、そしてそれはかなりクールです。 出力は、どのプレイヤーがどのプレイヤーであるかを指定する必要はありません(最初のプレイヤーが言う人であることはかなり明らかです1)が、出力が何らかの理由でソートされていない場合、どのプレイヤーがどの数字のセットを話しているかを明確にする必要があります。発言しているプレイヤーを明確にすれば、何も言わないプレイヤーを省略することもできます。以下に可能な出力の例をいくつか追加します。 これはコードゴルフであるため、最小バイト数が優先されます。 いつものように、問題が不明な場合はお知らせください。幸運と良いゴルフ! 例 >>> sevens_string(30, …

1
矢印迷路脱出
質問 50 x 50文字の配列があります。各セルには、4つの方向のいずれかを指す矢印があります。空のセルはありません。セルに入ると、矢印で指定された方向にセルを出る必要があります。矢印は、あなたが来たのと同じ方向を指し、行き止まりになることもあります。 迷路の最も外側の境界にあるセルから開始し、迷路にあなたを導くパスを見つけて、他のセルで終了させることができます。入力は、<、>、^、およびvを含む配列として与えられます。出力は、0(タスクが不可能であることを示す)または1(持っていることを示す)として1桁(ブール、整数または文字、何でも可能)になりますタスクを達成しました)。 例(実際の配列はこれより大きくなります) ^ v < > > < v < v > v ^ 出力は 1 右側の<から入力できるため、パス「<v v」によって下のvから終了します。 タスクは、入力として迷路を受け取る最短のコードを記述し、ルールで指定されているようにパスが存在する場所を特定し、1桁の0または1を出力することです。 実際の数字の代わりにTRUEとFALSEを出力することもできます。
14 code-golf  maze 

5
アルファベット全体
アルファベット全体 この課題では、アルファベットの文字を覚えるのに苦労します。これを回避するには、アルファベットが表示されるまでアルファベットを上下します。 コードを移植可能にするため、文字ブロックでコードを記述します。大半の文字ブロックが盗まれたため、文字ブロックの数は限られているため、コードをできるだけ短くする必要があります。 例 入力/出力ペアは空白行で区切られています: Ac ABc Ad ABcd fA fedCBA adB abcdcB Hello, World! HGfefghijkllmno, WVUTSrqpopqrqponmlkjihgfed! チャレンジ あなたの目標はA-Za-z、それらの間にアルファベットのすべての中間文字()で隣接する文字を連鎖することです。大文字化が異なる場合、大文字化は途中で変換する必要があります。資本化を途中で均等に変換できない場合、途中で分割されます。文字がアルファベット文字でない場合、変換は実行されません。 勝ち これはコードゴルフなので、バイト単位の最短コードが勝ちです! -10%ボーナス:コードが数字を連結する場合
14 code-golf  string 

12
そして、すべての人々が言っ​​た...
目的文字[またはを含まないテキストの入力を前提として]、次のアクションを実行します。 すべてのインスタンスのためのAmen少なくとも一つの大文字で(そのすべてのインスタンスAmenを除くamen)、同じことを出力Amen(時価総額を保持)。 /all the people said[?: ]/i(正規表現である)のすべてのインスタンスに対して、出力も行いますAmen(どんな場合でも問題ありません)。 すべての出力の後に、改行、スペース、無などの定数セパレーターを選択できます。 これはcode-golfであるため、バイト単位の最短プログラムが優先されます。 IOの例 Input: I said AMEN! AMEN, PEOPLE! Output: AMENAMEN ; any separator is fine, I choose none. Input: amen amen amen amen Output: ; nothing Input: ; empty Output: ; nothing Input: *blah blah blah* And all the people said? Output: …

22
文字列のジップと並べ替え
文字列のリストを指定して、各位置の各文字列から文字を取得し、ASCII順序で並べ替えて、出力文字列に順番に追加することにより、単一の文字列を出力します。つまり、n入力文字列の場合、n出力の最初の文字は序数でソートされた各入力の最初の文字になり、出力の2番目のn文字は序数でソートされた各入力の2番目の文字になります。オン。文字列はすべて同じ長さであり、少なくとも1つの文字列があると想定できます。すべての文字列は、ASCII印刷可能文字(序数32-127)のみで構成されます。 Pythonでのリファレンス実装(オンラインで試してみてください): def stringshuffle(strings): res = '' for i in range(len(strings[0])): res += ''.join(sorted([s[i] for s in strings],key=ord)) return res 例: "abc","cba" -> "acbbac" "HELLO","world","!!!!!" -> "!Hw!Eo!Lr!Ll!Od" ルール 標準的な抜け穴は禁止されています これはcode-golfなので、バイト単位の最短回答が勝ちます リーダーボード この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からリーダーボードを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 ## Perl, 43 + …
14 code-golf  string 

25
チェッカーボード上のピースの数
前書き 通常のチェッカーボードには、8 x 8 = 64個の正方形が含まれています。 合計で、12個の白い部分があることがわかります。黒と白は常に同じ量のピースを持っています。ボード上にこれ以上ピースがある場合、ピースは隣接することになりますが、これはこのチャレンジでは許可されていません。物事を明確にするために、いくつかの例を示します。 このチャレンジで可能な最小のボードは3 x 3です。 ピースの最大量は2に等しいことがわかります。したがって、N = 3を指定した場合、2を出力する必要があります。入力がN = 4の場合、次の結果が得られます。 最大量も2であることがわかります。したがって、N = 4の場合、出力は2になります。以下のためにN = 5、出力は等しくなければならない5。 例 STDIN: 3 STDOUT: 2 STDIN: 4 STDOUT: 2 STDIN: 5 STDOUT: 5 STDIN: 6 STDOUT: 6 STDIN: 8 STDOUT: 12 ルール 提出は、1つの整数を取り、ボード上のピースの数を出力または返すプログラムまたは関数などでなければなりません。 入力が2以上の非負整数であると安全に仮定できます。 これはcode-golfなので、バイト数が最小のプログラムが勝ちです! ボードの左下の正方形は常に暗いことに注意してください。ピースは暗い正方形にのみ配置されます ピースで一列を占める必要があります

17
コードゴルフ:フォワードsdrawkcaBフォワードsdrawkcaBフォワードフォワードsdrawkcaB
仕事 ユーザーは文を入力します-単語のみ。整数や句読点など、文字やスペース以外の入力は例外をスローする必要があります:「文は文字のみを使用する必要があります」。 出力にはパターンがあり、一部の単語が反転し、他の単語は正常です。 パターンは通常の単語として始まり、次の2つの単語が逆になり、次の2つの単語が正常になり、パターンが続きます。 単語が正常であり、単語が反転する場所の例を以下に示します。 正常-反転-反転-正常-正常-反転-反転-正常... 入力例 彼女は海岸で貝を売っています 出力例 彼女はEe AeS海岸でaeSシェルを投げます 追加の規則 大文字を使用する場合、最初に投稿した文字に大文字を使用する必要があります。 入力時に最初に投稿された複数のスペースは、1つのスペースに減らす必要があります。たとえばProgramming Puzzles and Code GolfなりましたProgramming selzzuP dna Code Golf 最短コードが勝つ!! ハッピーコーディング...

4
与えられたサイズのアーベル群を数える
バックグラウンド 前回は、特定のサイズのグループをカウントしましたが、これは重要な問題です。 今回は、アーベルのグループ、つまり可換演算を持つグループのみをカウントします。正式に、基(G、*)がアーベルである場合、X * Y = Y * XすべてのためのためのX、YにおけるG。 この方法で問題ははるかに単純になるため、効率的にカウントします。 仕事 入力として負でない整数nを受け入れ、次数nの非同型アーベル群の数を出力または返すプログラムまたは関数を作成します。 グループの数を計算する1つの方法(A(n)で示します)は、次のことを確認することです。 A(0)= 0 場合、pは素数であり、A(Pのkは)の整数パーティションの数に等しいK。(cfr。OEIS A000041) もしN = MK、及びMとkが互いに素であり、A(N)= A(M)A(K) 。 これまたはA(n)を計算する他の方法を使用できます。 テストケース Input Output 0 0 1 1 2 1 3 1 4 2 5 1 6 1 7 1 8 3 9 2 10 1 11 1 …

5
L凸ですか?
バックグラウンド ポリオミノが呼び出されたL-凸それはL字型パス、基本方向に行くと一度最大で方向を変えるパスで、他のタイルへのタイルから移動することができます場合、。たとえば1、図のs のポリオミノ 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 は、左下から1右上への両方のL字型パスに1aが含まれているため、L凸ではありません0。 0>0>1>1>1 0 ^ ^ 1 1 1 1 0 0 ^ ^ 1>1>0>0>0 0 ただし、1この図のs のポリオミノはL凸です。 0 1 1 1 0 0 1 1 1 1 1 1 …

7
擬似ランダムセルラーオートマトン
前書き この課題では、非常に悪い擬似乱数を使用して、特定の確率的セルオートマトンをシミュレートします。セルオートマトンは、次のローカルルールによってバイナリ文字列で定義されます。セルの左隣とセル自体に状態aとがあると仮定しbます。 の場合min(a,b) == 0、新しい状態はbですmax(a,b)。 の場合min(a,b) == 1、の新しい状態がbからランダムに選択され{0,1}ます。 次の図は、単一のの可能な10段階の進化を示しています1。 1 11 101 1111 11001 101011 1111111 10001001 110011011 1010111101 隣接する2つ1のsが時々に1、そして時にはに進化し、0最も境界のビットが常に1sであることに注意してください。あなたの仕事は、この形式のセルオートマトンの進化を生み出すことです。 インプット 入力は、n表示する行数を示す正の整数と、Lランダム性のソースとして使用する空でないビットのリストです。 出力 出力は、リストのリストまたはビットの2D配列であり、上の図のように、時間ステップ1に対する単一の進化をn表します。0必要に応じて、出力にsを埋め込み、同じ長さの行を取得できますが、先頭に0s があってはなりません。 セルオートマトンのランダムな選択は、リストから引き出され、L使い果たされたときに最初に戻ります。より明確に、出力が上から下、左から右の形式で一度に1行を横断する場合、連続するランダムな選択はL、必要な回数だけ繰り返されるリストを形成するものとします。 例 入力がn = 7とであるとしL = [0,1,0]ます。その後、セルラオートマトンは、7つのステップで次のように進化します。ここでは、vランダムな選択のすぐ上に配置します。 [1] [1,1] v [1,0,1] [1,1,1,1] v v v [1,1,0,0,1] v [1,1,1,0,1,1] v v v [1,0,0,1,1,1,1] a vでマークされたすべてのビットを読み取ると、が得られます01001001。これはL2.66回繰り返されます。次のランダムビットはになります0。 ルールとスコアリング …

1
カニンガムチェーンのカウント
素数は常に人々を魅了してきました。2300年前、ユークリッドは彼の「要素」に書いた 素数とは、単位だけで測定されるものです。 つまり、素数は1(またはそれ自体で)割り切れるだけです。 人々は常に素数間の関係を探しており、(「面白い」のような)かなり奇妙なものを思いついてきました。 たとえば、Sophie Germainプライムは、プライムpで2*p+1もあるプライムです。 安全素数は素数であるpそのため(p-1)/2正確ソフィー・ジェルマン素数の下位条件である、また、素数です。 これらは、この課題で私たちが探しているものに関連しています。 A カニンガムチェーンタイプの私は最後のものを除くすべての要素がある素数のシリーズです、ソフィー・ジェルマン素数と、最初のものを除くすべての要素がある安全素数。このチェーンの要素の数は、その長さと呼ばれます。 これは、プライムから始めてp計算することを意味しますq=2*p+1。qが素数である場合、長さ2のタイプIの Cunnighamチェーンがあります。次に2*q+1、次の生成された数が合成されるまでテストなどを行います。 タイプIIのカニンガムチェーンは、ほぼ同じ原理に従って構築されますが、唯一の違い2*p-1は各段階で確認することです。 Cunninghamチェーンの長さは1です。つまり、2 * p + 1も2 * p-1も素数ではありません。これらには興味がありません。 カニンガムチェーンの例 2長さ5のタイプIのチェーンを開始します。 2, 5, 11, 23, 47 次に構築される数95は、素数ではありません。 これはまた、以下のことを教えてくれる5、11、23および47タイプのいずれかのチェーンを開始していない私を、それが要素に先行する必要があるため、。 2また、長さ3のタイプIIのチェーンを開始します。 2, 3, 5 次はで9、これは素数ではありません。 11タイプIIを試してみましょう(以前にタイプIから除外しました)。 さて、21次は、素数ではないので、この「チェーン」の長さは1になりますが、このチャレンジではカウントしません。 チャレンジ n入力として数値を指定すると、少なくとも長さ2のタイプIまたはIIのn番目のカニンガムチェーンの開始番号を書き込み/返すプログラムまたは関数を記述し、その後にスペース、それに続くチェーンのタイプ(IまたはII)、その後にコロン、その後にそのタイプのチェーンの長さが続きます。プライムが両方のタイプのチェーン(タイプI およびタイプII)を開始する場合、タイプI のチェーンが最初にカウントされます。 例: 2 I:5 nこれは、以前に開始された任意のタイプのチェーンの一部である可能性があることに留意してください。その場合、そのタイプのチェーンの開始番号と見なされるべきではありません。 これがどのように始まるのか見てみましょう から始め2ます。これは最初の素数であるため、を含む下位の素数で始まるチェーンがないことを確認できます2。 タイプIのチェーン内の次の数は次のようになります2*2+1 == 5。5素数なので、少なくとも長さ2のチェーンが既にあります。 これを最初のチェーンとしてカウントします。タイプIIはどうですか?次の番号はになります2*2-1 …

6
保護者番号
保護者番号 ましょうxように、任意の塩基の整数でありD、その数字のアレイです。xのすべてnの範囲1と長さの場合、Confidant NumberですD。 D[n+1] = D[n] + D[n-1] + ... + D[1] + n たとえば、349基数10の数値を考えます。この数値のインデックスにラベルを付けると、次のようになります。 Index Digit ----- ----- 1 3 2 4 3 9 最初の数字から始めて、次の数字1 + 3 = 4を生成するがあります。次に、2番目の数字で3 + 4 + 2 = 9、次の数字が得られます。したがって、この番号は腹心番号です。 1から62までの基数を持つ整数が与えられた場合、その基数のすべてのConfidant Numberを計算し、改行で区切られたそれらのリストを出力します。与えられたベースには、限られた数の親展番号があると仮定できます。 9を超える数字の場合は英字を使用し、9を超えるA-Z数字のZ場合は英字を使用しますa-z。を超える桁数を心配する必要はありませんz。 特定の順序で出力する必要はありません。 サンプル入力: 16 サンプル出力: 0 1 2 3 4 5 6 …
14 code-golf  number 

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