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

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

30
私はあなたのために十分ではありませんか?
バックグラウンド: 現在のPerfect Numbersの課題は、数の要因を含む複雑な形式で出力するように求められるため、かなり欠陥があり複雑です。これは、チャレンジの純粋な決定問題の再投稿です。 チャレンジ 任意の標準入力形式で正の整数を指定すると、それが完全かどうかを区別します。 完全数とは、すべての適切な除数の合計に等しい数です(正の除数はそれ自体よりも小さい)。例えば、その約数であるため、完全数であるに合計、ながら、その約数(以来、完全数でない)までの合計、ではありません。6661,2,31、2、31,2,36661212121,2,3,4,61、2、3、4、61,2,3,4,6161616121212 テストケース: Imperfect: 1,12,13,18,20,1000,33550335 Perfect: 6,28,496,8128,33550336,8589869056 ルール メモリや時間の制約がある場合、プログラムはより大きなテストケースを完了する必要はありませんが、より多くのメモリ/時間を与えられれば理論的にはできるはずです。 出力は、許可された出力形式を使用して、2つの異なる一貫した値にすることができます。Perfect / Imperfectを表すものがすぐに分からない場合は、回答で必ず指定してください。

11
アスタリスクスパイラル
サイズSとステップのスパイラルが与えられた場合、外側の半径から内側の半径まで時計回りに構築されたアスタリスクを持つN「正方形」のS*Sスパイラルを出力しNます。 以下のテストケース(例)。 入力: 4 3 出力: *** 入力: 4 6 出力: **** * * 入力: 4 11 出力: **** * * * **** 入力: 6 18 出力: ****** * * * * * * ****** 入力: 6 22 出力: ****** *** * * * * * * * ****** 入力: …

7
私たちは始めたところに終わりました!…
チャレンジ: 入力: 次の2つの入力を取ります 。-印刷可能なASCIIのみを含む文字列(スペース、タブ、または改行を除く) -印刷可能なASCII文字 出力: 最初の行には、文字列入力が含まれます。iこのキャラクターが最初に出現するすべての-modulo-3は、南東方向に移動します。すべてのi-modulo-3秒の出現は南方向に移動します。i-modulo-3が3番目に出現するたびに、南西方向に移動します。文字が再び最初の開始位置に来るまで続けます(つまり、必要に応じて一方の側から他方の側に回り込むことを意味します)。次に、文字列入力の最後の行を再度印刷します。それを終わらせて。(すべてのテストケースはlength(input)、後続の入力を含む行を含め、多くの行の後の最初の入力で終了することに注意してください。ただし、以下の最初のテストケースに見られるように、 9.) これはかなり曖昧かもしれないので、ここに例を示します: テストケース1: 文字列入力:"This_is_a_test" 文字入力:'s' 出力: This_is_a_test s s s ss s s s sss sss s s ss s s s s This_is_a_test 3つの色付きのパスを使用した同じテストケースを次に示しますs。 ここで、最初's'は南東方向の緑の道をたどります。2番目's'は南の方向に黄色のパスに従います。3番目's'は南西方向に水色の経路をたどります。(4番目がある場合's'は、再び南東方向に進みます。これは、以下の他のテストケースのいくつかで確認できます。) チャレンジルール: 入力には、印刷可能なASCIIのみが含まれます(スペース、タブ、改行を除く) I / O形式は柔軟です。改行で区切られた文字列、文字マトリックスなどを使用できます。呼び出し。 指定された文字が文字列に存在しない可能性があります。その場合、入力文字列を1回または2回"test", 'a'出力できます(つまり、次のいずれかを出力として使用できます:"test\ntest"/ "test")。 先行スペースは必須です。末尾のスペースはオプションです。1つまたは複数の先頭/末尾の改行が許可されます。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを持つ関数/メソッドを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 …

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です。

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かを明記してください。 選択した順序で複製を作成することはできません。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 …

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