タグ付けされた質問 「array-manipulation」

配列の使用と操作を通じて特定の問題を解決するための競争。

11
サブセット合計のNビットバリエーション
私が書いている別の課題については、テストケースが有界整数で解けることを検証する必要があります。具体的には、空ではない整数の配列Aと整数のビット幅について、以下を検証する必要がありますn。 すべての整数aがA満たされます-2**(n-1) <= a < 2**(n-1)(n-bit 2の補数整数で表現可能)。 の長さAは未満です2**n。 の合計はをA満たし-2**(n-1) <= sum(A) < 2**(n-1)ます。 要素のすべての組み合わせはA、上記のすべての条件を満たす。 当然、この問題を外部に委託することにしました! 整数の配列Aと正の整数ビット幅nを指定するとA、上記の条件を満たすことを確認します。 テストケース [0, 0, 0], 2: True [0, 0, 0, 0], 2: False (violates #2) [1, 2, 3, 4, 5], 8: True [1, 2, 3, 4, 5], 2: False (violates all conditions) [1, 2, 3, …

14
Modバランスリスト
前書き L = [-1,2,2,1,2,7,1,4]などの整数のリストがあるとします。私は人生でバランスを取るのが好きなので、偶数要素と同じくらい多くの奇妙な要素を持っているのを見てうれしいです。さらに、すべての3のモジュロクラスに等しい数の要素があり、次の要素があります。 [-1,2,2,1,2,7,1,4] 0 mod 3: 1 mod 3: 1 7 1 4 2 mod 3: -1 2 2 2 悲しいことに、4のモジュロクラスの場合、これはもはや成り立ちません。一般に、空でないリストは、この数が0ではないNのすべてのモジュロクラスに等しい数の要素がある場合、モジュロNでバランスが取れていると言います。上記のリスト Lがバランスモジュロ2及び3であるが、不平衡モジュロ4。 タスク 入力は、適切な形式で取得された整数の空でないリストLです。あなたの出力は、これらの整数のリストであるN≥2なるようにLがモジュロバランスさN、再び任意の合理的な形式で、。出力の順序は重要ではありませんが、重複を含めることはできません。 出力には有限数の数値しか存在しないことが保証されています。つまり、Lのすべての要素が同じ回数出現するわけではないことを正確に意味しています。無効な入力の例は[3]、[1,2]および[0,4,4,0,3,3]です。出力の最大数は最大でmax(L)-min(L)であることに注意してください。 各言語の最小バイト数が優先され、標準のコードゴルフ規則が適用されます。 テストケース [1,1,2] -> [] [1,1,5] -> [2,4] [1,1,24] -> [23] [1,2,3,2] -> [2] [12,12,-4,20] -> [2,3,4,6,8,12,24] [1,1,12,12,-3,7] -> [3,10] [-1,2,2,1,2,7,1,4] -> [2,3] …

14
[N]とM反復の再帰的に連結された累積和
2つの正の整数NをM取得し[N]、M反復での連結累積和を作成します。最後の反復の結果を出力します。 連結累積合計の定義: 数字Nから始めてシーケンスを定義するX = [N] 追加Xの累積和X 手順を2 M回繰り返します。 ベクトルの累積合計X = [x1, x2, x3, x4]は次のとおり[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]です。 例N = 1とM = 4: P =累積和関数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

8
最短の一意のサブリストを見つける
リストのリストが与えられた場合、正確に1つのリストの連続したサブリストである最短リストを見つけます。 例えば [[1,2,3], [1,2,3,4], [2,4,5,6], [1,2,4,5,6]] 最短の連続サブリストは[3,4]、2番目のリストにのみ表示されるためです。 一意の連続したサブリストがない場合(これには少なくとも1つの重複エントリが必要です)、空のリストを出力します。ここに例があります [[1,2,3], [1,2,3], [1,2]] 最小サイズの連続したサブリストが複数ある場合、それらのいずれかまたはすべてを含むリストを出力できます。たとえば、入力が [[1,2,3],[2],[1],[3]] あなたは、出力のいずれかの可能性[1,2]、[2,3]または[[1,2],[2,3]]。後者のオプションを選択した場合、ソリューションが1つしかない場合にシングルトンリストを出力できます。 出力は、他のリストに表示されない限り、同じリストで複数回発生する場合があります。例えば [[1,2,1,2],[2,1]] は、2つの異なる方法で最初のリストのサブリストであるにもかかわらず、最初のリストのサブリストであり、2番目のリストではない[1,2]ため[1,2]、出力する必要があります。 入力には、そのタイプが100を超える値、つまりブール値を持たない限り、任意のタイプを含むリストのリストを使用できます。 これはコードゴルフなので、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いでしょう。 テストケース [[1,1]] : [1] [[1],[1]] : [] [[1,1],[1]] : [1,1]

11
大文字と小文字の一致検索
3つの入力、テキストの文字列T、置換する文字列、F; そして、それらを置き換える文字列R。Tと同じ(大文字と小文字を区別しない)文字を持つの各部分文字列について、の文字でF置き換えますR。ただし、元のテキストと同じ大文字小文字を使用してください。 より多くの文字が含まれているR場合F、余分な文字は大文字と小文字を区別する必要がありRます。に数字または記号がFある場合、対応する文字はRの大文字小文字を保持する必要がありRます。Fに表示されるとは限りませんT。 すべてのテキストが印刷可能なASCII範囲にあると想定できます。 例 "Text input", "text", "test" -> "Test input" "tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT" "The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY …
14 code-golf  string  code-golf  string  ascii-art  alphabet  code-golf  number  sequence  counting  code-golf  sequence  counting  code-golf  quine  source-layout  code-golf  string  code-golf  decision-problem  game  code-golf  string  quine  source-layout  subsequence  code-golf  quine  code-golf  array-manipulation  integer  code-golf  ascii-art  code-golf  sequence  integer  code-golf  kolmogorov-complexity  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  integer  code-golf  string  number  integer  code-golf  string  ascii-art  code-challenge  test-battery  expression-building  source-layout  printable-ascii  code-bowling  code-golf  number  code-golf  number  string  binary  code-golf  matrix  conversion  code-golf  number  arithmetic 

23
行列ベクトルを計算する
少なくとも2つの要素の整数配列を指定して、配列のMatrix-Vector(以下で定義)を出力します。 Matrix-Vectorを計算するには、最初nにsize - input配列を回転させて、サイズの行列を作成しますn x n。配列の最初の要素は主対角線に続きます。これにより、マトリックス部分が形成されます。ベクトルの場合、入力配列を垂直に反転します。次に、通常の行列乗算を実行します。出力ベクトルは結果です。 例えば、 a = [1, 2, 3] まず、配列を右に2回回転して、とを取得[3, 1, 2]し[2, 3, 1]、次にそれらをスタックして3x3行列を形成します [[1, 2, 3] [3, 1, 2] [2, 3, 1]] 次に、配列を垂直に反転させてベクトルを形成します [[1, 2, 3] [[1] [3, 1, 2] x [2] [2, 3, 1]] [3]] 通常の行列乗算を実行する [[1, 2, 3] [[1] [[1+4+9] [[14] [3, 1, 2] …

30
ソート後に配列のインデックスを取得します
今日の課題は、リストlを取得し、ソートさlれた各連続要素がl現れる位置を与えるプログラムまたは関数を作成することです。 つまり、最小値のインデックスを出力し、次に2番目に小さい値のインデックスを出力します。 入力配列には正の整数のみが含まれ、少なくとも1つの要素が含まれると想定できます。 テストケース: Input | Output (1-indexed) [7, 4, 5] | [2, 3, 1] [1, 2, 3] | [1, 2, 3] [2, 6, 1, 9, 1, 2, 3] | [3, 5, 1, 6, 7, 2, 4] [4] | [1] 同じ値を持つ2つ以上の要素が表示される場合、それらのインデックスは最小から最大の順に並んで表示されます。 これはcode-golfで、最少バイトが勝ちます!

12
インデックスのリストの反転リスト
この StackOverflowの投稿に触発されました。 前書き ボブの仕事は、スプレッドシートを作成して整理することです。彼がそれらを整理する方法は、ボブを除いてほとんど知られていないが、同じグループに属する各スプレッドシートのリストを作成する。彼が作成したスプレッドシートには大量のデータがありますが、現在確認しているデータは1つだけです。このジョブを開始してからスプレッドシートを作成した日までの日数です。初日、彼は2つのスプレッドシートを作成し、両方のメモを書き、0適切な場所に分類しました。 現在、彼の上司は毎日どのような種類のスプレッドシートが発生したかをレビューするよう求めています。ボブにとってそれを把握するコードを書くのはあなたの仕事です。彼はスプレッドシートが多すぎて手作業ではできません。 入力 彼があなたに提供するボブの情報は、各データがの形式である(0または1のインデックス付き)ギザギザの配列の形式で提供されx = a[i][j]ます。 aは、私がジャグ配列自体と呼んでいるものでiあり、スプレッドシートのタイプでありx、配列が作成された日付です。 j重要ではありません。 タスク タイプごとに整理されたスプレッドシート作成日のぎざぎざの配列がある場合、スプレッドシート作成日ごとに整理されたスプレッドシートの種類のぎざぎざの配列を返します。 例 ボブは、この抽象的なデータをただ残すだけではありません。彼は、スプレッドシートの一部のサブセットを提供してくれて、すべてがどうあるべきかを理解するのを助けてくれます。 入力例(0から始まる): a = [ [3,2,5,0], # Bob doesn't necessarily sort his lists [1,3], [2,1,0,4], [4,5,3], [6,6] ] 出力例(コメントはもちろん必須ではありません): output = [ [0,2] # On day 0, Bob made one type 0 and one type 2 …

13
それは最大ヒープですか?
ヒープも優先キューとして知られているが、抽象データ型です。概念的には、すべてのノードの子がノード自体以下であるバイナリツリーです。(最大ヒープと仮定します。)要素がプッシュまたはポップされると、ヒープはそれ自体を再配置し、最大の要素が次にポップされるようにします。ツリーまたは配列として簡単に実装できます。 受け入れを選択した場合の課題は、アレイが有効なヒープかどうかを判断することです。すべての要素の子が要素自体以下の場合、配列はヒープ形式になります。例として次の配列を取り上げます。 [90, 15, 10, 7, 12, 2] 本当に、これは配列の形に配置された二分木です。これは、すべての要素に子があるためです。90には、15と10の2つの子があります。 15, 10, [(90), 7, 12, 2] 15には子もあり、7と12: 7, 12, [90, (15), 10, 2] 10には子供がいます: 2 [90, 15, (10), 7, 12, ] 次の要素も10の子になりますが、スペースがないことを除きます。配列が十分に長ければ、7、12、および2にもすべて子があります。ヒープの別の例を次に示します。 [16, 14, 10, 8, 7, 9, 3, 2, 4, 1] そして、これは前の配列が作るツリーの視覚化です: これが十分に明確でない場合に備えて、i番目の要素の子を取得するための明示的な式を次に示します //0-indexing: child1 = (i * 2) + …

16
配列内の最小グループ
前書き 次の配列を見てみましょう。 [1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1] グループは、互いに隣接して同じ桁で構成されています。上記の配列には、5つの異なるグループがあります。 [1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1] 1, 1, 1 2, 2 1, 1, 1, 1 2, 2, 2 1, 1, 1 これらの最小グループはです[2, 2]ので、出力します[2, …

10
何歩歩きましたか?
単純な歩数計は、反対のX = 0における側面オンおよびX = 1つの上の2つのスイッチと振り子によってモデル化することができるL。振り子がファースイッチに接触すると、歩行器は半分のステップを踏んだと見なすことができます。近くのスイッチに接触すると、手順は完了です。 振り子の位置を表す整数のリストが与えられたら、歩数計に記録された完全な歩数を決定します。 入力 整数l > 0、トラックの長さ。 各時間における歩数計の振り子の位置を表す整数のリスト。 出力 測定されたフルステップの数。振り子が遠くのスイッチ(x> = l)に接触し、次に近くのスイッチ(x <= 0)に接触するとステップが取られます。 テストケース 8, [8, 3, 0, 1, 0, 2, 2, 9, 4, 7] 1 振り子は、t = 0でx = 8ですぐにファースイッチと接触します。次に、t = 2とt = 4で近くのスイッチに触れて、1つのステップを完了します。その後、x = 9でt = 8に再びファースイッチに触れますが、ニアスイッチには再び触れません。 1, [1, 5, -1, -4, -1, 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 …

3
リストの結合解除
前書き ほとんどの人は、数値のリストをソートするためのマージソートアルゴリズムに精通しています。アルゴリズムの一部として、merge2つのソート済みリストを1つのソート済みリストに結合するというヘルパー関数を作成します。Pythonのような擬似コードでは、関数は通常次のようになります。 function merge(A, B): C = [] while A is not empty or B is not empty: if A is empty: C.append(B.pop()) else if B is empty or A[0] ≤ B[0]: C.append(A.pop()) else: C.append(B.pop()) return C アイデアは、最初の要素の小さい飛び出る維持することであるAとのB両方のリストが空である、とに結果を収集するまでC。場合AとBの両方にソートされ、その後、そうですC。 逆に、if Cがソートされたリストであり、それを任意の2つのサブシーケンスに分割した場合、AおよびB、AおよびBもソートされますおよびmerge(A, B) == C。興味深いことに、Cソートされていない場合、これは必ずしも当てはまらないため、この課題が発生します。 入力 あなたの入力はリストとして与えられたいくつかの最初の2*n非負整数の順列です。[0, 1, 2, ..., 2*n-1]n > …

17
ローカル変数なしでデッキをシャッフルする[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックコードゴルフスタックExchange用。 2年前に閉店。 このパズルの目的は、52枚のカードのデッキを取り、各カードがランダムな位置になるようにシャッフルすることです。 与えられた: deckカードを表す52個の異なる整数の配列。開始時にdeckは、不明な順序で各カードが1枚ずつ含まれています。 int rand(min, max)int minとの間のランダムな整数を返す関数max。この関数は本当にランダムであると仮定できます。 void swap(x, y)デッキ内の2枚のカードを交換する機能。を呼び出すswap(x, y)と、カードの位置xと位置yが切り替わります。 いつ: プログラム呼び出しshuffle()(shuffle(deck)またはdeck.shuffle()または実装が実行したい場合)。 次に: deck 完全にランダムな順序で各カードを正確に1つ含める必要があります。 キャッチ: 変数を宣言することはできません。swapとrandを好きなだけ呼び出しますが、独自の変数を宣言することはできません。これもforループカウンターがますforeach。 明確化: 選択した言語に合わせてマイナーな詳細を変更できます。たとえば、次のように書くことができますswap参照によって2つの整数を切り替えるます。変更は、パズルを簡単にするためではなく、あなたの言語でこの作業を行うべきです。 deck グローバル変数にすることも、パラメーターとして受け取ることもできます。 あなたは何でもやりたいことができます deck、その長さは変更できません。 カードには、0〜51、1〜52などの番号を付けることができます。 これは任意の言語で記述できますが、言語の組み込みshuffle関数をごまかすことはできません。 はい、同じ行を52回書くことができます。誰も感動しません。 実行時間は重要ではありませんが、真のランダム性は重要です。 これは実際にはゴルフのコードではありませんが、コードを最小化/難読化してください。 編集:定型コードとビジュアライザー .NETまたはJavaScriptを使用している場合、次のテストコードが役立ちます。 JavaScript: CoffeeScriptソースを使用した手軽なJavaScriptビジュアライザー:https : //gist.github.com/JustinMorgan/3989752bdfd579291cca 実行可能バージョン(shuffle()関数に貼り付けるだけ):http : //jsfiddle.net/4zxjmy42/ C#: C#コードビハインドを備えたASP.NETビジュアライザー:https ://gist.github.com/JustinMorgan/4b630446a43f28eb5559 swapおよびrandユーティリティメソッドのみを使用したスタブ:https : //gist.github.com/JustinMorgan/3bb4e6b058d70cc07d41 このコードは、デッキを数千回並べ替えてシャッフルし、いくつかの基本的な健全性テストを実行します。各シャッフルについて、繰り返しのないデッキに正確に52枚のカードがあることを確認します。次に、ビジュアライザーがデッキの各場所で終わる各カードの頻度をプロットし、グレースケールのヒートマップを表示します。 ビジュアライザーの出力は、明らかなパターンのない雪のように見えるはずです。明らかに、真のランダム性を証明することはできませんが、スポットチェックを行うための迅速かつ簡単な方法です。シャッフリングアルゴリズムの特定のミスが出力に非常に認識可能なパターンをもたらすため、このようなものを使用することを推奨します。次に、2つの実装からの出力の例を示します。1つには一般的な欠陥があります。 …

4
議席の分配
前書き 総選挙では、議席ごとに定価を計算したいと思います。これは、N >= 0配布されるシートとnsパーティーごとの投票リストについて、次のdような数を見つけたいことを意味します。 sum(floor(n/d) for n in ns) == N 物事を面白くするために(さらに現実の世界に近づけるために)、さらに2つの事実を追加します。 2つの政党が「連合」に集まって、その中のすべての政党の票の合計によって議席が「連合」に与えられます。次に、「連合」が獲得した座席は、同様の方法でパーティ間で分割されます(除数を見つけるなど)。 一定の割合の票(3.25%など)を渡さなかった党は自動的に0議席を獲得し、その票は「連合」にカウントされません。 チャレンジ あなたが与えられます: リストのリスト。ネストされた各リストには整数(投票数)が含まれ、単一のパーティの場合は長さ1、「連合」の場合は長さ2です。 議席を獲得するための票の最小割合(別名「弾幕」の「バー」)、分数(したがって、3.225%は0.0325として与えられます) すべての関係者間で分配される座席の総数(整数) あなたは同じ入れ子になったリスト構造を印刷し、投票数を議会の議席に置き換えます。 勝者は、バイト数が最も少ないコードです。 コーナーケース: 複数の可能な除数が存在する可能性があります(通常は存在します)。出力に含まれていないため、実際には問題ではありません。 想像N=10とns = [[1]]除数が0.1であってもよいので、(ない整数) いくつかの例は、例えば、解くことができませんns=[[30],[30],[100]]、bar=0、N=20。d=7.5フロア化された値の合計が19から21にジャンプする境界があります。これらのケースを解決することは期待されていません。(このケースを指摘してくれたコミュニティメンバーArnauldに感謝します) 入力と出力の例 非常に最適化されていないPython3の例: from math import floor def main(_l, bar, N): # sum all votes to calculate bar in votes votes = sum(sum(_) for …

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