• ベストアンサー

整数値行列のベクトルによる行の置換

stomachmanの回答

  • ベストアンサー
  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.2

この話、ベクトルも行列も関係ないでしょう。 列<a[m]> (m=1,2,....M。∀n,m(n≠m→a[n]≠a[m]))の各要素に定数bを加えて作った列 <c[m]> (∀m(c[m]=(a[m]+b) mod q)) が列<a[m]>の置換になっているようにしたい。そしてb(0<b<q )を変えるだけで全ての置換が網羅されるようにしたい。 という問題ですね。違います? そういう<M, <a[m]> , q>があったとしましょう。 さて、M個の要素に関する置換全部の集合をPとするとき、M個の要素に関する互換の集合SはS⊂P。従って、ある互換sについて <c[m]> = <a[s(m)]> = <(a[m]+b) mod q> となるbが存在する。従って任意のmについて、 <c[s(m)]> =<a[s(s(m))]> = <a[m]> つまり <a[m]> =<(a[m]+2b) mod q> でなくてはなりません。よって、 2b ≡ 0 (mod q) ゆえに2b=q でなくちゃならんことになりますね。 このようなbは一つしかない。一方、互換はM (M-1)/2個ある。よってM>2の時には無理。 だから、この問題は「不可能」が答、かな?

motsuan
質問者

お礼

stomachmanさん。回答ありがとうございます。 証明了解いたしました。もともとの問題は x の関数 f_j(x) (j=0,1,2,...,N) があって、  exp[ i (f_j(x)+ g(x)) ] = exp[ i f_P(j)(x) ] ( i は虚数単位) となるようなg(x)があったら、便利だろうな、というところから、行列になってしまいました。そういう都合がいいことはそうそう起こらないと思っていましたがやっぱりそうですか。 (※oodaikoさんが等差数列のときを示してくださったように、   同じ列に同じ値が複数含まれる場合はN>1で   行単位の置換の意味がちょっと違うのだなと思いました。   多分、の場合は同じ列に同じ値が複数含まれる場合を許す場合だと思います。   a[1,1]=1, a[1,2]=0, a[2,1]=1, a[2,1]=1 のようにです。   ただ、stomachmanさんの証明自体は生きますよね。) 方法としては、似たような置き換えを何回かくりかえしてもいいかと思っています。 (ごめんなさい、問題自体が固まっていないもんで。最終目標は、「とにかく足し算だけで置き換える」ということなんです。) a[m,n]+b_w[n] (mod q_w) (w=1,...,W) として(Wはできるだけ小さく)、何回か繰り返していつかは、目的とする置換になっているというようなイメージです。(歯車のついたくるくるお絵かき定規(?)みたいに(スピログラフというらしいです)。) ともあれ、stomachmanさんのおかげで一歩前進です。ありがとうございます。

関連するQ&A

  • 行列式と置換

    A:p次行列、 B:(p,q)行列、 C=0、 D:q次行列 p + q = n 、X=(x_ij)のもとで    |AB| |X|= |CD| =|A|X|D| になる証明のプロセスについて質問します。 ------------------------------------------------------- i\j p q p  |AB| q  |CD| i > p, j≦p ⇒ x_ij=0 よって行列式の定義式 Σsign(σ) a_σ(1),1 ... a_σ(n),n において j≦p ⇒ σ(j)≦p  であるようなσに対する項だけが残る (ここまでは多分大丈夫です) この条件をみたすσは{1,・・・,p}の置換σ1と{p+1,・・・,n} の置換σ2の積として表わされる ・・・(*) (*)の部分がよく分かりません。 説明していただけないでしょうか、お願いします。

  • 二つの確率ベクトルの共分散行列

    n次元確率ベクトルXについての分散共分散行列 Cov(Xi, Xj)の説明は多くの教科書にあり理解しているのですが,p次元確率ベクトルPとq次元確率ベクトルQについての共分散行列 Cov(Pi, Qj) が何の指標になっているのかがわかりません.行列の各成分は何を表しているのでしょうか.直感的・幾何学的なイメージがつかめないのですが...

  • 行ベクトル

    |1234| |5678|=Aという行列を行ベクトル表示するとき |1234| [1234]では4次元数ベクトルではないため b=[1234]と表すことは出来ないが 行列を転置させれば [1234]は4次元数ベクトルとなるため tb=[1234]と表すことが出来るため 同じように考えていくと 行列Aは |tb1| |tb2|=A |tb3|   と表すことができる よってtb1をbに戻すと |1| |2|=b |3| |4| となる という考え方(解き方)は正しいですか? *bはベクトルです

  • 行列の要素にベクトルの成分をいれる?

    ベクトルの成分を行列にするというのは習いました。 では、ベクトルを並べて 例えば 2次元のベクトルA,BとベクトルC,Dがあり、それぞれを並べて ( (2,1) , (3.5) ) と ( (2,4), (1.6) ) というようにして、A,Cの内積、B,Dの内積が入った行列を導出するようなことはできますか? (A,B)・(C,D) = (A・C , B・D) 仮にベクトルの成分行列を要素に持つ行列があると仮定して、(C,D)行列を転置すれば行列の 掛け算はできますが、内積を行うようなこうはできるのでしょうか。

  • 3次元ベクトルの回転と行列

    3次元ベクトルA, B, Cを仮定します。ここで、AとBは既知のベクトルで、長さが同じとします。 その場合、当然ですがAを回転させるとBになります。 同様の作業をBにすることにより、Cのベクトルが得られます。 このCのベクトルを行列を用いて求めたいと考えているのですが、どうするか忘れてしまいました。 教えていただけるとありがたいです。

  • 線形代数 ベクトル空間と行列(ランク)の証明

    証明のやり方がよくわからなかったので次の2つの証明のやり方を わかる方どうか教えてください。 1、 Aを(m、n)行列 Bをn次の正則行列  Cをm次の正則行列とするとき   rank(CAB)=rank(AB)=rank(A) を示す。 2、 UをK上の有限次元ベクトル空間、WをUの部分ベクトル空間とする。 a1,a2,,,,,arをWの基底とするとWの次元がrということを示す。 この2つです。どちらか片方だけでもいいのでもし分かるかたがいたら よろしくお願いします。

  • 行列の比較

    M行N列(M×N)の行列A,B,Cがあるとき。 行列Aに対してBとCどちらが近いかを比較する方法には どのようなものがあるのでしょうか。 例 行列A(3×3) 1 1 1 1 1 1 1 1 1 行列B(3×3) 1 1 2 2 1 1 1 1 1 行列C(3×3) 2 2 2 2 2 2 2 2 2 例では誤差で考えるとBの方がAに近いのですが 行列内の互いの数値関係が同じ(同じ値)ということで Cの方がAに近い性質を現していることを数値で示したいと考えています つまり求めたいのは相関(?)のような近さです 思いつくのは一列づつ相関をとって最終的に全ての行での 平均をとる方法ですが 他に上手く(出来れば一つの数字で)近さの程度を表す方法や 一般的な方法があれば教えて頂けないでしょうか。 よろしくお願い致します。

  • 3次元ベクトルを2次元にしたい。

    空間上にあるベクトルA=(a,b,c)、ベクトルB=(p,q,r)(以下<→A>、<→B>で表す)も<→A>、<→B>を含む平面上から見れば2次元、つまり2つの成分のベクトルA’=(a’,b’)、ベクトルB’=(p’,q’) で表せると思うのですが、 このa',b',p',q'はa,b,c,p,q,rを用いてどのように表せますか? ヒントだけでもいいのでよろしくお願いします。

  • 行列をベクトルに(C言語)

    行列をベクトルに(C言語) m行n列の行列Aがあったとき、それをm×n行1列の行列(ベクトル)Bに するというプログラムを作りたいです。 これは、行列Aの1列目m行分の要素をそのまま行列Bの1行1列目に持っていき、 それを行列Aのn列の数だけ繰り返す、といった要領です(画像参照) つまり MATRIX B; B.m=A.m*A.n; B.n=1; return B; ということだと思うのですが、なかなかうまいくいきません。 また、構造体も使いたいので、 typedef struct { int m; int n; double *mat; } MATRIX; と宣言しました。 画像は説明のため、一応載せておきました。(例として4列の行列になっています) みなさんよろしくお願いします。

  • 行列について教えてください。

    行列についていくつか質問させて下さい。 1)(A+B)^-1の結果   (^-1は逆行列です。自分ではそのままA^-1+B^-1だ  と思うのですが・・・) 2)置換行列について 例えば、線形方程式Ax=b(A:正方行列,x:求める解)を解く問題でA^=PAQ,x^=Q^-1x,b^=Pbと置換行列P,Qを用いてその後の処理(行列分割)を行うと、本で読んだのですがなぜ、置換行列を使っておきかえるのでしょうか?  置換しなくてもその後の処理(行列分割)はできると思います。 一つでもいいので解かる方よろしくお願いします。