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

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

13
複数選択テストの不正行為、パート2
これは、アドナンによるこの挑戦の続編です。このチャレンジが好きなら、他のチャレンジも好きになるでしょう。見てみな! それぞれ4つの選択肢を持つ8つの質問による多肢選択テストには、答えがありますBCADBADA。4つの異なる配列に変換され、現在の文字が答えである場合はtrueとfalseで、次のようになります Q#: 1 2 3 4 5 6 7 8 B C A D B A D A A: [0, 0, 1, 0, 0, 1, 0, 1] B: [1, 0, 0, 0, 1, 0, 0, 0] C: [0, 1, 0, 0, 0, 0, 0, 0] D: [0, 0, 0, …

18
でこぼこのひもを描く
(この挑戦に触発された。) stringがあるとしましょうABBCBA。私たちは、間に上昇があることを言うことができるAとBするために、B次のA。我々は、間に実行があることを言うことができるBとB何が変わるため、。そして最後に、私たちは間に秋があると言うことができるCとはB。このようなグラフを描くことができます: A B B C B A Rising: o o Continuing: o Falling: o o ラベルなしで、空白を最小化: o o o oo これは、inputの期待される出力ですABBCBA。 o出力では、空白文字以外の文字を使用して置換できます。さらに、各列には、オプションで次のように余分なスペースがあります。 o o o o o 入力は少なくとも3文字で構成されます。文字列は完全に大文字で構成されますが、代わりに小文字を使用することもできます。 テストケース TEST CASE LINE 1 LINE 2 LINE 3 HELLOWORLD o oo o o o o oo TESTCASE oo o o …

14
OEISを自動化する
ここでは、OEISからシーケンスを作成する機能を求める多くの課題があります。これらの課題は楽しいものですが、プログラマーとして私は自動化の機会を見ています。 課題は、シーケンスのインデックス(例:A172141)と整数n(例:7)を取得し、適切なWebページから適切な値を取得するプログラムを作成することです。 I / O 前述のように、プログラムは入力としてシーケンスインデックスと値nを受け取り、そのシーケンスのn番目の項を出力する必要があります。シーケンスのBファイル内のインデックスを受け入れます。インデックスがBファイルにリストされている最大のインデックスよりも大きい場合、例外をスローしたり、選択したものを出力したりできます(これらはテストケースにはありません)。入力および出力の標準的な方法が許可されています。 Webの使用に関する制限 https://oeis.orgおよびhttp://oeis.org以外のWebサイトにはアクセスしないでください。これには、URL短縮サービス、個人のWebサイト、およびこの質問自体が含まれます。他のウェブサイトにアクセスしたいが、それを許可するのが不公平ではないと思われる場合は、コメントを残して仲裁します。 得点 これはコードゴルフチャレンジであるため、ソースコードで使用されるバイト数が最も少ないプログラムが勝ちます。標準の抜け穴は許可されていません。 テストケース マシンに適切なインターネット接続があり、OEISサーバーが稼働中であり、次の入力と出力が対応していると仮定します。 A172141, 7 -> 980 A173429, 4 -> 276 A190394, 6 -> 16 A002911, 11 -> 960 A052170, 3 -> 24 A060296, 8 -> 3 A178732, 5 -> 27 A000001, 1 -> 1 A000796, 314 -> 3 A001622, 162 …

22
四分位平均
仕事 ソートされた浮動小数点データセットを(何らかの方法で)与えられた場合、(何らかの方法で、正しい値の1‰以内で)四分位平均を返します。 1つの可能なアルゴリズム データポイントの最低および最高の四半期を破棄します。 残りのデータポイントの平均(合計をカウントで割った値)を計算します。 注:データセットのサイズが4つに均等に分割できない場合、サブセットで共有されるデータポイントを比較検討する必要があります。下記の評価例2を参照してください。 評価例1 与えられた{1、3、4、5、6、6、7、7、8、8、8、9、38} 我々は最低と最高3のデータポイントを削除するように、データ数は、12である:{ 1、3、4、 5、6、6、7、7、8、8、9、38 } 残りの6つのデータポイントの平均:(5 + 6 + 6 + 7 + 7 + 8)/ 6 = 6.5 評価例2 与えられた{1、3、5、7、9、11、13、15、17} カウントは9なので、各四半期には2¼データポイントがあります:{ 1、2、(0.25×5)、(0.75×5)、7、9、11 、(0.75×13)、(0.25×13)、 15、17 } 残りの4.5データポイントの平均:(0.75×5 + 7 + 9 + 11 + 0.75×13)/ 4.5 = 9

21
非ゼロとその近傍を保持する
Stack Overflowのこの質問から引用。@milesと@Dadaにも、いくつかのコーナーケースに対処するテスト入力を提案してくれてありがとう。 チャレンジ 整数値の配列が与えられた場合、ゼロ以外の値に挟まれていないゼロをすべて削除します。 同様に、エントリがゼロ以外の場合、またはエントリがゼロ以外の値にすぐに近い場合は、エントリを保持する必要があります。 保持されるエントリは、入力での順序を出力で維持する必要があります。 例 与えられた [2 0 4 -3 0 0 0 3 0 0 2 0 0] 削除する必要がある値には、x次のマークが付いています。 [2 0 4 -3 0 x 0 3 0 0 2 0 x] そして、出力は次のようになります [2 0 4 -3 0 0 3 0 0 2 0] ルール 入力配列が空の場合があります(そして出力も空でなければなりません)。 入力および出力形式は、通常どおり柔軟です:配列、リスト、文字列、または合理的なもの。 …

30
chmodをデコードします
チャレンジ 3桁の8進数の許可番号を指定し、付与する許可を出力します。 chmod UNIX OSでは、chmodコマンドを使用してファイル許可を変更します。chmodを使用する方法はいくつかありますが、今日注目するのは8進数のアクセス許可を使用することです。 許可番号の3桁は別の人を表しています: 最初の数字は、ユーザーの権限を表します 2桁目はグループの権限を表します 最後の数字は、他の人の許可を表します 次に、以下に示すように、各数字は許可を表します。 Key: number | permission 7 | Read Write and Execute 6 | Read and Write 5 | Read and Execute 4 | Read only 3 | Write and Execute 2 | Write only 1 | Execute only 0 | None …

21
コード内のミラー、ミラー
多くの場合、2次元プログラミング言語には、グリッド上の命令ポインターをリダイレクトするためのミラーコマンドが/あります\。 >>>>\ v v <<<</ この課題では、着信方向とミラーを指定し、発信方向を決定する必要があります。 ルール 到来方向は、文字の一つとして説明するNESWと、ミラーは、いずれかとして与えられる/、または\。これらは任意の順序で受け取ることができます。大文字を使用する必要があります。 2文字の文字列、文字間の区切り文字を使用した文字列、リスト内の文字のペア、またはシングルトン文字列のペアなど、任意の便利な形式で入力を取得できます。区切り文字付きの文字列を使用する場合、区切り文字には文字を使用できませんNWSE\/。 出力は、からの文字NESWまたは単一文字の文字列でなければなりません。 プログラムまたは関数を作成し、入力を受け取り出力を提供する当社の標準的な方法のいずれかを使用できます。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、バイト単位で測定される最短の有効な回答が勝ちます。 テストケース 処理する必要がある入力は8つしかないため、すべてのコードをテストしない理由はありません。 N / --> W N \ --> E E / --> S E \ --> N S / --> E S \ --> W W / --> N W \ --> S

29
部分文字列合計セット
前書き この配列を見てみましょう:[3, 2, 4, 1, 1, 5, 1, 2]。 各要素には、合計する必要がある部分文字列の長さが表示されます。上記の配列の最初の要素を見てみましょう。 [3, 2, 4, 1, 1, 5, 1, 2] ^ 最初のインデックスの要素は3なので、開始位置と同じインデックスを持つ長さ3の部分文字列を取得します。 [3, 2, 4] 合計すると、これは9になるため、部分文字列合計セットの最初の要素は9です。 配列内のすべての要素に対してこれを行います。 3 -> [3, 2, 4] 2 -> [2, 4] 4 -> [4, 1, 1, 5] 1 -> [1] 1 -> [1] 5 -> [5, 1, …

12
7セグメントの違い
ここにいるほとんどの人は、数字の7セグメントディスプレイが何であるかを知っていると思います。 _ _ _ _ _ _ _ _ | | | _| _| |_| |_ |_ | |_| |_| |_| | |_ _| | _| |_| | |_| _| 2 桁間の7セグメントの差(7SD)を、一方から他方に切り替えるために切り替える必要があるセグメントの数として定義できます。例えば7SD間となる5(3つの水平セグメント及び下部二つの垂直セグメントをトグルする必要がある)、及び6と8との間7SDである1。12 さらに、2つの数値間の7SDを、対応する数字間の7SDの合計と定義できます。1つの数値が他の数値よりも長い場合、それらは右揃えであると想定し、大きい数値の最上位の桁を表示するために必要なセグメントの数を追加します。例として、間7SDを考慮12345して549: x: 1 2 3 4 5 y: 5 4 9 7SD: 2+5+2+0+1 = 10 あなたの仕事は、nが与えられた場合、nとn + 1の間の7SDを計算することです。 …

29
リストを注文する
概要 整数のリストが与えられると、各整数がソートされたときに終わるインデックスを返します。 たとえば、リストがの場合、[0,8,-1,5,8]を返す必要があります[1,3,0,2,4]。2つ8のsは互いに相対的な順序を維持していることに注意してください(ソートは安定しています)。 別の言い方をすると、リスト内の各要素について、リスト内の要素の数を返します。選択した要素よりも小さいOR(選択した要素の前に要素ANDが表示される) インデックスは0(1ではなく)で開始する必要があります。編集:大きなプッシュバックがある場合、1ベースのインデックスを許可します。 テストケース: 0 -> 0 23 -> 0 2,3 -> 0,1 3,2 -> 1,0 2,2 -> 0,1 8,10,4,-1,-1,8 -> 3,5,2,0,1,4 0,1,2,3,4,5,6,7 -> 0,1,2,3,4,5,6,7 7,6,5,4,3,2,1,0 -> 7,6,5,4,3,2,1,0 4,4,0,1,1,2,0,1 -> 6,7,0,2,3,5,1,4 1,1,1,1,1,1,1,1 -> 0,1,2,3,4,5,6,7 1,1,1,1,1,1,1,0 -> 1,2,3,4,5,6,7,0

6
RFC 2550タイムスタンプを計算する
RFC 2550は、任意の日付をサポートできるタイムスタンプのスペース効率のよいASCII表現(1999年4月1日公開)の​​風刺的な提案です(宇宙の始まりより前のものと宇宙の予測された終わりより後のものも含む)。(: -万の手段すべてに0すべての範囲は、開始が含まれるが、最後を除外ノートを次のようにRFC 2550準拠のタイムスタンプを計算するためのアルゴリズムがあります):n0 <= n < 10000 年の形式 0〜10,000年:左にゼロが埋め込まれた4桁の10進数。 年10,000〜100,000:文字Aを前に付けた5桁の10進数。 年100,000〜10 30:年の10 進数。英語のアルファベットのインデックスが10進数の年の桁数から5を引いたものに等しい大文字のASCII文字を先頭に付けます(6桁の年の場合はB、7の場合はC桁の年など)。 年10 30 10 56 10 10,000と同じフォーマット:30、Aとの上に文字を開始し、さらにキャレット(接頭辞^年10ように(文字列に)30で表され^A1000000000000000000000000000000、年が10 31が表されていますによります^B10000000000000000000000000000000)。 年間10 56 10への732:今年は2つのキャレットと文字の大文字2つのASCIIで付けられます。大文字は、年の桁数から57を引いた26を底とする数値を形成します。 年10 732は、以降:10に対して同じフォーマット56 10へ732は、必要な場合、追加のキャレットと大文字を追加して延びる、使用されています。 BCE年(0年より前):年の絶対値の年文字列を計算します。次に、すべての文字を基数26の補数(A <-> Z、B <-> Yなど)に置き換え、すべての数字を基数10の補数(0 <-> 9、1 <-> 8、など)、キャレットを感嘆符(!)に置き換えます。年の文字列が4桁以下(つまり、-1〜-10,000)の場合は、スラッシュ(/)を先頭に追加します。年の文字列の前にスラッシュまたは感嘆符が付いていない場合は、アスタリスク(*)を付加します。 月、日、時間、分、秒:これらの値は最大でも2桁であるため、年の文字列の右側に、重要度の高い順に単純に追加され、必要に応じてゼロで左詰めされます2桁の文字列。 追加の精度:追加の精度(ミリ秒、マイクロ秒、ナノ秒などの形式)が必要な場合、これらの値はゼロで左詰めされ、3桁になります(各値は1/1000前の値であり、最大でであるため999)タイムスタンプの最後に、重要度の高い順に追加されます。 この形式には、対応するタイムスタンプの数値ソートと同等の字句ソートの利点があります-時刻Aが時刻Bの前に来ると、字句ソートが適用されるときにAのタイムスタンプがBのタイムスタンプの前になります。 チャレンジ 任意の長さの数値のリスト(重要度の降順の時間値に対応するなど[year, month, day, hour, minute, second, millisecond])を指定すると、対応するRFC 2550タイムスタンプを出力します。 ルール ソリューションは、任意の入力に対して機能する必要があります。唯一の制限は、時間と使用可能なメモリです。 …
26 code-golf  string  date 

6
プライムの連結
チャレンジ: 数字のみを含む文字列が与えられます。あなたの仕事は、文字列を形成するために連結しなければならない素数の最小数を出力することです。これが不可能な場合、output 0。 テストケース: 入力->出力: 252 -> 3 235 -> 2 92 -> 0 31149 -> 2

30
アルファベットから数字および数字からアルファベット
チャレンジ この課題では、数字を入力として使用し、アルファベットの対応する文字を出力する必要があります。逆も同様です。(1 <=> A、2 <=> B)など。 1 -> A 2 -> B ... 26 -> Z A -> 1 B -> 2 ... Z -> 26 ルール これはcode-golfなので、バイト単位の最短コードが優先されます。 入力のみから大文字のいずれかからなるであろうAとZ、または整数1に26含め。 末尾の空白(スペースと改行)は許可されます。

2
ランレングスエンコーディングのサイクル
1およびを使用して2、バイナリシーケンスを検討します。例: 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1 ... そのランレングスを書き留めましょう: 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1 ... _ _ ____ ____ _ _ _ ____ 1, 1, 2, 2, 1, 1, 1, 2, ... この場合、別のバイナリシーケンスを取得します。もちろん、それは保証されていません(たとえば、プロセスを繰り返した場合、3回目の実行はになります3)が、そうすると仮定しましょう。 問題は、このタイプのランレングスエンコーディングを複数回適用して元のシーケンスを返すようなシーケンスを見つけることができるかどうかです。サイクル長が1の場合(つまり、この変換の不動点)、オルデンブルガーコラコスキシーケンス(OEISエントリA0000002)が見つかります。 1, 2, 2, …

24
決められた配列の並べ替え
入力: 3つの整数を含む配列:0、1および2任意の順序(つまり[2, 0, 1]) そして、アルファベット文字(小文字と大文字の両方)と数字(つまりa1B2c3)のみを含む長さ2以上の文字列 出力: 配列に基づいて、文字列を並べ替えて出力します。 これはどのように作動しますか? アレイは、の順の優先順位を示しa-z、A-Zそして0-9、第一ビーイング0。第二の存在1; そして3番目の存在2。 文字列の個々の文字は、それに基づいて順序付けることができます。 例: アレイ: [2, 0, 1] 文字列: a1B2c3 配列に基づいて、順序の優先順位がであることがわかります0-9a-zA-Z。 それに基づいて、文字列を変換して出力できます123acB。 チャレンジルール: 配列には、0インデックス付き入力または1インデックス付き入力を使用するように選択できます。したがって、[3, 1, 2]1インデックス付き配列を使用する場合は、有効な入力でもあります。 文字列(入力と出力の両方)には有効な文字のみが含まれます:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789。 お使いの言語がアレイ(またはあなたがすることを選択した場合)をサポートしていない場合は、最初のパラメータ(すなわちのための文字列の代わりに配列を使用するのは自由です012、[0,1,2]など)。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターを持つ関数/メソッド、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 また、必要に応じて説明を追加してください。 テストケース: [2, 0, 1] & a1B2c3 -> 123acB [2, 1, 0] & aAaA909UuHWw9gh2 -> 02999AAHUWaaghuw …

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