タグ付けされた質問 「permutations」

順列は、オブジェクトのリストの特定の順序です。順列でタグ付けされた問題には、通常、テキストのアナグラムを含む順列の検索または生成が含まれます。

11
ソース順列
順列セットのS= { s1、s2,…,sn}S={s1,s2,…,sn}S = \{s_1, s_2, \dotsc, s_n\}である全単射関数π:S→Sπ:S→S\pi: S \to S。例えば、S={1,2,3,4}S={1,2,3,4}S = \{1,2,3,4\}、関数π:x↦1+(x+1mod4)π:x↦1+(x+1mod4)\pi: x \mapsto 1 + (x + 1 \mod 4)は順列です: π(1)=3,π(2)=4,π(3)=1,π(4)=2π(1)=3,π(2)=4,π(3)=1,π(4)=2 \pi(1) = 3,\quad \pi(2) = 4,\quad \pi(3) = 1,\quad \pi(4) = 2 我々はまた、のは、見てみましょう、無限集合の順列を持つことができるNN\mathbb{N}例として:関数π:x↦x−1+2⋅(xmod2)π:x↦x−1+2⋅(xmod2)\pi: x \mapsto x-1 + 2\cdot(x \mod 2)は、2つのブロックの奇数と偶数の整数を交換する順列です。最初の要素は次のとおりです。 2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,…2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,… 2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,\dotsc チャレンジ この挑戦のためにあなたの仕事は、任意の実装の機能/プログラムの書き込みにある1つの正の自然数の順列を。ソリューションのスコアは、実装された順列でマッピングした後のコードポイントの合計です。 例 Pythonで実装された上記の順列をとると仮定します。 def …

9
ブロックの再配置
したがって、あなたの仕事は3x3ブロックを取得することです。ここで、-の意味は空白スペースであり、*の意味は塗りつぶされたスペースです、例えば: -** -*- *-* 次*のように、がXを形成するようにブロックを再配置します。 *-* -*- *-* 入力: 上記のような3x3の正方形、3行、配列、または必要に応じて。 出力: Xに再配置するための最短の移動量。各移動は、互いに水平であるか、互いに垂直であるか、または互いに斜めである、接触している2つのキャラクターを反転させます。不可能な場合は、不可能な出力を返します(例:999または)-4242。5最小のそのような数です。 テストケース: 1)出力:1 -** -*- *-* 2)出力:-1 -*- -*- *-* 3)出力:3 --- -** *** 4)出力:0 *-* -*- *-* 空白文字と非空白文字を置き換えることができますが、投稿にどちらが含まれるかを必ず確認してください コードゴルフ これは、最短のコードが勝つコードゴルフです。

12
パリンドローム部分文字列からパリンドロームをつなぎ合わせる
文字列を考えるとl、全てのパリンドロームのサブストリングを見つけるpのl(重複し、単一の文字列を含む)を。次に、すべての部分文字列をp有効な回文に再配置します(複数の正解がある場合があります)。p単一のパリンドロームに再配置できない場合は、プログラムに未定義の動作(エラー、スタックオーバーフロー、終了、ジョンドヴォルザークの首吊り/早すぎる殺人など)が含まれている可能性があります。 例 有効なテストケース l = anaa p = ['a', 'n', 'a', 'a', 'aa', 'ana'] result = anaaaaana or aanaaanaa or aaananaaa l = 1213235 p = ['1', '2', '1', '3', '2', '3', '5', '121', '323'] result = 1213235323121 l = racecar p = ['r', 'a', 'c', 'e', 'c', 'a', 'r', …

8
乱れた再配置
あなたの仕事は、行に分割される(改行文字で分割される)ときに、行のすべての配置が1からnの間の異なる数を出力するようにコンピュータープログラムを書くことです!(nは行の総数です)。2つの異なる配置で数値を出力することはできません。すべての配置でこの範囲の数値を出力する必要があります。nがあるので!プログラムの行を配置する方法。これは、各番号が1回の再配置で出力されることを意味します。 たとえば、Pythonプログラム print 1;""" print 2;""" 2つの取り決めがあります print 1;""" print 2;""" そして print 2;""" print 1;""" 最初の出力1と2番目の出力2。 使用している言語の標準である出力形式を使用できます。なんらかのボイラープレートを想定してはいけません。言語が主張している形式を回避する必要がある場合、この課題はより興味深いと思います。 得点 スコアはプログラムの行数になり、スコアが高いほど良くなります。あなたは、出力番号に選択することが0にn個!-1あなたが好きならば。

15
目標値に達する組み合わせを生成する
チャレンジ 数字のリストとターゲット値があるとします。目標値に達する数字のすべての組み合わせのセットを見つけ、それらをリストインデックスとして返します。 入出力 入力には、番号のリスト(必ずしも一意ではない)とターゲットの合計番号が必要です。出力は空でないリストのセットになり、各リストには元の入力リストの値の位置に対応する整数値が含まれます。 例 Input: values = [1, 2, 1, 5], target = 8 Output: [ [0,1,3], [1,2,3] ] Input: values = [4.8, 9.5, 2.7, 11.12, 10], target = 14.8 Output: [ [0,4] ] Input: values = [7, 8, 9, -10, 20, 27], target = 17 Output: [ [1,2], …

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
[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 

5
すべてのBrain-Flakスニペットを生成する
この質問は、Brain-Flakの最初の誕生日を祝うために設計されたいくつかのBrain-flak Birthdayチャレンジの2番目です!Brain-Flakの誕生日の詳細については、こちらをご覧ください。 チャレンジ この課題では、括弧のリストから完全に一致するすべての文字列を生成します。完全に一致する文字列のDJMcMayhemの定義を借用するには: この課題のために、「括弧」は次の文字のいずれかです()[]{}<>。 次のように、開始ブラケットと終了ブラケットが正しい順序であり、中に文字がない場合、一対のブラケットは「一致」とみなされます。 () []{} または、その中のすべてのサブ要素も一致する場合。 [()()()()] {<[]>} (()()) サブエレメントは、いくつかのレイヤーの深さにネストすることもできます。 [(){<><>[()]}<>()] <[{((()))}]> ブラケットの各ペアに正しい順序で正しい開始ブラケットと終了ブラケットがある場合にのみ、文字列は「完全一致」と見なされます。 入力 プログラムまたは関数は、便利で一貫した形式の4つの非負数のリストを受け取ります。これには、整数のリスト、数字で区切られていない文字列、または個別の引数が含まれます(ただし、これらに限定されません)。これらの4つの数字は、各タイプのブラケットの一致したペアの数を表します。たとえば、次[1,2,3,4]を表します。 1ペア () 2組の {} 3組[]と 4ペア <> 一貫性がある限り、各入力に対応するブラケットのペアを選択できます。 出力 この括弧のリストから重複なく形成できる、完全に一致したすべての文字列を出力する必要があります。出力は、括弧で区切られていない文字列をSTDOUTに出力したり、文字列のリストを関数からの戻り値として出力したりするなど、妥当な形式で出力できます。 アルゴリズムは任意の入力に対して機能する必要がありますが、メモリ、時間、整数サイズの制限について心配する必要はありません(たとえば、答えがCの場合、入力として2 33を取得しません)。 これはcode-golfであるため、バイト単位の最短回答が優先されます。 入力と出力の例 これらの例では、上記と同じ入力順序を使用します。 各例では、最初の行が入力され、次の行が出力になります Example 0: [0,0,0,0] Example 1: [1,0,0,0] () Example 2: [0,2,0,0] {}{} {{}} Example 3: [0,0,1,1] []<> …

21
ゴルフビット織り
注:この課題の前半は、Martin Enderの前の課題であるVisualize Bit Weavingから来ています。 難解なプログラミング言語の悪には、「織り」と呼ばれるバイト値に対する興味深い操作があります。 基本的には、バイトの8ビットの順列です(パターンが対称であるため、どちらの端からカウントを開始してもかまいません)。 ビット0はビット2に移動します ビット1はビット0に移動します ビット2はビット4に移動します ビット3はビット1に移動します ビット4はビット6に移動します ビット5はビット3に移動します ビット6はビット7に移動します ビット7はビット5に移動します 便宜上、置換のその他の3つの表現を示します。サイクルとして: (02467531) マッピングとして: 57361402 -> 76543210 -> 64725031 そして、マッピングのペアのリストとして: [[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]] 8織った後、バイトは本質的にリセットされます。 例えば、数織り10011101(ある157ベース10に)を生成します01110110(これは118ベース10に)。 入力 唯一存在する256、すなわち有効な入力は、すべての整数間0と255包括的に。これはどのベースでも使用できますが、一貫している必要があり、選択したベースがベース10でない場合は指定する必要があります。 入力をゼロで埋めることはできません。 出力 ビットウィービングの結果を任意のベースで出力する必要がありますが、これもベース10でない場合は一貫性があり、指定する必要があります。 出力をゼロで埋めることができます。 関連:ビットウィービングの視覚化

6
手紙、動く!Pt。2
最初の手紙、Get Moving!非常に人気がありましたが、参加は限られていました。これは簡単に解決できますが、うまくいけばゴルフにいくつかのトリックが含まれます。 小文字のみの文字列が与えられます。各文字について、アルファベットmの位置で、最後からm番目の文字になるように移動します。mの値が文字列の長さよりも長い場合は、それを一番前に移動します。完全に変換された文字列のみを出力します。 例: 「キリン」 「g」はアルファベットの7番目の文字です。すでに後ろから7番目の文字なので、そのままにしておきます。 「i」は9番目の文字です。9は単語の長さよりも大きいため、先頭に移動し、文字列は igraffe 「r」は18番目の文字で、「i」のように先頭に移動します。 rigaffe 「a」は最初の文字で、最後まで行きます: rigffea 「f」は6番目の文字で、後ろから6番目になります。 rfigfea 次の 'f'は6番目の文字でもあるため、後ろから6番目に移動します。 rffigea 「e」は5番目の文字で、後ろから5番目に移動します。 rfefiga "花" 'f'(6)=> flower 'l'(12)=> lfower 'o'(15)=> olfwer 'w'(23)=> wolfer 'e'(5)=> weolfr 'r'(18)=> rweolf "パイナップル" 'p'(16)=> pineapple 'i'(9)=> ipneapple 'n'(14)=> nipeapple 'e'(5)=> nipaepple 'a'(1)=> nipepplea 'p'(16)=> pnipeplea 'p'(16)=> ppnipelea 'l'(12)=> lppnipeea 'e'(5)=> …

17
コードゴルフ:フォワードsdrawkcaBフォワードsdrawkcaBフォワードフォワードsdrawkcaB
仕事 ユーザーは文を入力します-単語のみ。整数や句読点など、文字やスペース以外の入力は例外をスローする必要があります:「文は文字のみを使用する必要があります」。 出力にはパターンがあり、一部の単語が反転し、他の単語は正常です。 パターンは通常の単語として始まり、次の2つの単語が逆になり、次の2つの単語が正常になり、パターンが続きます。 単語が正常であり、単語が反転する場所の例を以下に示します。 正常-反転-反転-正常-正常-反転-反転-正常... 入力例 彼女は海岸で貝を売っています 出力例 彼女はEe AeS海岸でaeSシェルを投げます 追加の規則 大文字を使用する場合、最初に投稿した文字に大文字を使用する必要があります。 入力時に最初に投稿された複数のスペースは、1つのスペースに減らす必要があります。たとえばProgramming Puzzles and Code GolfなりましたProgramming selzzuP dna Code Golf 最短コードが勝つ!! ハッピーコーディング...

8
アルファベットファンクッチ
Fannkuchは、古典的なベンチマークプログラムです。この名前は、パンケーキの山をひっくり返すアルゴリズムに似ているため、ドイツの「ファンクーヘン」-パンケーキ-に由来しています。番号の Fannkuchシーケンスは次のように形成されます。 {1 ..... n}の順列を使用します(例:{4,2,1,5,3})。最初の要素(ここでは4)を取得し、最初の4つの要素の順序を逆にします:{5,1,2,4,3}。最初の要素が1になるまでこれを繰り返します。したがって、反転してもそれ以上何も変わりません:{3,4,2,1,5}、{2,4,3,1,5}、{4,2,3、 1,5}、{1,3,2,4,5} あなたは、アルファベット文字の文字列のために、Fannkuchのようなシーケンスを計算するプログラムまたは関数を書くことになっています。毎回リストの要素をいくつ反転させるかを示すために数字を使用する代わりに、アルファベットの文字の位置を使用する必要があります。たとえば、先頭cは、最初の3つの要素の順序を逆にする必要があることをa示し、先頭は、シーケンスが完了したことを示します。 入力 入力は、stdin経由の文字列または関数の引数として提供されます。文字列には、1〜26個の異なる小文字が含まれます。文字列には、同等のインデックスによってFannkuchアルゴリズムが存在するよりも多くの要素を反転させる文字は含まれません。 出力 プログラムまたは関数は、先頭a文字列を含む先頭に到達するまでFannkuchアルゴリズムを適用することによって生成された用語のシーケンスを標準出力に返すか、印刷する必要があります。たとえば、入力がの場合bca、次を印刷できます。 bca cba abc 印刷結果には、コンマ、改行などの適切な区切り文字を使用できます。空白の選択は任意です。 別の例として、入力がeabdc次のように返される場合があります。 ("eabdc" "cdbae" "bdcae" "dbcae" "acbde") ルールとスコアリング これはコードゴルフです -最短のプログラムが勝ちます。標準の抜け穴は許可されていません。

8
順列のパリティ
バックグラウンド 順列のパリティは、ウィキペディアで定義されている次のように、次のとおりです。 順列σの符号または署名はsgn(σ)で示され、σが偶数の場合は+ 1、σが奇数の場合は-1として定義されます。 順列の符号は、次のように明示的に表現できます。 sgn(σ)=(−1)^ N(σ) ここで、N(σ)はσの反転数です。 あるいは、置換σの符号は、転置の積への分解から次のように定義できます。 sgn(σ)=(−1)^ m ここで、mは分解の転置の数です。 数学でギリシャ語のアルファベットスープが好きではない人のために、例(ウィキペディアから盗まれた)を使って定義を少し簡略化してみます。 例 入力配列{1, 2, 3, 4, 5}、およびその順列を考えてみましょう{3, 4, 5, 2, 1}。その順列に元の配列から取得するためには、インデックスを交換しなければならない0と2、1と3、その後、2および4。これは独自のソリューションではありませんが、パリティは明確に定義されているため、すべての場合に機能します。 3つのスワップが必要なので、この順列にoddパリティを付けます。ご想像のとおり、偶数のスワップを必要とする順列にはevenパリティがあると言われています。 チャレンジ あなたの課題は、置換のパリティを決定するために、できるだけ少ないバイトでプログラムを書くことです。プログラムまたは機能は以下を行う必要があります。 置換の前後のセットを表す2つの入力配列(または文字列)を引数として受け入れます。 順列が与えられると、偶数eまたはo奇数の文字を返すか出力します。 配列または文字列内のすべてのインデックスに一意の値があると想定する必要があります。 テストケース 次の名前の関数を宣言したと仮定しますf。 f([10], [10]) == "e" f([10, 30, 20], [30, 20, 10]) == "e" f([10, 30, 20, 40], [30, 20, 40, …

11
出力個別因子の直方体
出力個別因子の直方体 今日のタスクは非常に単純です。正の整数を指定すると、その因子によって形成可能な各直方体の代表を出力します。 説明 直方体の体積は、3辺の長さの積です。例えば、側面の長さは整数辺を有することができ、ボリューム4の直方体[1, 1, 4]、[1, 2, 2]、[1, 4, 1]、[2, 1, 2]、[2, 2, 1]、または[4, 1, 1]。しかし、これらのいくつかは、同じ直方体表す:例えば[1, 1, 4]と[4, 1, 1]同じ直方体が回転しています。そこボリューム4と整数辺と2つだけ異なる立方体は、次のとおり[1, 1, 4]と[1, 2, 2]。出力は、最初の直方体の任意の表現、および2番目の直方体の任意の表現にすることができます。 入力 あなたのプログラムは、整数単一の正を取る必要があります1 ≤ N ≤ 231− 11≤n≤231−11 \le n \le 2^{31}−1。 出力 可能なすべての直方体をリストまたはその他の受け入れ可能な方法で出力する必要があります。例えば Input Output 1 [[1, 1, 1]] 2 [[1, 1, 2]] 3 [[1, 1, …

6
長方形内のユニークなレンガのタイル
私はStackoverflowを閲覧していて、MxN長方形のタイリングに関するこの質問を見て、ゴルフに最適だと思いました。ここにタスクがあります。 次元MとNが与えられた場合、MxNの長方形(Nは列ではなく行の数です。実際には重要ではありません)がこれらの制約の下でタイル化できるユニークな方法を出力するプログラムを書きます。 すべてのタイルは2x1または3x1です すべてのタイルは行内にとどまります(つまり、すべて水平です) 隣接する2行ごとに、2つの端を除き、タイルを配置しないでください。 MとNは少なくとも1であることが保証されています たとえば、8x3マトリックスの有効なタイリングは次のようになります 2 3 3 | | | v v v _______________ |___|_____|_____| |_____|_____|___| |___|_____|_____| ただし、行は整列するため、次は無効になります。 2 3 3 | | | v v v _______________ |___|_____|_____| |_____|___|_____| |_____|_____|___| テストケース: 8x3:4 3x1:1 1x1:0 9x4:10 ゴルフをコーディングするので、最短回答が勝ちます。

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