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

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

18
リストを最後の数に減らします
入力 数値のリスト(配列)、またはそれが簡単になる場合は数値文字列。リストには常に少なくとも2つの要素があり、すべての要素は自然数(ゼロより大きい整数)であると想定できます。 アウトプット 単一の数値、または数値ストリング。 問題 アイデアは、リストのその現在の段階で最大数の最後の桁を削除することによって数のリストを減らし、最終的に1つの数で終わることです(複数のインスタンスがある場合でも、1つの数のみが返されます) 例 [123,343,121,76,465,786] -- The last digit in 786 is dropped, so it becomes 78 [123,343,121,76,465,78] -- New largest number is 465, so the 5 is dropped, making it 46 [123,343,121,76,46,78] -- Repeat until left with one number [123,34,121,76,46,78] [12,34,121,76,46,78] [12,34,12,76,46,78] [12,34,12,76,46,7] [12,34,12,7,46,7] [12,34,12,7,4,7] [12,3,12,7,4,7] …

14
多次元座標のインデックスを評価する
N次元座標のコレクションが提供されます。以下に例を示します。 {2,3,4} これは、2x、3y、4zの3次元配列と考えることができます。次元はいくつあってもかまいません。この例では、合計24のノードがあります。各ノードには、{x、y、z}を使用してインデックスを付けることができます。5番目のノードにアクセスするために提供されるインデックスは、以下の表に基づいて{0、1、0}になります。 ## | x y z 0 1 2 ----------- 0 | 0 0 0 1 | 0 0 1 2 | 0 0 2 3 | 0 0 3 4 | 0 1 0 5 | 0 1 1 6 | 0 1 2 7 | 0 …

2
1000の最も一般的な単語
この質問は、「物事の説明者」が楽しく読めるから書いてありました。 文字、数字、およびこのようなもののセットを読み取り/受け取り、すべての単語がこのセットの一部である場合に"#%|?戻る「コンピュータに物事を実行させるもの」を記述します。True / 1 すべての単語がそのセットの一部ではない場合、そのセットの一部ではなかった単語を返します。 このウェブサイトは、すべての場合において正しいと見なすことができます。ルールはそのサイトの仕様に従うように書かれています。 例: Truthy: 最初の水平線より上のテキスト全体が入力として貼り付けられている場合、コードは真の値を返す必要があります。 次の行は真の値を返します(入力はで区切られています###) This returns "Hello, World!" ### tHiS rEtUrNs TrUe... ### Thing Explainer is a book written by a man. The man writes books with simple words. ### This set of stuff "#!^{>7( must return true 偽り: 次の例では、入力と出力はで区切られてい***ます。異なるテストケースはで区切られ###ます。 This code doesn't return …
9 code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

15
マッピングをシャッフルする
マップをキーと値のペアのセットとして定義します。この課題では、各値を取得し、それらをランダムに選択されたキーに割り当てる必要があります。 値をランダムにシャッフルして、結果のマップを出力する必要があります。つまり、プログラムを実行するたびに、異なる出力が得られる可能性があります。 考えられる値の順列ごとに、出現する可能性がゼロ以外である必要があります。 元のキーと元の値はすべて、結果の配列に含まれている必要があります。繰り返される値は、結果の配列に同じ回数出現する必要があります。 たとえば、マップが次の場合: [0:10, 1:10, 5:5] 次のすべてが表示される可能性があります。 [0:10, 1:10, 5:5] (original map) [0:10, 1:5, 5:10] [0:10, 1:10, 5:5] (technically the same map, but I swapped the two tens) [0:10, 1:5, 5:10] [0:5, 1:10, 5:10] [0:5, 1:10, 5:10] 許容できる入力/出力: 言語のネイティブマップ キーと値のペアの配列を入力できます。キーを含む配列と値を含む配列の2つの配列を入力することはできません。 上記の文字列表現を使用できます 配列またはマップを入力した場合、返す代わりに元のオブジェクトを変更できます 入力タイプは出力タイプと一致する必要があります 配列を入力する場合、キーの順序を維持する必要があります。 キーは一意であると想定できますが、値が一意であるとは想定できません。 これはコードゴルフなので、できるだけ短く答えてください

5
2Dグリッドを塗りつぶします
チャレンジの説明 グリッドを 2次元の長方形配列(すべてのサブ配列が同じ長さであることを意味します)と呼びましょう。グリッドのすべての単位は、空のスペースまたは境界線です。文字のグリッドでは、空のスペースは1つの空白で表されます。他の文字はすべてボーダーとして扱われます。サンプルグリッド(+さん、|さんと-読みやすさのために追加の- 彼らは、グリッドの一部ではありません): +----+ | | | | | | | | | | +----+ an empty 4x5 grid +------+ | | | # | | # | +------+ a 6x3 grid with 2 borders +----------+ | | | | | ##### | | # # | | ## …

29
ナインパターン
前書き 先日、テレビを見ているときに、この(役に立たない)パターンに出会いました。使用する最初の数字が9だったので、「9パターン」と名付けました。その要点は、数字(xとしましょう)を入力すると、次のようになります。 バツ x +(x / 3)[これをyとしましょう] yの 3分の2 [これをzと呼ぶ] z + 1 したがって、このパターン内に9をxとして入れると、次のようになります。 9(9) 12(9 + 9/3)[9 over 3は3、9 + 3は12] 8(12の 2/3の12)[12の3分の1は4、4 * 2は8] 9(8 + 1は9) チャレンジ 数値を受け取り、パターンを使用して整数配列を出力する関数を(プログラミング言語で)書いてください。 この擬似コードのように: function ninePattern(int myInt) returns IntegerArray { int iterationA = myInt + (myInt / 3); int iterationB = iterationA …

1
隣接する数値を交換することにより、数値で満たされたスクランブルされた2次元配列を並べ替える[クローズ]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 サイズn×nの2次元配列は、番号1から始まるn * nの数値で埋められます。これらの数値は、行ごとに昇順でソートされます。行の最初の数は、前の行の最後の数より大きくなければなりません(すべて(1)の最小数は[0,0]になります)。これは15パズルに似ています。 これは、たとえば、サイズn = 3のソートされた配列です。 1 2 3 4 5 6 7 8 9 入力 入力はスクランブル配列です。n = 10までの任意のサイズにすることができます。n= 3の例: 4 2 3 1 8 5 7 9 6 出力 配列のソートに必要なスワップのリストを出力します。スワップは、以下のように定義される:二つの隣接する数字は水平方向または垂直方向、位置を入れ替えます。対角スワッピングは許可されていません。 上記の例の出力例: スワップ4と1 スワップ8と5 スワップ8と6 スワップ9と8 必要なスワップが少ないほど良いです。計算時間は実現可能でなければなりません。 次に、n = 10の別の入力例を示します。 41 88 35 34 76 44 66 …

4
確率を正確に計算する
このタスクは、確率を正確に計算するコードを記述することです。出力は、最も縮小された形式で分数として記述された正確な確率でなければなりません。つまり、出力んです4/8けど、むしろ1/2。 いくつかの正の整数についてn、1と-1の長さの一様にランダムな文字列を検討し、nそれをAと呼びます。次にA、最初の値に連結します。これはA[1] = A[n+1]、1からのインデックスAが長さを持っている場合 n+1です。ここでn、最初のn値が-1、0、または1であり、確率がそれぞれ1 / 4、1 / 2、1 / 4 である長さの2番目のランダムな文字列についても検討し、Bと呼びます。 たとえば、を検討してくださいn=3。以下のための可能な値Aとは、B可能性A = [-1,1,1,-1]とB=[0,1,-1]。この場合、2つの内積は0および2です。 今の内積考えるA[1,...,n]とBとの内積をA[2,...,n+1]してB。 コードは、両方の内積がゼロである確率を出力する必要があります。 以下のためにn=1、この確率明確です1/2。 nコードでどのように指定されているかは問題ではありませんが、変更方法は非常に単純で明白なはずです。 言語とライブラリ 任意の言語とライブラリを使用できます。コードを実行したいので、可能であればLinuxでコードを実行/コンパイルする方法の完全な説明を含めてください。

5
ほとんど辞書式リストの比較
入力 2つのリストAとB非負の整数。 出力 いずれか1、0または-1、かどうかに応じAに等しい、より大きい、またはより小さいBに対してねじれた辞書式順序付けの下に定義した通りです。必要に応じて1、0および-1を他の3つの定数値に置き換えることができます。 ツイスト辞書編集順序は、リストを要素ごとに比較し、最初の異なるインデックスでそれらの順序を決定するという点で、通常の辞書編集順序に似ています。ただし、ツイストバージョンでは、インデックスごとに非負の整数に異なる順序を使用します。すなわち、すべてのインデックスでi(インデキシングから始まる1)、第一のオーダーi(より負でない整数0にはi-1)逆転され、それらは、他のすべての数字の上に移動されます。さらに、一方のリストが他方よりも短いことを示す「欠落している要素」は、すぐ下に移動されますi-1。視覚的には、インデックスでの順序iは i < i+1 < i+2 < i+3 < ... < [missing element] < i-1 < i-2 < i-3 < ... < 2 < 1 < 0 最初のもの...は無限に多くの数を表すことに注意してください。つまり、次のリストは、ねじれた辞書式順序の昇順です。 [3,2,3,4] [3,2,3,5] [3,2,3,10] [3,2,3,1341] [3,2,3] [3,2,3,3] [3,2,3,2] [3,2,3,1] [3,2,3,0] ルール 完全なプログラムまたは関数を与えることができます。最も低いバイト数が優先され、標準の抜け穴は許可されません。 テストケース Output 1: [0] [] [] [1] …

9
負、ゼロ、正の整数の配列を1回の反復で順序付け
負の数、正の数、ゼロを含む整数の配列を取ります。1回の繰り返しでグループ化し、すべての負の数値が最初に来て、その後にすべてのゼロが続き、その後にすべての正の数が続くようにします。 例: Input: 5, 3, 0, -6, 2, 0, 5 Output: -6, 0, 0, 3, 2, 5, 5 数値は完全に並べ替える必要はないことに注意してください。符号で並べ替えるだけです。 したがって、最終的な配列は次のようになります。 -, -, ..., -, -, 0, 0, ..., 0, 0, +, +, ..., +, + ルール 入力配列と一定量の追加メモリのみを使用できます(つまり、これ以上配列を作成できません) 使用できるループは1つだけで、配列の長さと同じ回数だけ実行できます。あらゆる種類のループを隠す組み込み関数を使用することはできません。これには、組み込みのソート関数が含まれます。 結果は、私が説明した形式である必要があります 勝者は、最初の配列を正しい形式(上記のように)に変更する最短のコード(バイト単位)を送信する人です。

2
ペグソリティアを遊ぼう
ペグソリティアは、通常一人でプレイされる人気のゲームです。ゲームはいくつかのペグとグリッドに分割されたボードで構成されます。通常、ボードは長方形ではありませんが、この課題ではこれを想定します。 有効な各移動により、1つのペグを削除することができ、目標は、1つのペグが残るような方法でプレイすることです。現在、有効な移動は単一の方向(北、東、南、または東)で、削除可能な1つのペグを飛び越える必要があります。 例 させる.ペグあり、以下の移動が移動します空のボード上のスペースや数字も1右と削除するには1を2ボードから: ..... ..... .12.. -> ...1. ..... ..... この動きは、常に単一のペグを飛び越えるする必要がありますので、次のようになりません有効。 ...... ...... .123.. -> ....1. ...... ...... それぞれが1移動した後の有効な構成をいくつか次に示します。 ...1... ...1... ..71... ..71... .2.34.5 ---> .24...5 ---> .2....5 ---> ......5 .678... (4W) .678... (7N) .6.8... (2S) ...8... ....... ....... ....... .2..... チャレンジ 初期のボード構成とその他の構成を前提として、上記のようにペグを連続的に移動することで他の構成に到達できるかどうかを出力します。 ルール 入力は、n × mん×メートルn \times mマトリックス/リストのリスト/ …

1
暴君ソートの実装[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 2年前休業。 TL; DR 連続する要素の各ペアの記録(左から右)/長さ。それらが0または負の場合は、記録しないでください。 これが完了したら、これらのアクションを実行します。商を更新しない: (0、.3)の右インクリメントと左デクリメント > =。3の配列から削除 > .5の両方の要素を印刷する 残りの配列を出力します。実行された残りのセパレーターを用意します。 さて、挑戦へ… これは、GLORIOUS LINEAR TIMEが最悪の場合のソートアルゴリズムであり、そのINFINITE WISDOMに敢えて反対する人は、彼らのHEINOUS CRIME OF HIGH TREASONに対して即座に実行されます。 FEARLESSリーダーはであなたを任務としている立派MISSION整数の配列を取り込み、以下のソートアルゴリズムを使用して、それをソートするプログラムや関数を書きます: で各要素を啓発あなたの配列を反復処理、GLORIOUS彼らの存在FEARLESSリーダー。 あなたの持っている秘密警察の彼らはであることを確認するために、2つの連続する要素のすべてのペアのチェックをTHEIR NATIONを適切にLOYAL。正しく並べられていない場合は、配列の長さで割った数値の差を記録します。これは彼らの反対の商です。 GLORIOUS TOURの最後に、リストを確認し、次のようにすべての反逆者に対してRAIN FEARLESS LEADER'S DIVINE PUNISHMENTを実行します。 .3未満の反対の商の場合、彼らは単に無限大の恐怖の指導者の思い出を洗脳する必要があります。左の要素を減らし、右の要素を増やします。異議のある商を変更しないでください。 反対の商である.3-.5(両端を含む)の場合、それらはTRAITORSであり、PRISON CAMPSに送信する必要があります。それらをアレイから削除します。 .5より大きい反対の商の場合、それらはODIOUS REBEL SCUMです。彼らは、彼らが同盟していたかもしれない他のいかなる反逆の強欲の例として、公に実行されるべきです。それらを配列から削除し、全国のニュースソースであるThe STDOUT Timesに送信します。 これで、配列が完全かつ完全にソートされました。STDOUT Timesに送信して、GLOIOUS VICTORYを歌ってもらいます。 MANDATORY VIEWINGすぎている人にFOOLISH理解しINFINITE GLORYこのアルゴリズムのを、次の配列をソートするために使用されます。 [1,8,6,0,4,9,3,5,7,2] 1と8は正しく注文されています。 8と6は正しい順序ではないため、両方に.2の反対の商が記録されます。 6と0は反対者の別のペアです。この反対の商は.6です。 …

15
スコアリング6,5,4(別名船、船長、および乗組員)
Arnauldによるこのサイコロの挑戦からインスピレーションを得て略奪 入力 バイナリ3x3サブマトリックスで構成される5x1または1x5(選択)のダイスマトリックスが与えられます。 ゴール 有効なサイコロマトリックスが与えられたら、次のような6,5,4のルールを使用してスコアを付けます。 ロールに6,5,4が含まれている場合は、他の2つのサイコロを一緒に追加します。例:4、X、5,6、Y = X + Y それ以外の場合、スコアは0です。例:5、5、5、4、1 = 0 ゲームのWiki記事 サイコロパターン 1 :⎛⎝⎜0、 0、 00、1、 00、 0、 0⎞⎠⎟3 :⎛⎝⎜1 、0、00、1、 00、 0、1⎞⎠⎟または⎛⎝⎜0、 0、10、1、 01 、0、0⎞⎠⎟5 :⎛⎝⎜1 、0、10、1、 01 、0、1⎞⎠⎟2 :⎛⎝⎜1 、0、00、 0、 00、 0、1⎞⎠⎟または⎛⎝⎜0、 0、10、 0、 01 、0、0⎞⎠⎟4 :⎛⎝⎜1 、0、10、 0、 01 、0、1⎞⎠⎟6 :⎛⎝⎜1 、0、11 、0、11 …

25
指定されたキーに基づいて一意の要素を検索します
入力 それぞれがキーy iとペアになっている値x iのリストを取ります。 [(x1, y1), (x2, y2), ...] 出力 セット{ x i } からの値のみを含むリストLを返します。 Lの長さは、セット{ y i } 内の一意のキーkの数と等しくなければなりません。 各一意のキーに対してK {から値が存在しなければならないX Iキー有し} kは。 細部 標準の抜け穴は許可されていません。 入力のすべての値が非負の整数であると想定できます。 値とキーが重複している可能性があります。 入力には少なくとも1つの値/キーのペアがあると想定できます。 等しい長さの2つのリストを入力として取得する場合(1つは値、もう1つはキー)、それで問題ありません。 他の入力は受け付けません。 出力するリストの順序は関係ありません。 X 私はあなたが各キーのために選択した問題ではありません。 たとえば、入力[[0, 0], [1, 3], [2, 3]]を使用すると、これらのいずれ[0, 1]か[0, 2]または任意の順列を返すことができます。 例 [[1, 2], [3, 2], [3, 0]] -> …

9
セットを空にせずにばらばらにする
整数のセットがあるとします。セットの一部が重複する(つまり、要素を共有する)可能性があります。セットから要素を削除することで重複を取り除くことができますが、それらの一部は空になる可能性があります。それは残念だろう。それらを空にすることなく、すべてのセットをばらばらにすることはできますか? この状況では、セットに複数の要素を残す理由がないため、この問題は、各セットを1つの要素に減らすことで常に解決できます。これが、私たちがここで解決している問題のバージョンです。 タスク 次のようにプログラムまたは関数を記述します。 入力:整数のセットのリスト。 出力:入力と同じ長さの整数のリスト。 出力のすべての整数は区別されます。そして 出力の各整数は、対応する入力のセットの要素です。 明確化 要素の順序に関係なく、必要に応じて(または言語に適したものであれば)セットをリストとして表すことができます。 ソリューションが存在しない場合(つまり、常に少なくとも1つのソリューションが存在する場合)を処理する必要はありません。 複数の解決策がある場合があります。アルゴリズムは常に有効なソリューションを生成する必要がありますが、非決定的であることが許可されています(つまり、実行するたびに異なる有効なソリューションを選択することは問題ありません)。 入力に現れる個別の整数の数nは、入力のセットの数に等しく、簡単にするために、1からnまでの整数になります(実際の値は関係ないため)。この事実を利用するかどうかはあなた次第です。 テストケース [{1,2},{1,3},{1,4},{3,4}] -> [2,3,1,4] or [2,1,4,3] [{1,3},{1,2,4},{2,3},{3},{2,3,4,5}] -> [1,4,2,3,5] [{1,3,4},{2,3,5},{1,2},{4,5},{4,5}] -> [1,3,2,4,5] or [3,2,1,4,5] or [1,3,2,5,4] or [3,2,1,5,4] 勝利条件 プログラムは勝つために最適な時間の複雑さを必要とします。つまり、より時間の複雑さのあるアルゴリズムが見つかった場合、それはすべての遅いエントリを失格にします。(言語のビルトインは可能な限り高速であると想定できます。たとえば、ソートビルトインは時間O(n log n)で実行すると想定できます。同様に、nに匹敵するサイズのすべての整数を加算、乗算できると想定します。一定の時間で。) 最適な時間の複雑さはほとんどの言語でかなり簡単に取得できる可能性が高いため、勝者の時間の複雑さは、バイト数で測定すると、勝者が最も短いプログラムになります。

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