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

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

8
回転不変フィンガープリンティング
ポリオミノをいくつか持っており、それらを一意に識別したいと考えていますが、ポリオミノは回転させることができます。 たとえば、L-テトロミノを持っている場合 x x xx 次のいずれかと同じフィンガープリントが必要です。 xx x x xxx xxx , x or x 注:平面上での回転のみが許可されている(つまり、片側のポリオミノである)ため、次のポリオミノは異なるものになります。 x x xx チャレンジ この課題のためにタスクがかかりフィンガープリント機能/プログラムを実装することであるm × nm×nm\times nブール/ 0 、10、10,1リスト/列の-valuedマトリックス/リスト/ ..ポリオミノ戻る文字列コード-ポリオミノの指紋を。指紋は、可能なすべての回転に対して等しくなければなりません(一般的に4)。 入出力 M ≥ 1m≥1m \geq 1とN ≥ 1n≥1n \geq 1(すなわち、無空ポリオミノ) あなたは、m 、nm、nm,nが可能な限り小さいことを保証されます(すなわち、すべて000はmmmとnに合うようにトリミングされますnnn 入力が保証されます 単純に接続された 穴がない 出力は、ポリオミノの可能な各回転に対して同じ文字列でなければなりません 例 いくつかの等価クラスがあります。各クラスのフィンガープリントは同じである必要があり、2つの異なるクラスの2つのポリオミノは異なる必要があります。 例のL-テトロミノの回転: [[1,0],[1,0],[1,1]] [[0,0,1],[1,1,1]] [[1,1],[0,1],[0,1]] [[1,1,1],[1,0,0]] …

22
プレイヤーにカードを配る
今夜はカードゲームの夜です!あなたはディーラーであり、あなたの仕事はカードをプレーヤーに配るプログラムを書くことです。 カードの配列とプレーヤーの数を考えると、各プレーヤーのカードの配列を手に分割する必要があります。 ルール プログラムは、空ではない配列Aとゼロ以外の正の整数を受け取りnます。配列は次に分割する必要がありますn手。文字列の長さがn残りのカードで割り切れない場合は、最後にカードをできるだけ均等に分配する必要があります。 の場合n==1、配列の配列を返す必要がありますA唯一の要素で 場合nの長さよりも大きい場合Aは、すべての手と空の手を返却する必要があります。場合n = 4とarray A = [1,2,3]、あなたは返す必要があります[[1],[2],[3]]か [[1],[2],[3],[]]。空、未定義、またはnullの空のハンドを自由に処理できます。 配列には、数値ではなく任意の型を含めることができます。 処理中に配列の順序を変更しないでください。たとえば、if n = 2およびA= [1,2,3]などの結果は[[1,3],[2]]無効になります。 テストケース n A Output 1 [1,2,3,4,5,6] [[1,2,3,4,5,6]] 2 [1,2,3,4,5,6] [[1,3,5],[2,4,6]] 3 [1,2,3,4,5,6] [[1,4],[2,5],[3,6]] 4 [1,2,3,4,5,6] [[1,5],[2,6],[3],[4]] 7 [1,2,3,4,5,6] [[1],[2],[3],[4],[5],[6]] // or [[1],[2],[3],[4],[5],[6],[]] デモプログラム def deal(cards, n): i = 0 players = [[] …

16
複利...ウィザードマネーで
Gringottsは単なる保管庫ではありませんが、評判の良い金融機関とウィザードには融資も必要です。Gringottsゴブリンにめちゃ​​くちゃにされたくないので、興味を計算するプログラムを書くことをお勧めします。利息は年に1度だけ複利されます。 あなたのタスクは、元本、金利、時間(全年)を与えられた利息後の合計未払金額を計算することです。シルバー鎌には29個のブロンズナッツ、ゴールドガレオンには17個の鎌があります。 例 Loan taken out: 23 Knuts 16 Sickles 103 Galleons @ 7.250% For 3 years Total owed after interest: 24 Knuts 4 Sickles 128 Galleons 注意事項と規則 入力および出力は、任意の便利な形式にすることができます。ナッツ、鎌、ガレオン船、金利、および時間を摂取する必要があります。金利以外はすべて整数です。利率は0.125%刻みです。 入力されたお金は正規であるとは限りません(つまり、29個以上のKnutsと17個以上のSicklesを持つことができます)。 出力は正規表現でなければなりません。(つまり、29ナッツ未満、17鎌未満) 任意の精度の計算と比較した場合、合計1,000ガロンまでの合計額は、対象の年に1 Knut以内の精度である必要があります。 利息の各年の後、または最後にのみ切り捨てることができます。参照計算では、これを考慮して精度をチェックできます。 ハッピーゴルフ!
15 code-golf  math 

4
コードゴルフ:レターセプション
チャレンジ: 1文字X(AからZまでの大文字または小文字)と1桁N(0-9)の入力の場合、N * Xで構成される対応する文字Xを印刷します。 手紙はこのリストからのものでなければなりません: AAA BBBB CCCC DDDD EEEEE FFFFF GGG H H A A B B C D D E F G H H AAAAA BBBB C D D EEEE FFFF G GG HHHHH A A B B C D D E F G G H H A …

13
その数の音節はいくつですか?
英語で話したときに、数字を取得して、その中に音節がいくつあるかを知りたいです。 これを1,000未満の正の整数に制限しましょう。 私はイギリス人なので、その後にゼロ以外の数字がある場合は、数百の列の後に「and」を付けます。 チャレンジ 1000より小さい正の整数を受け入れ、イギリス英語でその数を表す単語の音節の数を出力するコードを記述します。 数字を表す単語を生成する必要はなく、含まれる音節の数のみを生成します。 これはコードゴルフです。これを最小限のバイトで達成しようとします。 好きな言語を使用してください。 標準の抜け穴は禁止されています。 テストケース | N | In words | Syllables | | 1 | one | 1 | | 2 | two | 1 | | 3 | three | 1 | | 4 | four | 1 | | 5 | five …

10
Excelの日付コードを「日付」に変換します
負でない整数のExcelスタイルの日付コードを指定すると、年、月、および「日」を明確に示す適切な形式で、対応する「日付」を返します。 些細なことだと思うかもしれません。「恐怖の引用」に気づきましたか?Excelにはいくつかの癖があるため、これらを使用しました。Excelは1月1日のために番号1の日数をカウントST、1900、しかし1900年1月0を持っていたかのように目の 2月29日およびthは、そのすべてのテストケースを試すために非常に注意してください: Input → Output (example format) 0 → 1900-01-00 Note: NOT 1899-12-31 1 → 1900-01-01 2 → 1900-01-02 59 → 1900-02-28 60 → 1900-02-29 Note: NOT 1900-03-01 61 → 1900-03-01 100 → 1900-04-09 1000 → 1902-09-26 10000 → 1927-05-18 100000 → 2173-10-14

7
怠zyな言葉の問題
概要 教師は生徒のために言葉の問題を準備するように言われました。彼女は方程式のリストを与えられ、それらを対応する単語の問題として書くように言われます。しかし、彼女は非常に怠け者であるため、あまり創造性を注ぎません。代わりに、彼女は単にそれを文字通り書きます。たとえば、彼女が読むとき1+1、書くときone plus one、47 * 2に変わりforty seven times two、に56.2 / 7.4なるでしょうfifty six point two divided by seven point four。 この怠け者の先生を助けるためのコードを書いてください。 詳細 数字には小数点と負符号が含まれる場合があります。 数字は短いスケールで書く必要があります。(すなわち、1,000,000,000ありますone billion) 数字は999,999,999,999,999,999(nine hundred ninety nine quadrillion...nine hundred ninety nine)まで可能です。 ゼロのグループは除外する必要があります。例1,000,000はone millionそうではありませんone million zero thousand zero hundred。 小数点以下の桁数は任意に設定できます。 小数点以下の桁は、桁ごとにリストする必要があります。例12.34はtwelve point three fourそうではありませんtwelve point thirty four。 2つの数値は常に演算子で区切られています。 有効な演算子は、プラス(+)、マイナス(-)、時間(*)、および除算(/)です。 括弧はありません。 …
15 code-golf  string 

9
建物を隠す
Skyscrapers Challengeの短いバージョン 仕事 建物の高さの配列と正の整数を指定すると、建物がk正確kに見えるように、高さのすべての順列(重複なし)を見つけます。 建物はすべて、背の低いまたは等しい高さの建物をすべて非表示にします。 入力および出力の形式はすべて有効です。 入力配列が空になることはありません。 正確に同じ数の建物を見ることができない場合は、答えではなくエラーではないものをすべて出力します。 例: (出力の長さは非常に長い出力に対して表示されますが、出力はすべての可能な順列でなければなりません) input:[1,2,3,4,5],2 output: 50 input:[5,5,5,5,5,5,5,5],2 output: [] input:[1,2,2],2 output:[(1,2,2)] Seeing from the left, exactly 2 buildings are visible. input:[1,7,4],2 output:[(4, 7, 1), (1, 7, 4), (4, 1, 7)] input:[1,2,3,4,5,6,7,8,9],4 output:67284 input:[34,55,11,22],1 output:[(55, 34, 11, 22), (55, 22, 34, 11), (55, 34, …

8
それは何イニングですか?
ゴール ワールドシリーズが間近に迫っているので、ボックススコアを読み取って、イニングとは何かを教えてくれるプログラムが必要です。野球はスコアを記録するために奇妙な方法を使用するため、これは少し複雑です。彼らは、イニングの打席チームの得点を、ランを記録するまで(そして、まだ行っている)、または打席を終了するまで書き留めません。したがって、スコアボードの0は常に打席が終了したことを意味します。例えば: Example A: Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9| Them| 0| 0| 0| 0| 0| 2| | | | Us| 0| 0| 2| 0| 0| 0| | | | Example B: Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9| Them| 0| 0| 0| …
15 code-golf 

11
大まかな数値を生成する
バックグラウンド のすべての素因数が厳密にを超える場合n、数はB-rough と記述することができます。nB チャレンジ 2つの正の整数Bとを指定するとk、最初のk B大まかな数値を出力します。 例 ましょうf(B, k)最初のk B大まかな数を含むセットを返す関数になります。 > f(1, 10) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 > f(2, 5) 1, 3, 5, 7, 9 > f(10, 14) 1, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59

30
平方和の差
最初の10個の自然数の平方和は、 12+22+⋯+102=38512+22+⋯+102=3851^2 + 2^2 + \dots + 10^2 = 385 最初の10個の自然数の合計の2乗は、 (1+2+...+10)2=552=3025(1+2+...+10)2=552=3025(1 + 2 + ... + 10)^2 = 55^2 = 3025 したがって、最初の10個の自然数の二乗和と和の二乗の差は 3025−385=26403025−385=26403025 − 385 = 2640 指定された入力nについて、最初のn個の自然数の二乗和と和の二乗との差を求めます。 テストケース 1 => 0 2 => 4 3 => 22 10 => 2640 24 => 85100 100 => 25164150 この課題は、プロジェクトオイラー#6で初めて発表されました。 受賞基準 …
15 code-golf  math 

30
より大きな栄光へと上方へ!
この挑戦が、95歳で亡くなったスタン・リーへの(別の)オマージュとして役立つことを願っています。 スタン・リーは私たちにかけがえのない遺産と独特のキャッチコピーを残しました:Excelsior。だから、彼がそれがその意味だと言ったことに基づいた小さな挑戦があります: 最後に、「Excelsior」とはどういう意味ですか?「より大きな栄光へと前進!」それは、私がツイートを終えるたびにあなたに望むことです!エクセルシオール! チャレンジ 一連の負でないExcelsior!整数を指定すると、整数が前の整数よりも大きいたびに行を出力します。 ルール 入力は、負でない整数の配列になります。 出力は、単語Excelsior(大文字と小文字は区別されます)が続く行で構成され、その後に続く!現在の実行の長さが増えます。文字列の配列を返すこともできます。 入力および出力形式はサイトルールに従って柔軟であるため、言語形式に合わせて自由に調整してください。行の最後にスペースを追加したり、必要に応じてテキストの前後に余分な新しい行を追加することもできます。 例 Input Output ----------------------------------- [3,2,1,0,5] Excelsior! // Excelsior because 5 > 0 [1,2,3,4,5] Excelsior! // Excelsior because 2 > 1 Excelsior!! // Excelsior because 3 > 2 (run length: 2) Excelsior!!! // Excelsior because 4 > 3 (run length: 3) Excelsior!!!! …

30
紛失した番号を印刷する
Lost TVシリーズの大ファンとして、私はいつもエピソードに繰り返し登場する一連の数字に興味をそそられました。これらの番号は次のとおりです。 4,8,15,16,23,424,8,15,16,23,42 4, 8, 15, 16, 23, 42(A104101) 任意のプログラミング言語を使用して、これらの数値を出力するコードを記述します。 得点: 最短回答が勝つ 出力には、他の数字や文字を含めることはできません。セパレータとして他の文字を使用することも、セパレータをまったく使用しないこともできます。 同じ番号の数字を区切ることはできません。48_1516234248_15162342 48\_15162342 は有効な回答ですが、481_5162342481_5162342481\_5162342は無効です。 順序を尊重する必要があります。 コードにシーケンスの数字が含まれていない場合は、スコアを30%減らします。このルールでは、数字を個別に入力できます。例えば: abcde1fg5h 回答には数字151515が含まれておらず、数字のみが含まれているため、有効な候補です。ただし、444または888はボーナスを無効にします。 コードに数字がまったく含まれていない場合は、スコアを50%減らします。¹¹¹、²²²、³³³などの他のキャラクターは、このボーナスに引き続き有効です。

15
2D配列の反時計回りの内側スパイラルを出力します
この stackoverflow質問から サイズがM×NM×N M \times N 2D配列を指定すると、値を反時計回りに出力します。出力は、外側から内側に開始する必要があり、初期ポイントが常にあることを行っている(0,0)(0,0)(0,0)。 与えられた例: ⎡⎣⎢⎢⎢15913261014371115481216⎤⎦⎥⎥⎥[12345678910111213141516] \begin{bmatrix} \color{blue}1&\color{red}2&\color{red}3&\color{red}4 \\ \color{red}5&6&7&\color{red}8 \\ \color{red}9&10&11&\color{red}{12} \\ \color{red}{13}&\color{red}{14}&\color{red}{15}&\color{red}{16}\end{bmatrix} 反時計回りのエッジ値は、ある1,5,9,13,14,15,16,12,8,4,3,21,5,9,13,14,15,16,12,8,4,3,2 1,5,9,13,14,15,16,12,8,4,3,2 。 ここで、内部値に対してプロセスを繰り返します。これは、次のような行列になります [610711][671011] \begin{bmatrix} \color{blue}6&\color{red}7 \\ \color{red}{10}&\color{red}{11} \end{bmatrix} そして、内側値は、である6,10,11,76,10,11,7 6,10,11,7 最終的な結果は、あろう1,5,9,13,14,15,16,12,8,4,3,2,6,10,11,71,5,9,13,14,15,16,12,8,4,3,2,6,10,11,7 1,5,9,13,14,15,16,12,8,4,3,2,6,10,11,7 ルール 空でない入力を想定 行列値を正の整数と仮定する 標準I / Oメソッドが適用されます 標準のコードゴルフ規則と勝利基準が適用されます いくつかのテストケース Input [ [1, 2, 3, 4, 5, 6, 7], [8, 9, …
15 code-golf  matrix 

16
UTF-8バイトシーケンスの長さ
最初のバイトが与えられたUTF-8バイトシーケンスの長さを決定します。次の表は、可能な範囲のそれぞれに対応する範囲を示しています。 Range Length --------- ------ 0x00-0x7F 1 0xC2-0xDF 2 0xE0-0xEF 3 0xF0-0xF4 4 表のギャップに関する注意:0x80-0xBFは継続バイトであり、0xC0-0xC1は過度に長い無効なシーケンスを開始し、0xF5-0xFFはUnicodeの最大値を超えるコードポイントになります。 UTF-8バイトシーケンスの最初のバイトを入力として受け取り、シーケンスの長さを出力または返すプログラムまたは関数を作成します。I / Oは柔軟です。たとえば、入力は数字、8ビット文字、または1文字の文字列です。最初のバイトは有効なシーケンスの一部であり、上記の範囲のいずれかに該当すると想定できます。 これはコードゴルフです。バイト単位の最短回答が優先されます。 テストケース 0x00 => 1 0x41 => 1 0x7F => 1 0xC2 => 2 0xDF => 2 0xE0 => 3 0xEF => 3 0xF0 => 4 0xF4 => 4

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