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

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

30
先行ゼロの課題
チャレンジ 入力(xおよびy)として2つの整数が与えられた場合、符号なしの文字長でxあるために必要な先行ゼロを含む文字列として出力されますy。 ルール 場合xよりも多く持っているy桁数、出力x変更せずに文字列としてを。 先行ゼロがない場合でも、整数としての出力は受け入れられません。 xが負の場合、そのままに-して絶対値で操作します。 負yは0として扱う必要があります。つまりx、そのまま出力します(ただし、文字列として) 例: IN: (1,1) OUT: "1" IN: (1,2) OUT: "01" IN: (10,1) OUT: "10" IN: (-7,3) OUT: "-007" IN: (-1,1) OUT: "-1" IN: (10,-1) OUT: "10" IN: (0,0) OUT: "0" IN: (0,1) OUT: "0" IN: (0,4) OUT: "0000" バイト単位の最短コードが優先され、標準の抜け穴が適用されます。
31 code-golf  string 

21
3つの「R」:リバース、リオーダー、リピート
数字をいじくり回しながら、数字のリストから生成できる面白い順列を見つけました。この同じ順列を十分な回数繰り返すと、常に元の配列に戻ります。次のリストを使用してみましょう。 [1, 2, 3, 4, 5] 例として 配列を逆にします。今、私たちの配列は [5, 4, 3, 2, 1] 各ペアを並べ替える(スワップする)。リストには[5, 4]、との2つのペアがあり[3, 2]ます。残念ながら、1ペアにグループ化することはできませんので、そのままにしておきます。各ペアを交換すると、新しい配列は次のようになります。 [4, 5, 2, 3, 1] 元の配列に戻るまで、手順1と2を繰り返します。次の4つのステップは次のとおりです。 Step 2: Start: [4, 5, 2, 3, 1] Reversed: [1, 3, 2, 5, 4] Pairs Swapped: [3, 1, 5, 2, 4] Step 3: Start: [3, 1, 5, 2, …

24
HyperNeutrinoのベンゼンヘキサゴンアイコンをASCIIで描く
祭典でHyperNeutrinoは、自分のアカウントと担当者を取り戻す氏Xcoder以下。 描画性のために画像を回転させることをおologiesびします。 このASCIIアートを正確に印刷または出力します。末尾にスペースや末尾の改行がある場合があります。 _______________ / \ / / \ \ / / \ \ / / \ \ / / \ \ / / \ \ \ / \ / \ / \ / \ _____________ / \_______________/ これは、分子ベンゼンの 2つの共鳴構造の1つを示しています 関連:同心六角形、アスタリスクで満たされた六角形 リーダーボード: コードスニペットを表示 var QUESTION_ID=128104,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/128104/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function …

30
分割可能ストリーク
我々は、整除ストリーク定義できるk数をn整数最小非負見つけることによりk、このようなn+k割り切れないがk+1。 チャレンジ 選択した言語で、入力のDivisibility Streakを出力または返すプログラムまたは関数を作成します。 例: n=13: 13 is divisible by 1 14 is divisible by 2 15 is divisible by 3 16 is divisible by 4 17 is not divisible by 5 の分割ストリーク13は4 n=120: 120 is divisible by 1 121 is not divisible by 2 の分割ストリーク120は1 テストケース: n DS 2 …

26
最初の行と列、次に2番目の行と列の合計…など
入力として正の整数を含む空でない行列/数値配列を受け取ります。この順序で、最初の行と列の合計、次に2番目の行と列の合計を返し、行または列がなくなるまで続けます。 入力が次のとおりであると仮定します。 2 10 10 2 4 9 7 7 2 9 1 7 6 2 4 7 1 4 8 9 次に、出力は次のようになります。 45, 33, 16, 17 理由:2+9+1+7+10+10+2+4=45, 7+7+1+7+2+9=33, 6+4+2+4=16, 8+9=17。 テストケース: テストケースの形式は次のとおりです。 Input --- Output 5 --- 5 .......... 1 4 ---- 5 .......... 7 2 --- 9 .......... …
31 code-golf  math  matrix 

22
竜巻を構築する
私によると、竜巻は次のようになります。 ######## ####### ###### ##### #### ### ## # この竜巻はwidth nで始まり、次の各行で、入力に応じて文字が左または右から削除されます。 入力 入力は、任意の2つの一意の値(2つの一意の文字列も機能します)のリストと、開始幅を示すオプションの正の整数です。オプションの整数を使用しない場合、開始幅はリストの長さより1大きくなります。開始幅をとしますn。 竜巻の作り方 この例では、1sと0s を含むリストを選択しますが、2つの異なる定数値、または2つの異なる定数文字列を選択できます。 最初の行はn空白以外の文字で構成されます(一貫性のある文字を選択できます#。例として選択します)。 次に、リスト内の各番号について、番号がの場合0、左の文字を削除して新しい行を作成します。の場合1、適切な文字を削除して新しい行を作成します。 したがって、上記の竜巻はの出力です8, [1, 0, 0, 0, 1, 0, 0]。 出力 出力は、文字列のリスト、文字のリストのリスト、または複数行の文字列です。各行の末尾の空白は許可され、末尾の改行は許可されます。 テストケース これらのテストケースには、開始幅との使用リストが含まれ1, 0ます。 5, [1,0,0,1] ##### #### ### ## # 10, [1,0,0,1,0,1,0,0,1] ########## ######### ######## ####### ###### ##### #### ### ## # …

7
最長のドミノチェーン
チャレンジの説明 Dominoesは、2つの値を持つタイルでプレイされるゲームです。1つは左側に、1つは右側に、たとえば[2|4]または[4|5]です。共通の値が含まれている場合、2つのタイルを結合できます。上記の2つのタイルは、次のように結合できます。 [2|4][4|5] n結合されたタイルのシーケンスを、長さnのチェーンと呼びます。もちろん、タイルは回転できるため、タイル[1|2]、[1|3]および長さ3の[5|3]チェーン[2|1][1|3][3|5]に再配置できます。 整数のペアのリストを指定して、これらのタイルを使用して形成できる最長のチェーンの長さを決定します。リストが空の場合、正しい答えは0(1空でないタイルのリストからいつでも長さのチェーンを形成できることに注意してください)。 サンプル入出力 [(0, -1), (1, -1), (0, 3), (3, 0), (3, 1), (-2, -1), (0, -1), (2, -2), (-1, 2), (3, -3)] -> 10 ([-1|0][0|-1][-1|2][2|-2][-2|-1][-1|1][1|3][3|0][0|3][3|-3]) [(17, -7), (4, -9), (12, -3), (-17, -17), (14, -10), (-6, 17), (-16, 5), (-3, -16), (-16, 19), (12, -8)] -> …

30
Zenoの二分法パラドックスを無限に印刷(1 /(2 ^ n))
ウィキペディア:ゼノの二分法のパラドックス 無限の数の数学者がバーに入ってきます。最初のものはビールを注文します。2番目のものは、半分のビールを注文します。3番目はビールの4分の1を注文します。バーテンダーは彼らを止め、2本のビールを注ぎ、「あなたはすべてバカだ」と言います。 Reddit プログラムが実行されている限り、各アイテムの分母に毎回2を掛けて、次のシリーズを印刷します。 1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ... n無限に近づく、このシーケンスの合計が近づきました2。 ルール いいえ、印刷できません2。 1/1最初のアイテムとして印刷することはできません。 必要に応じて1+1/2+...スペース1 + 1 / 2 + ...を削除したり、スペースを追加したりできます。 一般的な需要により、スペースの代わりに改行を区切り文字として使用できます。 必要に応じて、分母に.定数の0sをプラスで追加できます。 「無限」とは、不必要な遅延がないことを意味し、可能な限り現在の(可変)システムの仕様によって制限されますが、現在の言語によって制限されません。 標準の抜け穴が適用されます。 これはcode-golfであるため、バイト単位の最短回答が優先されます。

30
答えを主張する
実行時に、ユーザーが(空の改行以外の)何かを入力するまで、つまり単にEnterまたはを押すまで、入力行の入力を求め続けますOK。出力または結果は必須でも禁止でもありません。 擬似コード1 myform = new form("GUI") myform.mytxt = new editfield("") myform.ok = new button("OK") repeat waitfor(myform.ok,"click") until myform.mytxt.content <> "" 擬似コード2 LET TEXT = "" WHILE TEXT = "" DO TEXT = PROMPT("") ENDWHILE 例1 プログラムが実行され、すぐに1つのテキストフィールドとOKボタンを含むフォームがポップアップ表示されます。 ユーザーがOKボタンをクリックします。 何も起こりません。 ユーザーが「hello world」をテキストフィールドに貼り付けて、OKボタンをクリックします。 プログラムは終了します。 例2 関数が呼び出され、すぐに空白行と点滅カーソルが表示されます。 ユーザーがを押しEnterます。 カーソルが1行下に移動します。 ユーザーがを押しEnterます。 カーソルが1行下に移動します。 ユーザーがPPCGEnter 機能リターンを押します。
31 code-golf 

13
フェルマーニアミス
フェルマーの最後の定理によると、の方程式には正の積分解はありませa^n + b^n = c^nんn>2。これは、1994年にAndrew Wilesによって真実であることが証明されました。 ただし、ディオファントスの式をほぼ満たすが、1つだけ逃す「ニアミス」が多くあります。正確には、それらはすべて1より大きく、の整数解ですa^3 + b^3 = c^3 + 1(シーケンスは、方程式の各辺の値で、昇順です)。 このシーケンスのn最初のn値を出力するタスクが与えられます。 シーケンスの最初のいくつかの値は次のとおりです。 1729, 1092728, 3375001, 15438250, 121287376, 401947273, 3680797185, 6352182209, 7856862273, 12422690497, 73244501505, 145697644729, 179406144001, 648787169394, 938601300672, 985966166178, 1594232306569, 2898516861513, 9635042700640, 10119744747001, 31599452533376, 49108313528001, 50194406979073, 57507986235800, 58515008947768, 65753372717929, 71395901759126, 107741456072705, 194890060205353, 206173690790977, 251072400480057, 404682117722064, 498168062719418, 586607471154432, 588522607645609, …

6
まだ迷っていますか?
あなたの仕事は整数シーケンスA130826を実装することです: a nは最小の正の整数で、a n -nは3の倍数であり、(a n -n)/ 3の約数の2倍はフラビウスによって生成されたシーケンスの最初の差のn 番目の項を与えますジョセフスふるい。 まだ失った?まあ、実際には非常に簡単です。 フラウィウスヨセフス篩は次のように整数のシーケンスを定義します。 正の整数のシーケンスから始めて、k = 2に設定します。 すべての削除のk 番目から始まる、一連の整数をk個目。 kをインクリメントし、ステップ2に戻ります。 f nは、削除されないn 番目の整数(1から始まる)です。 いつものように- -場合σ 0(k)が整数の正の約数の数示しkは、我々が定義することができ、N最小の正の整数であり、その結果として2σ 0((N = F - N)/ 3)N + 1を - F N。 チャレンジ 正の整数かかるプログラムや関数書き込みNを入力し、印刷物として、または返しNを。 標準のコードゴルフ規則が適用されます。最短のコードが勝つように! 実施例 正の整数の2番目の要素をすべて削除すると、次のようになります。 1 3 5 7 9 11 13 15 17 19 21 …

18
識別子の一意化
前書き 定義上、一意の識別子は一意である必要があります。同じ識別子が複数あると、予期しないデータが取得されます。ただし、複数のソースから同時に到着するデータでは、一意性を確保するのは困難です。識別子のリストを一意化する関数を作成します。 これは恐らく私が書いた最悪のパズルの毛羽ですが、あなたはそのアイデアを得ます。 必要条件 0個以上の正の整数のリストが与えられた場合、最初から最後まで次の規則を各数値に適用します。 番号がその種の最初のものである場合、それを保持します。 以前に番号に遭遇した場合は、入力リスト全体または既存の出力のどこにも見られない正の最小整数に置き換えます。 ソリューションの場合: ソリューションは、プログラムまたは関数である可能性があります。 入力は、引数として渡される文字列、配列、またはキーボード入力です。 出力は、文字列、配列、または画面に出力される場合があります。 出力リストのすべての番号は異なります。 仮定 入力リストはきれいです。正の整数のみが含まれます。 正の整数の範囲は1〜2 31 -1です。 プログラムの変数に使用できるメモリは256 MB未満です。(基本的に、2,147,483,648要素の配列は許可されていません。) テストケース Input: empty Output: empty Input: 5 Output: 5 Input: 1, 4, 2, 5, 3, 6 Output: 1, 4, 2, 5, 3, 6 Input: 3, 3, 3, 3, 3, 3 Output: …

30
[今の年]もう家に帰る
現在、対応するチャレンジ年ではないほとんどの新年のチャレンジについては、これを前に述べています。 今年はもう[今]年です。 このテキストを現在の年に置き換えて出力する必要があります。 I / O 入力:なし。 出力:It's [year] already, folks, go home.[年]が現在の年に変更されました。
31 code-golf  date 

26
残り時間はどれくらいですか?
プログラム AとBの 2つの文字列が与えられます。Aはタイマーの現在の位置で、Bはタイマーが停止する位置です。両方の文字列の形式はm:ssです。残り時間を決定するプログラムを作成する必要があります。この時間もm:ssまたはmm:ssとしてフォーマットする必要があります。 例 0:00 0:01 -> 0:01 0:55 1:00 -> 0:05 1:45 3:15 -> 1:30
31 code-golf  string  date 

3
ポーカーハンドの最後のカードを選択する
ポーカーハンドは次のように最高から最低までランク付けされます。 ストレートフラッシュ-連続ランクのカード5枚、すべて同じスーツ Four of a kind-同じランクの4枚のカードと別のランクの1枚のカード フルハウス-あるランクのカード3枚と別のランクのカード2枚 フラッシュ-同じスーツのカード5枚 ストレート-連続ランクの5枚のカード 3種類-同じランクの3枚のカードと2つの他のランクの2枚のカード 2ペア-同じランクの2枚のカード、別のランクの2枚のカード、および第3ランクの1枚のカード 1ペア-同じランクの2枚のカードと3つの他のランクの3枚のカード 高カード-連続ランクまたは同じスーツではなく、同じランクではない5枚のカード ランク=カードの番号(A、K、Q、J、10、9、8、7、6、5、4、3、2)。10の代わりにTを使用することもできます。 スーツ=ハート(h)、スペード(s)、クラブ(c)、ダイヤモンド(d)。 AceはA、最高と最低の両方の数値(1または14)にできることに注意してください。 カードは、2つの文字As(スペードのエース)、Jc(クラブのジャック)、7h(ハートの7)などで識別できます。 チャレンジ: ディーラーから4枚のカード(4つの入力文字列)を受け取ります。あなたが得ることができる最高の最後のカードを見つけて出力します。 同様に良いカードがあれば、どれを選ぶか選択できます。 入力および出力形式はオプションですが、個々のカードは上記Jcおよびに示すように識別される必要があります2h。 テストケース: Ah Kh Jh 10h Qh 7d 8h 10c Jd 9d (or 9h, 9c, 9s) Js 6c 10s 8h Jc (or Jh, Jd) Ac 4c 5d 3d 2h (or …

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