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

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

13
numberに最も近い値を取得します
このコードゴルフでは、リスト内の別の番号から最も近い番号を取得する必要があります。 出力は、入力に最も近い番号になる場合があります。 例: value: (Input) 5 --- [1,2,3] --- 3 また、プログラムは負の数で動作する場合があります。 例: value: (Input) 0 --- [-1,3,5] --- -1 value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers) ルール: 前述のように、負の数を処理する必要があります。 2つの回答がある場合(例:0-[5、-5])、プログラムは最も低い番号を優先します。(-5) これはコードゴルフなので、最短のコードが勝ちます!

3
作業期間を確認する
前書き ここドイツでは、労働時間に関する裁定は非常に厳格です。1日6時間以上働く場合は、少なくとも30分の休憩を取る必要があります。9時間以上働く場合は、45分の休憩を取る必要があります。勤務時間が6時間未満の場合は、休憩を取る必要はありません。 もちろん、これらの休憩を分割することもできますが、各パートをカウントするには少なくとも15分以上の長さが必要です。 チャレンジ この課題では、作業期間のリストを取得し、次のルールを使用して、十分な休憩が取られたかどうかを確認する必要があります。 w仕事時間を時間単位にしてみましょう: w < 6 -> No breaks needed 6 <= w < 9 -> 30 minute break needed w >= 9 -> 45 minute break needed さらに、各休憩の長さは少なくとも15分である必要があります。また、必要以上の休憩を取ることができます。これらはすべて「少なくとも」値です。 入力 入力は作業期間のリストになります。正確な形式はユーザー次第ですが、時間と分として時間値のみを含める必要があります。 例: ここでの形式はタプルのリストですが、各タプルは作業期間を表します。タプルの最初の要素は開始時間になり、2番目の要素は終了時間になります。 [("07:00","12:00"),("12:30","15:30"),("15:45","17:15")] これにより、合計作業時間は9.5時間、合計休憩時間は45分になります。 これらの作業期間は、休憩で区切る必要はありません。互いにちょうど続く作業期間もあります(例はテストケースを参照)。 また、休憩は勤務時間にカウントされないことに注意してください。これらは2つの別個の値です。 作業期間が順序付けられていると想定できます。 出力 この入力、出力を考えるとtruthyの十分な休憩が取られた場合は、値とfalsy値でない場合。 ルール 提出物で使用している入力形式を指定します。 空の入力を処理する必要はありません。常に少なくとも1つの作業期間があります。 作業期間は1日のみであるため、深夜に作業を行う必要はありません。 日付/時刻-/ Whatever-ビルトインは、言語に付属している限り許可されます。 機能または完全なプログラムが許可されます。 …

12
指定された非数値行を削除します
疑問がある場合:Nan = Non-numeric datatypeこのチャレンジの目的のため。 入力として行列/配列と列インデックスのリストを受け取るプログラムまたは関数を記述します。 課題は、指定された列のすべての要素が存在する行を削除することNanです。行内の他の要素が数値であるかどうかは関係ありません。次の例は、これをより明確にすることを願っています(1インデックス化されています)。 Input array: 16 NaN 3 13 5 11 NaN 8 NaN 7 NaN 12 4 14 -15 1 Input column index: [1 3] Output array: 16 NaN 3 13 5 11 NaN 8 4 14 -15 1 ---- Input array: 16 NaN 3 13 …

10
グラフのリダイレクトを解除する
前書き この課題では、自己ループのある有向グラフが与えられますが、タスクはそれを自己ループのない無向グラフに変換することです。 入力 入力は、頂点が{0, 1, ..., n-1}自然数に設定された有向グラフですn ≥ 0(または{1, 2, ..., n}、1ベースのインデックス付けを使用する場合)。グラフはlength- nlist として与えられます。LここでL[i]は、vertexの外側のリストiです。たとえば、リスト[[0,1],[0],[1,0,3],[]]はグラフを表します .-. | v '-0<--2-->3 ^ | | | v | 1<--' ネイバーリストは必ずしも順序付けられているわけではありませんが、重複がないことが保証されていることに注意してください。 出力 出力は、次のように取得された、入力と同じ形式の別のグラフです。 すべての自己ループを削除します。 残りの各エッジについてu -> v、反転エッジがv -> uまだ存在しない場合は追加します。 入力と同様に、出力グラフの隣接リストは順序付けられていない場合がありますが、重複リストを含めることはできません。上記のグラフの場合、正しい出力はになり[[1,2],[0,2],[0,1,3],[2]]、グラフを表します 0<->2<->3 ^ ^ | | v | 1<--' ルール グラフでは、0ベースまたは1ベースのインデックスを使用できます。機能と完全なプログラムの両方が許容されます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース これらのテストケースでは、0ベースのインデックス付けを使用します。1から始まる場合、各数値をインクリメントします。これらの隣接リストは昇順でソートされますが、必須ではありません。 [] -> [] …

2
Kingdom Builderのゲームを獲得する
ここで新しい形のコードゴルフを試したいです。ボーナスと同様に、チャレンジのすべての部分を完了する必要はありませんが、各回答には特定のサイズのサブセットを実装する必要があります(すべての回答に実装する必要があるコアがあります)。したがって、ゴルフに加えて、この課題には、うまく機能する一連の機能を選択することも含まれます。 ルール キングダムビルダーはボードゲームで、(先が尖った)ヘックスグリッドでプレイされます。ボードは4つの(ランダム化された)クアドラントで構成され、各クアドラントには10​​x10の16進数セルがあります(したがって、ボード全体は20x20になります)。この課題のために、各ヘックスセルには水(W)、山(M)、町(T)、城(C)、または空(.)が含まれています。したがって、象限は次のようになります . . W . . . . . . . . M W W . . . . . . . M . . W . . . T . M M . W . . . . . . . . M . W W . …

25
一瞬よりも短い!
チャレンジ この質問のタスクは、整数の入力配列を、その配列内のすべての整数の2回目の出現で分割することです。 十分に明確ではない?ここに役立つ例があります 入力配列: [2 1 1 2 3 2 2 4 5 6 7 3 7 0 5] 出力: [[2 1] [] [3 2 2 4 5 6 7] [] [0] []] 説明: これは、2番目の要素だけが太字で強調表示されている配列です。 [2 1 1 2 3 2 2 4 5 6 7 3 7 0 5 …

30
割合を見つける
私たちはしばらくの間、素敵で簡単な挑戦をしていないので、ここに行きます。 それぞれが000より大きい整数のリストと入力としてのインデックスを指定すると、リストの合計の指定されたインデックスにあるアイテムの割合を出力します。 出力は、フロート/整数の自然な表現があなたの言語(単項式、10進数、教会の数字など)にあるものでなければなりません。何らかの方法で出力を丸めることを選択する場合、小数点以下2桁以上にする必要があります(合理的な場合、1.21.21.2は丸める必要はありませんが、1.201.201.20も完全に受け入れられます)。 インデックスは1インデックスまたは0インデックスのいずれかで、常に配列の境界内にあります。 これはcode-golfなので、バイト単位の最短コードが勝ちです! 例 1インデックスを使用し、2 dpに丸めます list, index => output [1, 2, 3, 4, 5], 5 => 5 / 15 => 33.33 [7, 3, 19], 1 => 7 / 29 => 24.14 [1, 1, 1, 1, 1, 1, 1, 1, 1], 6 => 1 / 9 => 11.11 …

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 = [[] …

9
スタガー、スタック、サム
このStack Overflowの質問に触発されました。 チャレンジ 入力 非負の整数を含む正方行列の配列。 出力 次のように入力行列から構築された正方行列。 ましょN× NN×NN \times N各入力行列のサイズ、であるPPP入力行列の数。 明確にするために、次の入力行列の例(N= 2N=2N=2、P= 3P=3P=3)を考慮してください。 3 5 4 10 6 8 12 11 2 0 9 1 最初の入力行列から始めます。 2番目の入力行列をN -1ステップ下にシフトし、N -1ステップ右にシフトして、左上エントリが前のエントリの右下エントリと一致するようにします。 2番目のシフトされたマトリックスが、最初のマトリックスの上に積み重ねられているように想像してください。一致するエントリで2つの値を合計します。他の値を書き込み、残りのエントリを埋めて(2 N − 1 )× (2 N − 1 )行列0を取得します。入力例では、これまでの結果は(2 N− 1 )× (2 N− 1 )(2N−1)×(2N−1)(2N-1)\times(2N-1) 3 5 0 …

22
2D配列の行と列のブロックソート
整数の2D配列が与えられた場合、その行と列をブロックで並べ替えましょう。つまり、特定の行または列を並べ替えるだけで、並べ替えに必要な変換を2D配列の他のすべての行または列に適用できます。 ルール 入力は、整数の2D配列と1インデックス付き整数になります。この整数は、数値が正の場合にソートされる行を表し、数値が負の場合にソートされる列を表します(または、必要に応じて逆になります)。例:(4x3行x列)配列を指定すると、2番目の列を-2引数で、または3番目の行を引数でソートでき3ます。この2番目の引数はゼロになることはなく、その絶対値は配列の対応する次元より大きくなることはありません。 出力は、指定された行または列をソートするために必要な変換が適用された整数の2D配列にもなります。または、STDOUTに配列を書き込むこともできます。 出力配列には、指定された行または列が昇順でソートされます。行の2つの数字を交換する必要がある場合、数字が配置されている列全体が交換されることに注意してください。また、列内の2つの数字を交換する必要がある場合、数字が配置されている行全体が交換されます。 並べ替えられる行/列に同じ番号が複数回現れる場合、値を交換する方法に応じていくつかの解決策があり、交換される残りの行/列に応じてそれを行うだけです。 例 Positive indices for rows and negative indices for columns [5 8 7 6 [1 3 2 4 1 3 2 4 order by -3 (3rd column) --> 9 6 3 0 9 6 3 0] 5 8 7 6] [5 8 7 6 …

21
重複する範囲まで埋める
してみましょう不特定の順序での正の整数のリストであり、重複を含有することができます。正の整数のリストを出力するプログラムや関数書き込みマージすること(順序は重要ではない)は、そのような及び完全整数の同じ範囲に分割することができる最小のリストに結果を[1..i] 、iはあるがLの最大要素M L M [ 1 .. i ] i LLLLMMMLLLMMM[ 1 .. i][1..i][1..i]私私iLLL 例 させてくださいL = [5,3,3,2,7]。の最大要素はLです7。特定の整数が発生するほとんどの回数は2(32回表示されます)。したがって、我々は出力にリスト必要Mに完了することができますL私たちが構築することができるよう2に整数の範囲1にします7。 そのため、を出力する必要がありますM = [1,1,2,4,4,5,6,6,7]。これにより、から1までの各整数が7出現します2。 入力と出力 リストに似た言語で何かを使用します。入力と出力に使用されるデータ構造は同じでなければなりません。 入力リストには正の整数のみが含まれます。 入力リストは空になりません。 入力リストがソートされていると想定することはできません。 出力リストの順序は重要ではありません。 テストケース Input Output [1] [] [7] [1, 2, 3, 4, 5, 6] [1, 1, 1] [] [1, 8] [2, 3, 4, 5, 6, …

3
Octaveの匿名関数を使用してベクターの要素を交換する方法は?
Octaveでは、ベクトル/マトリックス内の2つの要素を交換するのは非常に簡単です。 x='abcde'; x([4,1])=x([1,4]) x = dbcae 残念ながら、匿名関数内でこれを行う方法をまだ見つけていません。以下の関数は構文的には正しいですが、xベクトル全体ではなく、スワップされる2つの要素のみを返します。 f=@(x)(x([4,1])=x([1,4])) f(x) ans = ad 匿名関数を使用してゴルフのように望ましい動作を達成する方法はありますか?無名関数を使用して、この方法で複数の要素を交換できますか? 私は可能性がインデックスベクトルを作成しますf=@(x)x([4,2,3,1,5])が、動的なベクトルを作成する可能性があまりにもバイトの多くがかかります。

10
ランニングで数を制限する
自己制限リスト 非負の整数を含む空でないリストLを考えます。実行中のLは長くすることができないに等しい要素の連続したサブリストです。たとえば、[0,0,1,1,3,3,3,2,1,1]の実行は[0,0]、[1,1]、[3,3,3]、[2 ]、[1,1]。リストLは、各整数N≥1について、Nの出現回数がN-1の実行回数以下の場合、自己制限的です。上記のリストは1が4回出現しますが、0の実行は1回だけなので、自己制限的ではありません。 自己制限リストの例を次に示します:[0,0,3,4,1,0,2,1,1,0,2,1,0,0,0,1,0]。持っている 5つのラン0と5つの出現1、 4回の1回の実行と2回の2回の実行、 2つの実験2との1つの発生3、 1回の3回の実行と1回の4回の実行、 4回1回実行、5回は発生しない、 他の整数は発生しません。 タスク あなたの仕事は、リストが自己制限的であるかどうかを決定することです。より明示的には、入力は負でない整数の空でないリストでなければなりません。リストが自己制限的である場合、出力は真実です。それ以外の場合は、偽造されます。入力と出力は任意の合理的な形式にすることができます。 各プログラミング言語の最小バイト数が勝者です。標準のコードゴルフ規則が適用されます。 テストケース 真実のインスタンス: [0] [1,0] [0,1,1,0,2] [3,1,1,0,0,2,0,0] [5,0,4,1,3,0,2,2,0,1,1,1,0] [0,0,1,1,0,0,1,1,0,0,2,2,0,0] [6,0,0,0,2,2,1,0,5,0,3,4,0,1,1,1] [5,0,1,0,0,0,0,4,0,3,1,1,1,2,2,0,0,0,0,0] [4,5,1,3,2,0,5,2,0,3,0,1,0,1,0,0,0,1,0,0,1,0,3,4,4,0,2,6,0,2,6] [0,4,1,3,10,6,0,1,3,7,9,5,5,0,7,4,2,2,5,0,1,3,8,8,11,0,0,6,2,1,1,2,0,4] 偽のインスタンス: [2] [1,1,0] [0,0,1,1,1,0,0,2] [0,1,0,1,1,2,2,3,0,0,4,6] [1,1,2,1,2,0,2,0,3,0,0,2,2,1,2,3,2,0,1,1,1,0,0,3,3,0] [3,4,1,0,0,0,5,5,0,2,2,0,0,0,0,0,2,0,1,1,0,4,3,5,4,3] [1,0,0,0,2,5,3,1,1,0,3,3,1,3,5,4,0,4,0,0,2,0,2,1,1,5,0,0,2,4,4,0,2,0,1,4,4,2,3,3,5,3,4,0,2,0,5] [4,3,1,0,0,4,6,6,1,0,1,2,1,3,0,1,0,2,0,3,4,0,2,1,1,3,0,2,2,2,0,5,5,0,5,2,5,5,0,4,3,2,3,1,1,3,5,1,4,1,6,2,6,2,4,0,4,0,4,5,3,3,0,0,6,1,0,0,0,6,2,1,0,1,2,6,2,4] [5,1,1,1,0,2,0,6,1,0,2,1,2,2,5,3,1,0,0,0,3,2,3,0,1,1,0,1,0,1,1,2,0,6,4,1,2,1,1,6,4,1,2,2,4,0,1,2,2,1,3,0,1,2,0,0,0,2,0,2,2,0,1,0,0,1,3,0,0,0,6,2,0,1,0,1,2,1,1,1,0,4,0,0,5,2,0,0,0,4,1,2,2,2,2,0,5,3,2,4,5,0,5]

15
モジュロパリティパーティ
n≥2のn個の厳密に正の整数の配列Aが与えられます。 あなたの仕事は、各エントリA iを以下にマップすることです: 1場合A J MOD A iが各奇数であるJように1≤J≤N及びJ≠I A j mod A iが1≤j≤nかつj≠iであるようなjごとに偶数の場合は2 そうでない場合は0(混合パリティ) 例 用A = [73、50、61] 、我々が持っています: = 50 MOD 73 50、61 MOD 73 = 61 →混合 = 73 MOD 50 23、61 MOD 50 = 11 →すべての奇数 = 73 MOD 61 12、50 MOD 61 = 50 →全ての偶数 したがって、予想される出力は[0、1、2]です。 …

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