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

順列とは、オブジェクトを特定の順序に配置することです。


9
DataFrame行をシャッフルする
次のDataFrameがあります。 Col1 Col2 Col3 Type 0 1 2 3 1 1 4 5 6 1 ... 20 7 8 9 2 21 10 11 12 2 ... 45 13 14 15 3 46 16 17 18 3 ... DataFrameはcsvファイルから読み取られます。Type1を含むすべての行が一番上にあり、Type2 の行が続き、Type3 の行が続きます。 すべてTypeのが混在するように、DataFrameの行の順序を入れ替えたいのですが。考えられる結果は次のとおりです。 Col1 Col2 Col3 Type 0 7 8 9 …

8
java.util.Randomは本当にランダムですか?どうすれば52を生成できますか?(階乗)可能なシーケンス?
私Random (java.util.Random)は52枚のカードのデッキをシャッフルするために使用しています。52があります!(8.0658175e + 67)可能性。しかし、私はその種がjava.util.Randomはでありlong、2 ^ 64(1.8446744e + 19)ではるかに小さい。 ここから、私は疑わしい java.util.Random は本当にランダムである。52をすべて生成できるのでしょうか。可能性? そうでない場合、52をすべて生成できるより良いランダムシーケンスを確実に生成するにはどうすればよいでしょうか。可能性?

28
文字列/整数のすべての順列を一覧表示する
インタビューのプログラミングにおける一般的なタスク(私のインタビューの経験からではありません)は、文字列または整数を取り、可能なすべての順列をリストすることです。 これがどのように行われるか、そしてそのような問題を解決する背後にある論理の例はありますか? 私はいくつかのコードスニペットを見ましたが、それらは十分にコメント/説明されておらず、従って追跡するのが困難です。

30
JavaScriptの順列?
私は次のことをする関数を書こうとしています: 引数として整数の配列を取ります(例[1,2,3,4]) [1,2,3,4]の可能なすべての順列の配列を作成します。各順列の長さは4です。 以下の関数(オンラインで見つけた)は、文字列を引数として取り、その文字列のすべての順列を返すことでこれを行います 整数の配列で機能するように変更する方法を理解できませんでした(これは、一部のメソッドが文字列で整数とは異なる動作をする方法と関係があると思いますが、よくわかりません。 ..) var permArr = [], usedChars = []; function permute(input) { var i, ch, chars = input.split(""); for (i = 0; i < chars.length; i++) { ch = chars.splice(i, 1); usedChars.push(ch); if (chars.length == 0) permArr[permArr.length] = usedChars.join(""); permute(chars.join("")); chars.splice(i, 0, ch); usedChars.pop(); } return …

30
リストのすべての可能な順列を生成するアルゴリズム?
n個の要素のリストがあるとします。n個あることを知っています。これらの要素を順序付けるための可能な方法。このリストのすべての可能な順序を生成するアルゴリズムとは何ですか?例、リスト[a、b、c]があります。アルゴリズムは[[a、b、c]、[a、c、b、]、[b、a、c]、[b、c、a]、[c、a、b]、[c、b 、a]]。 私はここでこれを読んでいます http://en.wikipedia.org/wiki/Permutation#Algorithms_to_generate_permutations しかし、ウィキペディアは説明が得意ではありませんでした。よくわかりません。

12
高速順列->数->順列マッピングアルゴリズム
n個の要素があります。例として、7つの要素1234567があるとします。7つあることは知っています。=これらの7つの要素で可能な5040の順列。 2つの関数で構成される高速アルゴリズムが必要です。 f(number)は、0〜5039の数値を一意の順列にマップします。 f '(順列)は、順列を生成元の数にマッピングします。 番号と順列の対応は気にしません。各順列には固有の番号があります。 したがって、たとえば、私は関数を持っているかもしれません f(0) = '1234567' f'('1234567') = 0 頭に浮かぶ最も速いアルゴリズムは、すべての順列を列挙し、両方向にルックアップテーブルを作成することです。そのため、テーブルが作成されると、f(0)はO(1)になり、f( '1234567')は文字列の検索。ただし、これは特にnが大きくなるとメモリを大量に消費します。 誰もがすぐに動作し、メモリの不利な点なしに動作する別のアルゴリズムを提案できますか?

5
std :: next_permutation実装の説明
std:next_permutation実装方法に興味があったので、gnu libstdc++ 4.7バージョンを抽出し、識別子とフォーマットをサニタイズして、次のデモを作成しました... #include <vector> #include <iostream> #include <algorithm> using namespace std; template<typename It> bool next_permutation(It begin, It end) { if (begin == end) return false; It i = begin; ++i; if (i == end) return false; i = end; --i; while (true) { It j = i; --i; if …

8
データフレームを行ごとおよび列ごとにランダム化(または置換)する方法
私はこのようなデータフレーム(df1)を持っています。 f1 f2 f3 f4 f5 d1 1 0 1 1 1 d2 1 0 0 1 0 d3 0 0 0 1 1 d4 0 1 0 0 1 d1 ... d4列は行名、f1 ... f5行は列名です。 sample(df1)を実行するには、df1と同じカウント1の新しいデータフレームを取得します。したがって、1のカウントはデータフレーム全体で保存されますが、各行または各列では保存されません。 行ごとまたは列ごとにランダム化を行うことはできますか? 各列のdf1を列ごとにランダム化します。つまり、各列の1の数は同じままです。また、各列は少なくとも1回は変更する必要があります。たとえば、次のようなランダム化されたdf2があるとします(各列の1のカウントは同じままですが、各行の1のカウントは異なることに注意してください。 f1 f2 f3 f4 f5 d1 1 0 0 0 1 d2 …
96 r  random  permutation 

24
Pythonで特定の文字列のすべての可能な順列を見つける
文字列があります。文字列内の文字の順序を変更して、その文字列からすべての順列を生成したいと思います。たとえば、次のように言います。 x='stack' 私が欲しいのはこのようなリストです、 l=['stack','satck','sackt'.......] 現在、文字列のリストキャストを繰り返し、2文字をランダムに選択して転置して新しい文字列を形成し、それをlのセットキャストに追加しています。文字列の長さに基づいて、可能な順列の数を計算し、設定されたサイズが制限に達するまで反復を続けます。これを行うためのより良い方法があるはずです。

6
繰り返しによる順列の生成
itertoolsについては知っていますが、繰り返しなしでしか順列を生成できないようです。 たとえば、2つのサイコロで可能なすべてのサイコロを生成したいとします。したがって、繰り返しを含む[1、2、3、4、5、6]のサイズ2のすべての順列が必要です:(1、1)、(1、2)、(2、1)...など 可能であれば、これを最初から実装したくありません

5
全長より短い桁数のSTLを使用してC ++で順列を作成する方法
私が持っているc++ vectorとstd::pair<unsigned long, unsigned long>、オブジェクト。私はを使用してベクトルのオブジェクトの順列を生成しようとしていますstd::next_permutation()。ただし、permutations予想される返される順列のサイズが指定されているpython の関数と同様に、順列を特定のサイズにする必要があります。 基本的には、c++同等の import itertools list = [1,2,3,4,5,6,7] for permutation in itertools.permutations(list, 3): print(permutation) Pythonデモ (1, 2, 3) (1, 2, 4) (1, 2, 5) (1, 2, 6) (1, 2, 7) (1, 3, 2) (1, 3, 4) .. (7, 5, 4) (7, 5, 6) (7, 6, 1) …

4
Rを使用してLucky 26ゲームを解く
私は息子がゲームによって引き起こされる問題を解決するためにコーディングをどのように使用できるかを示すとともに、Rがビッグデータを処理する方法を確認しようとしています。問題のゲームは「ラッキー26」と呼ばれます。このゲームでは、数字(重複なしの1〜12)は、星のデビッド(頂点6、交差6)上の12ポイントに配置され、4つの数字の6行はすべて26に追加する必要があります。約4億7900万の可能性(12P12 )明らかに144のソリューションがあります。これをRで次のようにコーディングしようとしましたが、メモリが問題のようです。時間があれば、回答を進めるためのアドバイスをいただければ幸いです。事前にメンバーに感謝します。 library(gtools) x=c() elements <- 12 for (i in 1:elements) { x[i]<-i } soln=c() y<-permutations(n=elements,r=elements,v=x) j<-nrow(y) for (i in 1:j) { L1 <- y[i,1] + y[i,3] + y[i,6] + y[i,8] L2 <- y[i,1] + y[i,4] + y[i,7] + y[i,11] L3 <- y[i,8] + y[i,9] + y[i,10] + y[i,11] L4 …
15 r  bigdata  permutation 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.