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

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

6
タイムトラベリングストックトレーダー
ストーリー かなり前に、ボビーは1サトシ(1e-8 BTC、最小通貨単位)でビットコインウォレットを作成し、それを忘れていました。他の多くの人と同じように、彼は後に「くそー、もし私がもっともっと投資すれば...」。 空想にとどまらず、彼は時間とお金のすべてをタイムマシンの構築に捧げます。彼は自分の時間の大部分をガレージで過ごし、世間の出来事や彼についての噂を知らない。彼は、支払いを逃し、電気が切れようとする1日前にプロトタイプを完成させました。ワークベンチから見上げると、彼は警察のバンが彼の家に引っ張っているのを見ます。 テストを実行する時間がないため、彼は過去数年間の為替レートのデータをUSBスティックで取得し、Flux CapacitorをQuantum Discombobulatorに接続して、自分がウォレットを作成した日に戻されていることに気付きました。 タスク 為替レートデータが与えられたら、ボビーが稼ぐことができる金額を調べます。彼は非常に単純なルールに従います:「低価格で購入-高価格で販売」そして彼は無限に小さな資本でスタートするので、彼の行動は将来の為替レートに影響を与えないと仮定します。 入力 プログラムにコマンドライン引数として渡される、テキストファイルまたはSTDINから読み取られる、またはパラメーターとして渡される、単一の文字(改行、タブ、スペース、セミコロン、任意の文字)で区切られた文字列としての0以上のfloatのリスト関数に。文字列の代わりに数値データ型または数値配列を使用できます。これは、基本的に角括弧付きの文字列だからです。 アウトプット ボビーズの資本に取引の終了を掛けた係数。 例 Input: 0.48 0.4 0.24 0.39 0.74 1.31 1.71 2.1 2.24 2.07 2.41 為替レート:0.48 $ / BTC、下落しそうなため、すべてのビットコインを4.8ナノドルで販売します。係数= 1為替レート:0.4、何もしない 為替レート:0.24 $ / BTCおよび上昇:すべての$を2 Satoshisに変換します。係数= 1(ドルの値はまだ変更されていません) 為替レート:0.39-2.1 $ / BTC:何もしない 為替レート:2.24 $ / BTC:下落する前にすべてを売ります。44.8ナノドル、ファクター= 9.33 為替レート:2.07 $ / BTC:2.164 …

2
ブックスタックソート
本を積み重ねるときは、通常、一番大きいものを一番下に、一番小さいものを一番上に置きます。しかし、潜在的なOCDのおかげで、2冊の本があり、一方の本の高さは短く、他方の本よりも幅が広い場合、非常に不安になります。どの順序で配置しても、一番上の本は一番下の本を超えて一面に広がります。 例として、ある本には次元が(10,15)あり、別の本には次元があるとしましょう(11,14)。どのように配置しても、オーバーハングが発生します。ただし、寸法が(4,3)、の書籍がある場合は(5,6)、前者の下に後者を配置することで張り出しを回避できます。 この挑戦の目的のために、私たちはすぐ下の本に関してオーバーハングを考えるでしょう。例えば、私は、スタックを持っている場合は(5,5)、(3,3)、(4,4)(まともな人はそれを行うだろうということではない)、オーバーハングなどのトップ帳の数は、それが下の本を超えて拡張しませんが。同様に、スタックは(3,3)、(3,3)、(4,4)また、下の1を越えて延びるトップ帳にもかかわらず、唯一のオーバーハングを有します。 チャレンジ ブックの寸法の整数ペアのリストが与えられたら、オーバーハングの数が最小になるようにそれらのペア/ブックをソートします。本を回転させてはいけません-すべてのスパインを同じ方向に向けてください。オーバーハングの数が同じソリューションが複数ある場合は、そのような順序を選択できます。ソートアルゴリズムは安定している必要はありません。実装では、ブックの寸法がそれぞれ2 16未満であると想定する場合があります。 時間の複雑さ:これをもう少し面白くするには、アルゴリズムの漸近的な最悪の複雑さをスタックのサイズの多項式にする必要があります。そのため、可能なすべての順列をテストすることはできません。アルゴリズムの最適性と複雑さの簡単な証明と、オプションで大きなランダム入力のスケーリングを示すプロットを含めてください。もちろん、O(1)でコードを実行する引数として入力の最大サイズを使用することはできません。 プログラムまたは関数を作成し、STDIN、ARGV、または関数引数を介して任意の便利な(前処理されていない)リスト形式で入力し、結果を出力または返すことができます。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 多項式解が存在すると確信していますが、間違いを証明できる場合は、ゴルフの提出の代わりにそのような証明を提出できます。この場合、P≠NPと仮定できます。私は最初の正しいそのような証明を受け入れ、それに賞金を授与します。 例 In: [[1, 1], [10, 10], [4, 5], [7, 5], [7, 7], [10, 10], [9, 8], [7, 5], [7, 5], [3, 1]] Out: [[10, 10], [10, 10], [9, 8], [7, 7], [7, 5], [7, 5], [7, 5], [4, 5], [3, …

10
0-1最大位相カウンター
たとえば、ビットの配列を考えます 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0 ビットの少なくとも85%が同じであり、最初のビットと最後のビットの両方がマジョリティビットに等しい場合、長さが5以上の連続するサブアレイをフェーズと呼びます。さらに、他のフェーズの厳密なサブアレイでない場合、フェーズを最大と呼びます。 上記の例の最大フェーズは次のとおりです。 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0 ------------- ------------- ------------- ご覧のとおり、3最大のフェーズがあります。一方、これ 1 1 1 …

30
配列の繰り返しをカウントする
配列を受け取り、複数回発生する整数の数を返す必要があります。 [234, 2, 12, 234, 5, 10, 1000, 2, 99, 234] 234と2が複数回出現するため、これは2を返します。 [234, 2, 12, 234] [2, 12, 234, 5, 10, 1000, 2] リストの長さが100kを超えることはありません。また、リスト内の整数は常に-100k〜100kの範囲になります。 整数が複数回出現する場合、整数をカウントする必要があります。したがって、整数が3回出現した場合でも、1つの繰り返し整数としてカウントされます。 テストケース [1, 10, 16, 4, 8, 10, 9, 19, 2, 15, 18, 19, 10, 9, 17, 15, 19, 5, 13, 20] = 4 [11, 8, …

11
N行N列のボード上の騎士のグラフ
チェスでは、ナイトは、withでマークされた現在の位置に対してXでマークされた位置にのみ移動できます。 A ナイトのグラフは、チェス盤の騎士チェスの駒のすべての法的動きを表したグラフです。このグラフの各頂点はチェス盤の正方形を表し、各エッジは騎士が互いに離れている2つの正方形を接続します。 標準の8行8列のボードでは、グラフは次のようになります。 チャレンジ: 整数所与N、ここで3≤N≤8 、出力NバイNの各位置からの可能な移動の数が示されている基板を表す行列、。以下のためにN = 8、出力は、上記グラフの各頂点の値を示す行列であろう。 出力形式は柔軟です。リストのリストまたはフラット化されたリストなども受け入れられる形式です。 テストケースの完全なセット: --- N = 3 --- 2 2 2 2 0 2 2 2 2 --- N = 4 --- 2 3 3 2 3 4 4 3 3 4 4 3 2 3 3 2 --- N = 5 …

15
関数クリップボード:貼り付け
この課題は、2018年5月の「Language of the Month」イベントの一部として、MATL言語の機能の一部に関連しています。 関連する課題: 関数クリップボード:コピー。 前書き MATLの関数クリップボードは、通常の入力取得関数への最新の4つの呼び出しへの入力を保存(「コピー」)します。通常の関数は、MATLで最も一般的なタイプの関数です。入力取得とは、関数が少なくとも1つの入力を取得することを意味します。保存されたクリップボードの内容は、スタックにプッシュできます(「貼り付け」)。 このチャレンジは、クリップボードの内容を入力として受け取ります。そのクリップボード状態を生成したすべての関数は、入力として1つ以上の正の整数をとったと想定されます。したがって、クリップボードの状態は、数字のリストのリストで表すことができます。(クリップボードへの実際の入力方法の詳細については、関連するチャレンジを参照してください。ただし、現在のチャレンジには必要ありません)。 クリップボードの内容を解釈する 例1 最初の内側のリストにはを参照し、最新したがって、クリップボードの状態なので、上の関数呼び出し、および [[11, 28], [12, 16], [4], [5, 6]] は、最後の関数呼び出しが2つの入力を受け取ったこと11を28示します。最後から2番目の呼び出しは、入力を取りました12、16。など(このクリップボードの状態は、関連するチャレンジの最初の例のコードによって生成されます)。 例2 十分な関数呼び出しがなかった場合、クリップボードの末尾の内部リストは空になります。 [[7, 5], [], [], []] (これは、単に7およびを追加するプログラムによって作成されます5)。 例3 関数呼び出しには任意の数の入力を含めることができますが、少なくとも少なくとも1(入力を受け取らない関数はクリップボードの状態を変更しません)。したがって、次のことも可能です。 [[3], [2, 40, 34], [7, 8, 15], []] クリップボードの内容にアクセスする 関数クリップボードの内容は、MATLの関数M(ちなみに通常の関数ではなく、クリップボード関数)を使用してスタックにプッシュされます。この関数は、入力として正の整数を受け取り、次のようにクリップボードの内容の一部をスタックにプッシュします。例1のクリップボードの状態を参照してください: [[11, 28], [12, 16], [4], [5, 6]] 1Mすべての入力を最新の関数呼び出しに返します。そう考える例えば、それができます11、28。 同様に2M、3Mおよびは、4M最新の2番目、3番目、4番目の関数呼び出しにすべての入力を返します。そう2Mなります12、16。3M与える4; そして、4Mなります5、6。 …

14
これは切り捨てられた三角形の数ですか?
関連するOEISシーケンス:A008867 切り捨てられた三角数 三角形の数の一般的なプロパティは、三角形に配置できることです。たとえば、21を取り、osの三角形に配置します。 o ああ おー おおおお ああ おっと 各角から同じサイズの三角形を切り取る「切り捨て」を定義しましょう。21を切り捨てる1つの方法は次のとおりです。 。 。。 おー おおおお 。おー。 。。oo。。 (の三角形は.オリジナルからカットされます)。 o残りは12 秒なので、12は切り捨てられた三角形の番号です。 仕事 あなたの仕事は、整数を取り、数値が切り捨てられた三角形の数であるかどうかを返す(または標準出力メソッドのいずれかを使用する)プログラムまたは関数(または同等のもの)を書くことです。 ルール 標準的な抜け穴はありません。 入力は負でない整数です。 カットの辺の長さは元の三角形の半分を超えることはできません(つまり、カットは重なり合うことができません) カットの辺の長さはゼロにすることができます。 テストケース 真実: 0 1 3 6 7 10 12 15 18 19 偽物: 2 4 5 8 9 11 13 14 16 17 20 …
20 code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

9
形状を維持しながら列を反転
前書き 整数のリストのリストがあると仮定します(または実際には任意のオブジェクトですが、簡単にするために整数に固執しましょう)。リストの長さはさまざまで、空のリストもあります。リストを表形式で書きましょう。 [[ 1, 2, 3, 4, 5], [ 6, 7], [ 8, 9, 10, 11], [], [12, 13, 14], [15, 16, 17, 18]] このテーブルには、数字を含む、5つの縦の列があり1, 6, 8, 12, 15、2, 7, 9, 13, 16、3, 10, 14, 17、4, 11, 18、と5。私たちは、各列を逆にした場合、我々はリストを取得し15, 12, 8, 6, 1、16, 13, 9, 7, 2、17, 14, 10, 3、18, 11, …

21
以下の形式を最小バイトで印刷するにはどうすればよいですか?
この課題は、これに触発され、現在削除された質問です。 入力として正の整数Nを取り、以下のパターンに従う数値1 .. N 2の行列を出力します。 最初の行に1 .. Nを入力し、最後の行(行番号N)に(N + 1).. 2Nを入力してから、2番目の行に(2N + 1).. 3Nを入力し、入力が完了するまで続けますすべての行。 出力形式は柔軟であるため、リストなどのリストが受け入れられます。 N = 1 1 N = 2 1 2 3 4 N = 3 1 2 3 7 8 9 4 5 6 N = 4 1 2 3 4 9 10 11 12 13 …

8
リストをピックフラット化する
ネストされたリストを「ピッキング」するプロセスを検討してください。ピッキングは次のように定義されます。 引数がリストの場合、リストから要素をランダムに(均一に)取り出し、そこから選択します。 引数がリストではない場合、単にそれを返します。 Pythonでの実装例: import random def pick(obj): if isinstance(obj, list): return pick(random.choice(obj)) else: return obj 簡単にするために、ネストされたリストには整数またはさらにネストされたリストのみが含まれると仮定します。 任意のリストが与えられた場合、で区別できないフラット化されたバージョンを作成することができますpick。つまり、リストから選択すると、同じ確率で同じ結果が得られます。 たとえば、リストを「ピックフラット化」 [1, 2, [3, 4, 5]] リストを生成します [1, 1, 1, 2, 2, 2, 3, 4, 5] 。単純な平坦化が無効である理由は、サブリストの要素が選択される確率が低いためです。たとえば、リストで[1, [2, 3]]は1が2/4 = 1/2の確率で選択され、3と4は両方とも1/4チャンスそれぞれ。 また、シングルトンリストからの選択はその要素からの選択と同等であり、空のリストからの選択には意味がないことに注意してください。 チャレンジ 非負整数のネストされたリストを指定すると、非負整数のフラット化されたリストを返します。このリストから、同じ確率で同じ結果が得られます。 これはcode-golfなので、最短の有効な回答(バイト単位で測定)が勝ちます。 仕様書 入力は[2, 3, 4]、[2, 2, 2, 2, …

30
配列の変更を数える
今日のタスクは、整数の配列を受け取り、値が変化する回数を左から右に読み取ってカウントするプログラムまたは関数を作成することです。これは例を使用して簡単に表示できます。[1 1 1 2 2 5 5 5 5 17 3] => [1 1 1 **2** 2 **5** 5 5 5 **17** **3**] => 4 テストケース: Input | Output [] | 0 [0] | 0 [0 1] | 1 [0 0] | 0 [1 2 3 17] | 3 [1 …

23
リストは分割可能ですか?
(説明を盗まれた)これに触発された バックグラウンド 2つのリストA = [a_1, a_2, ..., a_n]とB = [b_1, b_2, ..., b_n]整数のリストがあるとします。私たちは、言うAで潜在的に割り切れるでB存在する場合の順列Bことが可能a_iで割り切れるb_iすべてのためにi。問題は次のとおりです。すべてで割り切れるBように並べ替える(つまり、並べ替える)ことa_iは可能ですか?たとえば、あなたが持っている場合b_ii A = [6, 12, 8] B = [3, 4, 6] そして、その答えは次のようになりますTrueよう、Bように並べ替えることができますB = [3, 6, 4]し、我々はそれを持っているだろうa_1 / b_1 = 2、a_2 / b_2 = 2と、a_3 / b_3 = 2整数であり、そのすべてが、そう、Aによって潜在的に割り切れますB。 出力すべき例としてFalse: A = [10, 12, 6, 5, 21, 25] B …

28
パートナーを見つける
チャレンジ 2タプルの任意のリストと、それらのタプルの1つにある単一の要素が与えられた場合、その「パートナー」、つまりgiven aおよび[(i,j),...,(a,b),...,(l,m)]outputを出力しますb。すべてのタプルは一意であり、タプル内のすべての要素は文字列であると想定できます。また、あなたは両方を持っていないと仮定(x,y)して(y,x)。 テストケース Input Output [("(", ")"), ("{", "}"), ("[", "]")], "}" "{" [("I'm", "So"), ("Meta", "Even"), ("This", "Acronym")], "Even" "Meta" [("I", "S"), ("M", "E"), ("T", "A")], "A" "T" [("test", "cases"), ("are", "fun")], "test" "cases" [("sad", "beep"), ("boop", "boop")], "boop" "boop" 最少バイト数が勝ちます!

29
リストの2番目の最大値を実行しています
整数のリストが与えられた場合、タスクは、2から入力リストの長さまでの各kについて、最初のk要素で2番目に大きい値を出力することです。 言い換えると、入力の各プレフィックスに対して2番目に大きい値を出力します。 最初の要素(k = 1)に任意の値を出力するか、1つの要素のリストに2番目の最大値がないため、この値を単純に省略できます。入力に少なくとも2つの要素があると仮定できます。 最短のコードが優先されます。 例 Input: 1 5 2 3 5 9 5 8 Output: 1 2 3 5 5 5 8 Input: 1 1 2 2 3 3 4 Output: 1 1 2 2 3 3 Input: 2 1 0 -1 0 1 2 Output: 1 1 …

30
私の価値はどこですか?
私の上司は、配列内のアイテムを検索し、その値が発生するインデックス/インデックスを彼に与えるメカニズムを実装するようになりました。 あなたのタスク: 配列と値(String、Integer、Float、またはBoolean)を受け取り、値が発生する配列のインデックスを返すプログラムまたは関数を作成します(インデックスが0または1のいずれか)。値が配列にない場合、空の配列を返します。 入力: Aに存在する場合と存在しない場合がある配列Aと値V。 出力: VがAで発生するインデックスを含む配列、またはVがAで発生しない場合は空の配列。 テストケース: テストケースは0ベースであることに注意してください。 12, [12,14,14,2,"Hello World!",3,12,12] -> [0,6,7] "Hello World", ["Hi", "Hi World!", 12,2,3,True] -> [] "a", ["A",True,False,"aa","a"] -> [4] 12, [12,"12",12] -> [0,2] 得点: これはcode-golfであるため、バイト単位の最低スコアが優先されます。

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