• 締切済み

原始多項式の求め方

9段M系列の生成多項式となる原始多項式の求め方を教えてください。 今のところx^9+x^5+1やx^9+x^4+1が原始多項式であることがネットなどを調べていてわかりましたが、求め方はわかりません。 また、上記の2式が原始多項式であるかどうか判別するようなこともできるのでしょうか? 数学に関しては素人なので"何を勉強すればわかるか"だけでも教えていただけると助かります。 よろしくお願いします。

みんなの回答

  • reiman
  • ベストアンサー率62% (102/163)
回答No.9

ついでに x^kがどうなるかを示します。 右辺は位数2の素数体上多項式であって係数の並びで表現しています。 <?php $N=9; $p=32+1; $c=pow(2,$N); $f=$c^$p; $a=1; for($i=0;$i<$c;$i++) { $s=sprintf("x^(%03d) = %010b",$i,$a); $color=($a==1)?"red":"blue"; print<<<EOL <div style="color:{$color}">{$s}</div> EOL; $a<<=1; if(($a & $c)==$c)$a^=$f; } ?> 結果: x^(000) = 0000000001 x^(001) = 0000000010 x^(002) = 0000000100 x^(003) = 0000001000 x^(004) = 0000010000 x^(005) = 0000100000 x^(006) = 0001000000 x^(007) = 0010000000 x^(008) = 0100000000 x^(009) = 0000100001 x^(010) = 0001000010 x^(011) = 0010000100 x^(012) = 0100001000 x^(013) = 0000110001 x^(014) = 0001100010 x^(015) = 0011000100 x^(016) = 0110001000 x^(017) = 0100110001 x^(018) = 0001000011 x^(019) = 0010000110 x^(020) = 0100001100 x^(021) = 0000111001 x^(022) = 0001110010 x^(023) = 0011100100 x^(024) = 0111001000 x^(025) = 0110110001 x^(026) = 0101000011 x^(027) = 0010100111 x^(028) = 0101001110 x^(029) = 0010111101 x^(030) = 0101111010 x^(031) = 0011010101 x^(032) = 0110101010 x^(033) = 0101110101 x^(034) = 0011001011 x^(035) = 0110010110 x^(036) = 0100001101 x^(037) = 0000111011 x^(038) = 0001110110 x^(039) = 0011101100 x^(040) = 0111011000 x^(041) = 0110010001 x^(042) = 0100000011 x^(043) = 0000100111 x^(044) = 0001001110 x^(045) = 0010011100 x^(046) = 0100111000 x^(047) = 0001010001 x^(048) = 0010100010 x^(049) = 0101000100 x^(050) = 0010101001 x^(051) = 0101010010 x^(052) = 0010000101 x^(053) = 0100001010 x^(054) = 0000110101 x^(055) = 0001101010 x^(056) = 0011010100 x^(057) = 0110101000 x^(058) = 0101110001 x^(059) = 0011000011 x^(060) = 0110000110 x^(061) = 0100101101 x^(062) = 0001111011 x^(063) = 0011110110 x^(064) = 0111101100 x^(065) = 0111111001 x^(066) = 0111010011 x^(067) = 0110000111 x^(068) = 0100101111 x^(069) = 0001111111 x^(070) = 0011111110 x^(071) = 0111111100 x^(072) = 0111011001 x^(073) = 0110010011 x^(074) = 0100000111 x^(075) = 0000101111 x^(076) = 0001011110 x^(077) = 0010111100 x^(078) = 0101111000 x^(079) = 0011010001 x^(080) = 0110100010 x^(081) = 0101100101 x^(082) = 0011101011 x^(083) = 0111010110 x^(084) = 0110001101 x^(085) = 0100111011 x^(086) = 0001010111 x^(087) = 0010101110 x^(088) = 0101011100 x^(089) = 0010011001 x^(090) = 0100110010 x^(091) = 0001000101 x^(092) = 0010001010 x^(093) = 0100010100 x^(094) = 0000001001 x^(095) = 0000010010 x^(096) = 0000100100 x^(097) = 0001001000 x^(098) = 0010010000 x^(099) = 0100100000 x^(100) = 0001100001 x^(101) = 0011000010 x^(102) = 0110000100 x^(103) = 0100101001 x^(104) = 0001110011 x^(105) = 0011100110 x^(106) = 0111001100 x^(107) = 0110111001 x^(108) = 0101010011 x^(109) = 0010000111 x^(110) = 0100001110 x^(111) = 0000111101 x^(112) = 0001111010 x^(113) = 0011110100 x^(114) = 0111101000 x^(115) = 0111110001 x^(116) = 0111000011 x^(117) = 0110100111 x^(118) = 0101101111 x^(119) = 0011111111 x^(120) = 0111111110 x^(121) = 0111011101 x^(122) = 0110011011 x^(123) = 0100010111 x^(124) = 0000001111 x^(125) = 0000011110 x^(126) = 0000111100 x^(127) = 0001111000 x^(128) = 0011110000 x^(129) = 0111100000 x^(130) = 0111100001 x^(131) = 0111100011 x^(132) = 0111100111 x^(133) = 0111101111 x^(134) = 0111111111 x^(135) = 0111011111 x^(136) = 0110011111 x^(137) = 0100011111 x^(138) = 0000011111 x^(139) = 0000111110 x^(140) = 0001111100 x^(141) = 0011111000 x^(142) = 0111110000 x^(143) = 0111000001 x^(144) = 0110100011 x^(145) = 0101100111 x^(146) = 0011101111 x^(147) = 0111011110 x^(148) = 0110011101 x^(149) = 0100011011 x^(150) = 0000010111 x^(151) = 0000101110 x^(152) = 0001011100 x^(153) = 0010111000 x^(154) = 0101110000 x^(155) = 0011000001 x^(156) = 0110000010 x^(157) = 0100100101 x^(158) = 0001101011 x^(159) = 0011010110 x^(160) = 0110101100 x^(161) = 0101111001 x^(162) = 0011010011 x^(163) = 0110100110 x^(164) = 0101101101 x^(165) = 0011111011 x^(166) = 0111110110 x^(167) = 0111001101 x^(168) = 0110111011 x^(169) = 0101010111 x^(170) = 0010001111 x^(171) = 0100011110 x^(172) = 0000011101 x^(173) = 0000111010 x^(174) = 0001110100 x^(175) = 0011101000 x^(176) = 0111010000 x^(177) = 0110000001 x^(178) = 0100100011 x^(179) = 0001100111 x^(180) = 0011001110 x^(181) = 0110011100 x^(182) = 0100011001 x^(183) = 0000010011 x^(184) = 0000100110 x^(185) = 0001001100 x^(186) = 0010011000 x^(187) = 0100110000 x^(188) = 0001000001 x^(189) = 0010000010 x^(190) = 0100000100 x^(191) = 0000101001 x^(192) = 0001010010 x^(193) = 0010100100 x^(194) = 0101001000 x^(195) = 0010110001 x^(196) = 0101100010 x^(197) = 0011100101 x^(198) = 0111001010 x^(199) = 0110110101 x^(200) = 0101001011 x^(201) = 0010110111 x^(202) = 0101101110 x^(203) = 0011111101 x^(204) = 0111111010 x^(205) = 0111010101 x^(206) = 0110001011 x^(207) = 0100110111 x^(208) = 0001001111 x^(209) = 0010011110 x^(210) = 0100111100 x^(211) = 0001011001 x^(212) = 0010110010 x^(213) = 0101100100 x^(214) = 0011101001 x^(215) = 0111010010 x^(216) = 0110000101 x^(217) = 0100101011 x^(218) = 0001110111 x^(219) = 0011101110 x^(220) = 0111011100 x^(221) = 0110011001 x^(222) = 0100010011 x^(223) = 0000000111 x^(224) = 0000001110 x^(225) = 0000011100 x^(226) = 0000111000 x^(227) = 0001110000 x^(228) = 0011100000 x^(229) = 0111000000 x^(230) = 0110100001 x^(231) = 0101100011 x^(232) = 0011100111 x^(233) = 0111001110 x^(234) = 0110111101 x^(235) = 0101011011 x^(236) = 0010010111 x^(237) = 0100101110 x^(238) = 0001111101 x^(239) = 0011111010 x^(240) = 0111110100 x^(241) = 0111001001 x^(242) = 0110110011 x^(243) = 0101000111 x^(244) = 0010101111 x^(245) = 0101011110 x^(246) = 0010011101 x^(247) = 0100111010 x^(248) = 0001010101 x^(249) = 0010101010 x^(250) = 0101010100 x^(251) = 0010001001 x^(252) = 0100010010 x^(253) = 0000000101 x^(254) = 0000001010 x^(255) = 0000010100 x^(256) = 0000101000 x^(257) = 0001010000 x^(258) = 0010100000 x^(259) = 0101000000 x^(260) = 0010100001 x^(261) = 0101000010 x^(262) = 0010100101 x^(263) = 0101001010 x^(264) = 0010110101 x^(265) = 0101101010 x^(266) = 0011110101 x^(267) = 0111101010 x^(268) = 0111110101 x^(269) = 0111001011 x^(270) = 0110110111 x^(271) = 0101001111 x^(272) = 0010111111 x^(273) = 0101111110 x^(274) = 0011011101 x^(275) = 0110111010 x^(276) = 0101010101 x^(277) = 0010001011 x^(278) = 0100010110 x^(279) = 0000001101 x^(280) = 0000011010 x^(281) = 0000110100 x^(282) = 0001101000 x^(283) = 0011010000 x^(284) = 0110100000 x^(285) = 0101100001 x^(286) = 0011100011 x^(287) = 0111000110 x^(288) = 0110101101 x^(289) = 0101111011 x^(290) = 0011010111 x^(291) = 0110101110 x^(292) = 0101111101 x^(293) = 0011011011 x^(294) = 0110110110 x^(295) = 0101001101 x^(296) = 0010111011 x^(297) = 0101110110 x^(298) = 0011001101 x^(299) = 0110011010 x^(300) = 0100010101 x^(301) = 0000001011 x^(302) = 0000010110 x^(303) = 0000101100 x^(304) = 0001011000 x^(305) = 0010110000 x^(306) = 0101100000 x^(307) = 0011100001 x^(308) = 0111000010 x^(309) = 0110100101 x^(310) = 0101101011 x^(311) = 0011110111 x^(312) = 0111101110 x^(313) = 0111111101 x^(314) = 0111011011 x^(315) = 0110010111 x^(316) = 0100001111 x^(317) = 0000111111 x^(318) = 0001111110 x^(319) = 0011111100 x^(320) = 0111111000 x^(321) = 0111010001 x^(322) = 0110000011 x^(323) = 0100100111 x^(324) = 0001101111 x^(325) = 0011011110 x^(326) = 0110111100 x^(327) = 0101011001 x^(328) = 0010010011 x^(329) = 0100100110 x^(330) = 0001101101 x^(331) = 0011011010 x^(332) = 0110110100 x^(333) = 0101001001 x^(334) = 0010110011 x^(335) = 0101100110 x^(336) = 0011101101 x^(337) = 0111011010 x^(338) = 0110010101 x^(339) = 0100001011 x^(340) = 0000110111 x^(341) = 0001101110 x^(342) = 0011011100 x^(343) = 0110111000 x^(344) = 0101010001 x^(345) = 0010000011 x^(346) = 0100000110 x^(347) = 0000101101 x^(348) = 0001011010 x^(349) = 0010110100 x^(350) = 0101101000 x^(351) = 0011110001 x^(352) = 0111100010 x^(353) = 0111100101 x^(354) = 0111101011 x^(355) = 0111110111 x^(356) = 0111001111 x^(357) = 0110111111 x^(358) = 0101011111 x^(359) = 0010011111 x^(360) = 0100111110 x^(361) = 0001011101 x^(362) = 0010111010 x^(363) = 0101110100 x^(364) = 0011001001 x^(365) = 0110010010 x^(366) = 0100000101 x^(367) = 0000101011 x^(368) = 0001010110 x^(369) = 0010101100 x^(370) = 0101011000 x^(371) = 0010010001 x^(372) = 0100100010 x^(373) = 0001100101 x^(374) = 0011001010 x^(375) = 0110010100 x^(376) = 0100001001 x^(377) = 0000110011 x^(378) = 0001100110 x^(379) = 0011001100 x^(380) = 0110011000 x^(381) = 0100010001 x^(382) = 0000000011 x^(383) = 0000000110 x^(384) = 0000001100 x^(385) = 0000011000 x^(386) = 0000110000 x^(387) = 0001100000 x^(388) = 0011000000 x^(389) = 0110000000 x^(390) = 0100100001 x^(391) = 0001100011 x^(392) = 0011000110 x^(393) = 0110001100 x^(394) = 0100111001 x^(395) = 0001010011 x^(396) = 0010100110 x^(397) = 0101001100 x^(398) = 0010111001 x^(399) = 0101110010 x^(400) = 0011000101 x^(401) = 0110001010 x^(402) = 0100110101 x^(403) = 0001001011 x^(404) = 0010010110 x^(405) = 0100101100 x^(406) = 0001111001 x^(407) = 0011110010 x^(408) = 0111100100 x^(409) = 0111101001 x^(410) = 0111110011 x^(411) = 0111000111 x^(412) = 0110101111 x^(413) = 0101111111 x^(414) = 0011011111 x^(415) = 0110111110 x^(416) = 0101011101 x^(417) = 0010011011 x^(418) = 0100110110 x^(419) = 0001001101 x^(420) = 0010011010 x^(421) = 0100110100 x^(422) = 0001001001 x^(423) = 0010010010 x^(424) = 0100100100 x^(425) = 0001101001 x^(426) = 0011010010 x^(427) = 0110100100 x^(428) = 0101101001 x^(429) = 0011110011 x^(430) = 0111100110 x^(431) = 0111101101 x^(432) = 0111111011 x^(433) = 0111010111 x^(434) = 0110001111 x^(435) = 0100111111 x^(436) = 0001011111 x^(437) = 0010111110 x^(438) = 0101111100 x^(439) = 0011011001 x^(440) = 0110110010 x^(441) = 0101000101 x^(442) = 0010101011 x^(443) = 0101010110 x^(444) = 0010001101 x^(445) = 0100011010 x^(446) = 0000010101 x^(447) = 0000101010 x^(448) = 0001010100 x^(449) = 0010101000 x^(450) = 0101010000 x^(451) = 0010000001 x^(452) = 0100000010 x^(453) = 0000100101 x^(454) = 0001001010 x^(455) = 0010010100 x^(456) = 0100101000 x^(457) = 0001110001 x^(458) = 0011100010 x^(459) = 0111000100 x^(460) = 0110101001 x^(461) = 0101110011 x^(462) = 0011000111 x^(463) = 0110001110 x^(464) = 0100111101 x^(465) = 0001011011 x^(466) = 0010110110 x^(467) = 0101101100 x^(468) = 0011111001 x^(469) = 0111110010 x^(470) = 0111000101 x^(471) = 0110101011 x^(472) = 0101110111 x^(473) = 0011001111 x^(474) = 0110011110 x^(475) = 0100011101 x^(476) = 0000011011 x^(477) = 0000110110 x^(478) = 0001101100 x^(479) = 0011011000 x^(480) = 0110110000 x^(481) = 0101000001 x^(482) = 0010100011 x^(483) = 0101000110 x^(484) = 0010101101 x^(485) = 0101011010 x^(486) = 0010010101 x^(487) = 0100101010 x^(488) = 0001110101 x^(489) = 0011101010 x^(490) = 0111010100 x^(491) = 0110001001 x^(492) = 0100110011 x^(493) = 0001000111 x^(494) = 0010001110 x^(495) = 0100011100 x^(496) = 0000011001 x^(497) = 0000110010 x^(498) = 0001100100 x^(499) = 0011001000 x^(500) = 0110010000 x^(501) = 0100000001 x^(502) = 0000100011 x^(503) = 0001000110 x^(504) = 0010001100 x^(505) = 0100011000 x^(506) = 0000010001 x^(507) = 0000100010 x^(508) = 0001000100 x^(509) = 0010001000 x^(510) = 0100010000 x^(511) = 0000000001

  • reiman
  • ベストアンサー率62% (102/163)
回答No.8

N=8となっていましたがこちらの方で8次の原始多項式も見ていたので 結果とリストが食い違っていました。 結果はもちろん9次ですからN=9の結果です。 訂正します。 素数体2上の原始多項式を求めるプログラムをphpで作ってみたのですが 作る過程でプログラムを作るのに都合のよい条件は既に述べたものではなく次の方がいいという結論に達しました。 素数体2上のN次原始多項式f(x)の条件: (1) x^(2^N-1)≡1 (mod f(x)) であること (2) 0<n<2^N-1 なる整数nにおいて x^n≡1 (mod f(x)) でないこと この条件だと既約多項式であることを要求する必要がないのでプログラミングが楽でした。 もちろん原始多項式は既約多項式であることに変わりはありません。 なお、既約多項式表と原始多項式表を同時に求める場合には先の条件の方が良いのです。 プログラムはPHPで作成しました。 なお、結果の原始多項式は左詰めで 高次から低次に向かって各次数の係数のみを並べて 1行1原始多項式で表示しました。 <?php $N=9; $c=pow(2,$N); echo"{$N} 次原始多項式:<br/>"; for($p=1;$p<$c;$p++) { $f=$c^$p; $a=1; for($i=1;$i<$c;$i++) { $a<<=1; if(($a & $c)==$c)$a^=$f; if($a==1)break; } if($i==($c-1)) { $s=sprintf("%b (%d xor %d)",$f,$c,$p); echo"{$s}<br/>"; } } ?> 結果: 9 次原始多項式: 1000010001 (512 xor 17) 1000011011 (512 xor 27) 1000100001 (512 xor 33) 1000101101 (512 xor 45) 1000110011 (512 xor 51) 1001011001 (512 xor 89) 1001011111 (512 xor 95) 1001101001 (512 xor 105) 1001101111 (512 xor 111) 1001110111 (512 xor 119) 1001111101 (512 xor 125) 1010000111 (512 xor 135) 1010010101 (512 xor 149) 1010100011 (512 xor 163) 1010100101 (512 xor 165) 1010101111 (512 xor 175) 1010110111 (512 xor 183) 1010111101 (512 xor 189) 1011001111 (512 xor 207) 1011010001 (512 xor 209) 1011011011 (512 xor 219) 1011110101 (512 xor 245) 1011111001 (512 xor 249) 1100010011 (512 xor 275) 1100010101 (512 xor 277) 1100011111 (512 xor 287) 1100100011 (512 xor 291) 1100110001 (512 xor 305) 1100111011 (512 xor 315) 1101001111 (512 xor 335) 1101011011 (512 xor 347) 1101100001 (512 xor 353) 1101101011 (512 xor 363) 1101101101 (512 xor 365) 1101110011 (512 xor 371) 1101111111 (512 xor 383) 1110000101 (512 xor 389) 1110001111 (512 xor 399) 1110110101 (512 xor 437) 1110111001 (512 xor 441) 1111000111 (512 xor 455) 1111001011 (512 xor 459) 1111001101 (512 xor 461) 1111010101 (512 xor 469) 1111011001 (512 xor 473) 1111100011 (512 xor 483) 1111101001 (512 xor 489) 1111111011 (512 xor 507) N=8の場合の結果: 8 次原始多項式: 100011101 (256 xor 29) 100101011 (256 xor 43) 100101101 (256 xor 45) 101001101 (256 xor 77) 101011111 (256 xor 95) 101100011 (256 xor 99) 101100101 (256 xor 101) 101101001 (256 xor 105) 101110001 (256 xor 113) 110000111 (256 xor 135) 110001101 (256 xor 141) 110101001 (256 xor 169) 111000011 (256 xor 195) 111001111 (256 xor 207) 111100111 (256 xor 231) 111110101 (256 xor 245)

  • reiman
  • ベストアンサー率62% (102/163)
回答No.7

素数体2上の原始多項式を求めるプログラムをphpで作ってみたのですが 作る過程でプログラムを作るのに都合のよい条件は既に述べたものではなく 次の方がプログラム作成上いいという結論に達しました。 素数体2上のN次原始多項式f(x)の条件: (1) x^(2^N-1)≡1 (mod f(x)) であること (2) 0<n<2^N-1 なる整数nにおいて x^n≡1 (mod f(x)) でないこと この条件だと既約多項式である必要がないのでプログラミングが楽でした。 プログラムはPHPで作成しました。 なお、結果の原始多項式は左詰めで 高次から低次に向かって各次数の係数のみを並べて 1行1原始多項式で表示しました。 <?php $N=8; $c=pow(2,$N); for($p=1;$p<$c;$p++) { $f=$c^$p; $a=1; for($i=1;$i<$c;$i++) { $a<<=1; if(($a & $c)==$c)$a^=$f; if($a==1)break; } if($i==($c-1)) { $s=sprintf("%b (%d xor %d)",$f,$c,$p); echo"{$s}<br/>"; } } ?> 結果: 1000010001 (512 xor 17) 1000011011 (512 xor 27) 1000100001 (512 xor 33) 1000101101 (512 xor 45) 1000110011 (512 xor 51) 1001011001 (512 xor 89) 1001011111 (512 xor 95) 1001101001 (512 xor 105) 1001101111 (512 xor 111) 1001110111 (512 xor 119) 1001111101 (512 xor 125) 1010000111 (512 xor 135) 1010010101 (512 xor 149) 1010100011 (512 xor 163) 1010100101 (512 xor 165) 1010101111 (512 xor 175) 1010110111 (512 xor 183) 1010111101 (512 xor 189) 1011001111 (512 xor 207) 1011010001 (512 xor 209) 1011011011 (512 xor 219) 1011110101 (512 xor 245) 1011111001 (512 xor 249) 1100010011 (512 xor 275) 1100010101 (512 xor 277) 1100011111 (512 xor 287) 1100100011 (512 xor 291) 1100110001 (512 xor 305) 1100111011 (512 xor 315) 1101001111 (512 xor 335) 1101011011 (512 xor 347) 1101100001 (512 xor 353) 1101101011 (512 xor 363) 1101101101 (512 xor 365) 1101110011 (512 xor 371) 1101111111 (512 xor 383) 1110000101 (512 xor 389) 1110001111 (512 xor 399) 1110110101 (512 xor 437) 1110111001 (512 xor 441) 1111000111 (512 xor 455) 1111001011 (512 xor 459) 1111001101 (512 xor 461) 1111010101 (512 xor 469) 1111011001 (512 xor 473) 1111100011 (512 xor 483) 1111101001 (512 xor 489) 1111111011 (512 xor 507)

  • reiman
  • ベストアンサー率62% (102/163)
回答No.6

間違いではないのですがゴミがついています。 1,7,73の約数→1,7,73 直さなくてもたまたま間違いではないですがゴミがあると分かりにくいので削除すべきだと思いました。 位数2素数体係数多項式を位数2素数体係数n次既約多項式g(x)で割った余りが同一のものを同一視するという位数2素数体係数多項式の集合を考えるとそれは位数2^nの有限体(ガロア体GF(2^n))になる。 そしてGF(2^n)-{0}は乗法について有限群になる。 前記有限体上においてxのべき乗からなる巡回群GはGF(2^n)-{0}の部分群なのでその位数はGF(2^n)-{0}の位数2^n-1の約数である。 もしg(x)が原始多項式でないならばGの位数は2^n-1未満であって2^n-1の約数である。 従ってGの位数が2^n-1未満の2^n-1の約数でなければGの位数はg(x)は2^n-1であり原始多項式ということになる。 n=9の場合: 「2^9-1未満の2^9-1の約数」は1,7,73なのでGの位数が1,7,73の約数でなければg(x)は原始多項式ということになる。 x^1をg(x)で割った余りが1でなく(これは当たり前なので不要) x^7をg(x)で割った余りが1でなく(これは当たり前なので不要) x^73をg(x)で割った余りが1でない ならばGの位数は2^9-1=511ということになりg(x)は原始多項式ということになる。 (2^9-1=511=7x73) 従ってNo1,No2,No3,No4は間違いで原始多項式の条件は 9次多項式f(x)が原始多項式である条件: (1)既約多項式であること。 (2)x^73をf(x)で割った余りが1でないこと。

waka328
質問者

お礼

ご回答ありがとうございます。 専門用語でけっこうわからないところがあるので、 とりあえず一つずつ解決していこうと思います! また質問するかもしれないです(^0^;

  • reiman
  • ベストアンサー率62% (102/163)
回答No.5

またまた間違いが有ったので修正(n-1とnの取り違えと他にも) 多項式をn次既約多項式g(x)で割った余りが同一のものを同一視するという多項式の集合を考えるとそれは位数2^nの有限体(ガロア体GF(2^n))になる。 そしてGF(2^n)-{0}は乗法について有限群になる。 前記有限体上においてxのべき乗からなる巡回群GはGF(2^n)-{0}の部分群なのでその位数はGF(2^n)-{0}の位数2^n-1の約数である。 もしg(x)が原始多項式でないならばGの位数は2^n-1未満であって2^n-1の約数である。 従ってGの位数が2^n-1未満の2^n-1の約数でなければGの位数はg(x)は2^n-1であり原始多項式ということになる。 n=9の場合: 「2^9-1未満の2^9-1の約数」は1,7,73なのでGの位数が1,7,73の約数でなければg(x)は原始多項式ということになる。 x^1をg(x)で割った余りが1でなく(これは当たり前なので不要) x^7をg(x)で割った余りが1でなく(これは当たり前なので不要) x^73をg(x)で割った余りが1でない ならばGの位数は2^9-1=511ということになりg(x)は原始多項式ということになる。 (2^9-1=511=7x73) 従ってNo1,No2,No3,No4は間違いで原始多項式の条件は 9次多項式f(x)が原始多項式である条件: (1)既約多項式であること。 (2)x^73をf(x)で割った余りが1でないこと。 でした。 いいわけとしては簡単な問題なので余り考えずに回答してしまいました。 教訓としては簡単な問題であってもよく考えるべきだとこうことです。

  • reiman
  • ベストアンサー率62% (102/163)
回答No.4

間違いが有ったので修正 多項式をn-1次既約多項式g(x)で割った余りが同一のものを同一視するという多項式の集合を考えるとそれは位数2^nの有限体(ガロア体GF(2^n))になる。 そしてGF(2^n)-{0}は乗法について有限群になる。 xのべき乗で生成される巡回群GはGF(2^n)-{0}の部分群なのでその位数 はGF(2^n)-{0}の位数2^n-1を割り切る。 もしg(x)が原始多項式でないならばGの位数は2^n-1以外の2^n-1の約数である。 従ってGの位数が「2^n-1でない2^n-1の最大の約数」の約数でなければg(x)は原始多項式ということになる。 n=10の場合: 「2^10-1でない2^10-1の最大の約数」は341なのでGの位数が341の約数でなければg(x)は原始多項式ということになる。 x^341をg(x)で割った余りが1でないならばGの位数は341を越えることになり同時にGの位数は2^10-1の約数であるからGの位数は2^10-1=1023ということになりg(x)は原始多項式ということになる。 従ってNo1,No2,No3は間違いで原始多項式の条件は 9次多項式f(x)が原始多項式である条件: (1)既約多項式であること。 (2)x^341をf(x)で割った余りが1でないこと。 でした。

  • reiman
  • ベストアンサー率62% (102/163)
回答No.3

多項式をn-1次既約多項式g(x)で割った余りが同一のものを同一視するという多項式の集合を考えるとそれは位数2^nの有限体(ガロア体GF(2^n))になる。 そしてGF(2^n)-{0}は乗法について有限群になる。 xのべき乗で生成される巡回群GはGF(2^n)-{0}の部分群なのでその位数 はGF(2^n)-{0}の位数2^n-1を割り切る。 もしg(f)が原始多項式でないならばGの位数は2^n-1以外の2^n-1の約数である。 従ってGの位数が「√(2^n-1)を上回らない2^n-1の最大の約数」の約数でなければg(x)は原始多項式ということになる。 n=10の場合: 「√(2^10-1)を上回らない2^10-1の最大の約数」は31なのでGの位数が31の約数でなければg(x)は原始多項式ということになる。 x^31をg(x)で割った余りが1でないならばGの位数は√(2^10-1)を越えることになり同時にGの位数は2^10-1の約数であるからGの位数は2^10-1=1023ということになりg(x)は原始多項式ということになる。

  • reiman
  • ベストアンサー率62% (102/163)
回答No.2

変換ミス:規約多項式→既約多項式 位数2の素数体を係数とする9次多項式f(x)が原始多項式である条件: (1)f(x)が既約多項式であること。 (2)x^31をf(x)で割ったあまりが1でないこと。 解説: (1)はいうまでもない。 (2)によって 1=x^0,x=x^1,x^2,x^3,x^4,...,x^(2^10-2)=x^1022 をf(x)で割った余りがすべて異なることが保証される。

waka328
質問者

お礼

ご回答ありがとうございます。 「(2)x^31をf(x)で割ったあまりが1でないこと。」 はなぜx^31なのでしょうか?どう意味があるのですか??

  • reiman
  • ベストアンサー率62% (102/163)
回答No.1

位数2の素数体を係数とする9次多項式f(x)が原始多項式である条件: (1)f(x)が規約多項式であること。 (2)x^31をf(x)で割ったあまりが1でないこと。 解説: (1)はいうまでもない。 (2)によって 1=x^0,x=x^1,x^2,x^3,x^4,...,x^(2^10-2) をf(x)で割った余りがすべて異なることが保証される。 注)2^10-1=3x11x31

関連するQ&A

  • M系列の生成多項式と原始多項式について

    生成多項式や原始多項式に関する様々な投稿を見ましたが、 いまいち知りたいことがわからなかったので質問いたします。 周期 2^n - 1 のM系列を生成するには、{0,1}を体とする n次の原始多項式を生成多項式として用いるということまでは わかったのですが、このn次の原始多項式の求め方について、 いまいち理解できません。 例えば、周期 2^4 - 1 = 15のM系列を生成するには原始多項式           x^4 + x^1 + 1 ー (1) を用いるということですが、             x^4 + x^2 + 1 ー (2) ではM系列を生成できませんでした。 この2式の違いを理解していないことが原始多項式の求め方を 理解できない原因だと思うのですが、どなたかお詳しい方がいましたら、 ご教授お願いいたします。

  • GF(5)のガロア体の原始多項式

    多値M系列について勉強にどうしても必要なため質問です。 GF(5)の原始多項式はいったいいくつ存在し、具体的にどういった値をもつのでしょうか? 自分でがんばって計算し 「x^2+x^1+2」 がGF(5)の原始多項式の一つであることがわかったのですが、その他は存在するのでしょうか、、、? GF(2^n)の原始多項式の解説はよく見るのですが、GF(5)がなくて困っています。

  • 原始多項式の証明

    原始多項式の証明 すみませんこの問題がどうしてもわかりません。だれか教えていただけないでしょうか? x^4+x+1(この式はFp[x]に含まれる、p=2)はFp上の4次原始多項式であることを示せ。 まず、既約多項式であることを証明して、原始多項式であることを証明するのだと思うのですが・・・ どうかお願いします。

  • 原始多項式について

    原始多項式について下記の問題と証明が合っているか確認したいのですが、 まず、原始多項式f(x)はf(x)=a0x^n+…+an-1x +anにおいてa0, …, an-1, anの最大公約元が可逆元の時を言います。 [問題] 一意分解環Aとその商体Kに対して自然な準同型π: A→K、a→a/1を定め F(x)=π(a0)x^n+…+π(an-1)x+π(an) f(x)=a0x^n+…+an-1x+an と置いた時、F(x), f(x)は原始多項式 [証明] Kは体なのでπ(ai)∈Kは可逆元でその最大公約元も可逆元。従ってF(x)は原始多項式。 またπ(ai)の逆元π(ai)^-1についてπ(ai)^-1=π(ai^-1) より逆元ai^-1がありf(x)も原始多項式である。 以上、考え方が合っているかご教授頂けますと幸いです。よろしくお願いいたします。

  • 超高次の多項式の原始関数を求めたいのですが

    f(x) = (n-x)(n-1-x)(n-2-x).....(n-m-x) n: 大きな自然数(例えば1000000など) m: n>mの大きな自然数(例えば100000など) という多項式 f(x)の原始関数を高速に求めるアルゴリズムを考えて います. f(x)を具体的に展開してから原始関数を求めれば簡単だと思い,上記 の式を展開するプログラムを書いたのですが,組み合わせの計算を する必要が生じて,mの値が大きな時に高速に計算できませんでした. 原始関数を直接導出しようと,いろいろ場合分けして考えてみたので すが挫折しました. アドバイス頂けませんでしょうか? よろしくお願いします.

  • 原始多項式について

    一意分解環Aとその多項式環A[x]∋f(x)について、次の(1), (2)は同値であることを証明したいのですが、 (1)f(x)は原始多項式である (2)任意の素元p∈Aに対して、f(x)をpを法として考えた多項式f'(x)∈(A/(p))[x]は零でない (2)のf(x)をpを法として考えた多項式とは a0, b0, …, an, bn∈Aを用いて f'(x)=(a0/pb0)x^n+…+(an-1/pbn-1)x+(an/pbn) と表せる事(だと思う、、)で、 原始多項式とは f(x)=a0x^n+…+an-1x+anについて、a0, …,anの最大公約元が可逆元であることなので、 (2)⇒(1)はf'(x)=(a0/pb0)x^n+…+(an-1/pbn-1)x+(an/pbn)が零でなければ、a0, …,anの最大公約元が可逆元となるように示して行けば良いと思うのですが さっぱり分かりません。 (1)⇔(2)の証明をご教授頂けると助かります。 よろしくお願いいたします。

  • 多項式について

    中学校3年生です。 僕は今、駿台文庫の「受験数学の理論 数と式」という本で勉強をしているのですが、 多項式をf(x)と表していました。 どうして、関数のときに使うf(x)を使うのですか。 教えてください。お願いします。

  • 最小多項式

    GF(2^4)の原始元αの最小多項式m1(x)=x^4+x+1とする。 m1(α)=0から、GF(2^4)の元をαのべき表現で表示できました。 ここで、すべての元において最小多項式を求めたいのですが。 講義ノートによると「最小多項式とは、その元を根とする次数最小の多項式」と書いてありました。 そうならば、α^3の最小多項式は(x-α^3)のはず、しかし、 ここで、α^6とα^12を導入し、α^3の最小多項式が m3(x)=(x-α^3)(x-α^6)(x-α^12) となるらしいです。また、一般的にAをf(x)=0の根とすると、A^{2*i}もまた、f(x)=0の根であることは知っているのですが、 なぜ最高次数を3にする必要があったのでしょうか? 最高次数が3以外じゃだめなんですか。例えば(x-α^3)(x-α^6)のように。 また、数の候補としてはα^3、α^6、α^12だけでなく、α^18、α^24、、、、、、、 膨大に候補があがると思います。α^3の最小多項式を考えていますが、 ほぼ無限に候補があがるため、これで、すべての元をあらわしてしまいそうなんですが… こうなると、もはやα^3のペアとして、α^6とα^12のみならず、 どんな元でもよいと言うことにならないのでしょうか? もし、ならないのであれば任意の元をかんがえて最小多項式を作ろうとしても、 このような事態は起きないのか? わからないので是非教えてください。お願いします。

  • 多項式の除法

    数学の問題がわかりません。 ⅹに関する多項式A(x)、B(x)を多項式F(x)=x^+x+1 で割った余りを それぞれx+1、2x+3 とするとき  A(x)×B(x)をF(x)で割った余りを求めよ というものです。 もし解かる方いらっしゃいましたら、よければヒントだけでもいただけませんか。 よろしくお願いします。

  • 2元多項式g(x)により生成される巡回符号について

    2元多項式g(x)により生成される巡回符号について g(x)=x^3+x+1により生成される巡回符号の求め方を教えてください。 お願いします。