コラッツ予想がとけたらいいな at MATH
[2ch|▼Menu]
[前50を表示]
900:786
18/05/05 23:35:20.36 WoiID/ke.net
>>872
乙です。
重ね重ねありがとうございます。

>>809で挙げたものの証明が終わってないので
ちょっと進めときます。
・n が 5 以上の素数、Z/nZ において 2 が原始根、k≠0 の場合
まず、k=1,2,…,n-1 の場合は n=5 の場合と同様。
定理
T を木とする。p を 5 以上の素数とし、Z/pZ において 2 が原始根であると仮定する。
k を 1,2,…,n-1 のいずれかとする。このとき、ある a∈T が存在して a≡k (mod p) となる。
証明
n=5 の場合(>>838) と全く同様なので省略。□

これで>>809の残りは4つめと5つめですが、5つめはプログラムで確認できることなので
あとは4つめだけを書いていくことにします。
今日はちょっと時間がないので明日にでも。

901:132人目の素数さん
18/05/06 13:40:43.22 JU60Gd4S.net
新参です
コラッツ予想が解ける一歩手前でしたが一瞬寝落ちして表が消えた状態で上書き保存されて泣きそうです
証明はきわめてシンプルになります

902:132人目の素数さん
18/05/06 16:04:17.20 mu78La6l.net
>>875
表を早くつくりなおすんだ!

903:786
18/05/06 16:07:53.88 qQXj/e4z.net
昨日の続き。
群論を使います。
Z/nZ の乗法群を (Z/nZ)* と書きます。

・n が 5 以上の素数、Z/nZ において 2 が原始根、k=0 の場合
素数であることを強調するために、n=p とおく。
概ね>>853,>>855のアルゴリズムに沿って進める。
まず (Z/3pZ)* における 2 の位数を求める。
(Z/3pZ)* は (Z/3Z)*×(Z/pZ)* に同型である。
(Z/3Z)*, (Z/pZ)* それぞれにおいて 2 の位数は 2, p-1 であるから、
(Z/3pZ)* における 2 の位数はそれらの最小公倍数 p-1 である。
(Z/3pZ)* の位数は 2(p-1) であるから、2 で生成される部分群 B1 の指数は 2 である。
(Z/3pZ)* の B1 による剰余類を {B1, B2} とおく。
さて、T を木とし、3 の倍数でも p の倍数でもない b∈T を任意に取る。
b を mod 3p で見た時に b∈B1 であれば、ある d∈N で
 b*2^d≡1 (mod 3p)
とできるので、あとは>>791補題(4)によって p の倍数を得る。
以下、b∈B2 とする。
射影 Z/9pZ→Z/3pZ による B2 の引き戻しを C とおく。
b を mod 9p で見ると b∈C である。
もし上と同様に>>791補題(4)を用いて B1 の元を得られれば、予想の証明が完了する。
式で表すと、
 b*2^d≡1 (mod 3) かつ (b*2^d-1)/3≡2^e (mod 3p)
を満たす d,e∈N が存在すればよいことになる。
これはまとめて一つの式で
 b*2^d-1≡3*2^e (mod 9p) …@
と表せる。
@を満たす d,e が存在するかどうかを考える
ここから p≡1 (mod 3) か p≡2 (mod 3) かで状況が変わる。

904:786
18/05/06 16:09:14.44 qQXj/e4z.net
定理
上の状況で p≡2 (mod 3) のとき、@を満たす d,e が存在する。
したがって、この場合>>790の予想が成り立つ。
証明
(Z/9pZ)* における 2 の位数を調べる。
(Z/9pZ)* は (Z/9Z)*×(Z/pZ)* に同型である。
(Z/9Z)*, (Z/pZ)* それぞれにおいて 2 の位数は 6, p-1 であるから
(Z/3pZ)* における 2 の位数はそれらの最小公倍数 3(p-1) である。
一方 C の要素の個数を考えると、
Z/9pZ→Z/3pZ の核が {0,3p,6p} であることから
 |C|=3*|B2|=3(p-1)
となり、これは 2 の位数と一致する。
C が 2 倍写像で閉じていることから、
C のどの2元も 2 を何回かかけることで互いに移りあう。
ここで、整数 c を
 c≡1 (mod 9) かつ c≡2 (mod p)
を満たすようにとる。
c が mod 9p で C に属することを確かめる。
そのためには、c が mod 3p で 2 の累乗で表せないことを示せばよい。
c≡2^m (mod 3p) と仮定すると
2^m≡c≡1 (mod 3) かつ 2^m≡c≡2 (mod p)
であるが、第1式より m は偶数、第2式より m は奇数なので矛盾。
したがって、c が mod 9p で C に属する。

905:786
18/05/06 16:10:09.58 qQXj/e4z.net
C の2元は 2 を何回かかけることで互いに移りあうので、
方程式@の b を c に変えても解の有無は変わらない。そこで方程式
 c*2^d-1≡3*2^e (mod 9p)
を考える。この式が成り立つことは、mod 9, mod p で両辺が等しいことと同値。
c の取り方から、
 2^d-1≡3*2^e (mod 9) …A
 2^(d+1)-1≡3*2^e (mod p) …B
の共通解を探せばよいことになる。
Aを解くと、
「d≡2 (mod 6) かつ e が偶数」または「d≡4 (mod 6) かつ e が奇数」
を得る。
前者の場合、d=6d'+2, e=2e' とおいてBに代入すると
 2^(6d'+3)-1≡3*2^(2e') (mod p) …C
となる。ここで、Z/pZ において 2 が原始根であることから、
2 の偶数乗であることと 0 でない平方数であることは同値。
さらに、2 の位数 p-1 は 3 の倍数でないから、2^3=8 も原始根である。
したがって、2^(6d') は 0 でない全ての平方数をとり得る。
2^(6d'+2) も0 でない全ての平方数をとり得る。
このことから、Cは方程式
 2x^2-1≡3y^2 (mod p) …D
と同値である。同様にして、Aの解が後者であった場合は
 2x^2-1≡6y^2 (mod p) …E
に同値である。
2 が原始根であるから、3,6 のいずれかは平方数である。
よって、D,Eのいずれかは方程式
 2x^2-1≡y^2 (mod p)
に同値。これは x=y=1 を解に持つ。したがって元の@も解を持つ。□

906:786
18/05/06 16:11:07.90 qQXj/e4z.net
p≡1 (mod 3) の場合も同様に考えると、
C が 3 つのグループに分かれてしまうため、考えるべき方程式が増える。。
計算は省略するが、この場合は次のようになる。
F 3x^2+1≡8y^6 (mod p)
G 6x^2+1≡32y^6 (mod p)
H 3x^2+1≡32y^6 (mod p)
I 6x^2+1≡4y^6 (mod p)
J 3x^2+1≡2y^6 (mod p)
K 6x^2+1≡8y^6 (mod p)
について
「FとGの少なくとも一つが解を持つ」かつ
「HとIの少なくとも一つが解を持つ」かつ
「JとKの少なくとも一つが解を持つ」
が成り立てば、@は解を持つ。
なお、解が見つからなかったとしても
上で書いたアルゴリズムのように次は Z/27pZ で考えて D を構成して…と進めることができる。

907:righ1113
18/05/06 16:36:10.03 97gvpP/W.net
今日は(7)まで作りました。残りは繰り返し処理です。
*CollatzMod> main
素数pを入力してください
7
Z/pZ : [0,1,2,3,4,5,6]
A : [[0],[1,2,4],[3,5,6]]
Z/3pZ : [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
B : [[1,2,4,8,11,16],[5,10,13,17,19,20]]
(3) tuple : [(0,Just 0),(1,Just 0),(1,Nothing),(2,Just 1),(1,Just 1),(2,Just 0)]
(4) A' No. : [0]
C : [[5,10,17,20,34,40],[13,19,26,38,41,52],[31,47,55,59,61,62]]
(6) tuple : [(0,Nothing),(0,Just 1),(0,Just 0)]
(7) B' No. : [0]
*CollatzMod>

908:righ1113
18/05/06 16:38:47.09 97gvpP/W.net
現状のソースも貼っておきます。
import Data.List (nub, sort, findIndex, (\\), intersect)
import Data.Maybe (fromJust)
twoTimes :: Int -> Int -> [Int]
twoTimes x p = take p $ iterate (\y -> y*2 `mod` p) x
makeA :: Int -> [[Int]]
makeA p = nub $ map sort [nub $ twoTimes x p | x <- [0..p-1]]
makeB :: Int -> [[Int]]
makeB p = nub $ map sort [nub $ twoTimes x (3*p) | x <- [0..(3*p)-1], x `mod` 3 /= 0, x `mod` p /= 0]
findA :: Int -> Int -> Int
findA x p = fromJust $ findIndex (elem x) (makeA p)
findB :: Int -> Int -> Maybe Int
findB x p = findIndex (elem x) (makeB p)
findX :: Int -> [(Int, Maybe Int)]
findX p = nub [(findA x p, findB (3*x+1 `mod` p) p) | x <- [0..p-1]]
-- (4)A1,A2,…のうち、全てのBjとの組が得られていないもの を調査
makeFour' :: Int -> Int -> Bool
makeFour' x p = [Just y | y <- [0..((length $ makeB p) -1)]] /= sort [v | (k, v) <- findX p, v /= Nothing, k==x]
makeFour :: Int -> [Int]
makeFour p = filter (\x -> makeFour' x p) [0..((length $ makeA p) -1)]
-- 組(A',Bj)が得られていないようなBj を見つける
makeCBefore :: Int -> Int -> [Int]
makeCBefore x p = [0..((length $ makeB p) -1)] \\ [fromJust v | (k, v) <- findX p, v /= Nothing, k==x]
-- Bjの元
makeCBefore2 :: Int -> Int -> [Int]
makeCBefore2 x p = concat [(makeB p) !! y | y <- makeCBefore x p]
makeC :: Int -> Int -> [[Int]]
makeC x p = nub $ map sort [nub $ twoTimes y (9*p) | y <- [0..(9*p)-1], elem (y `mod` (3*p)) (makeCBefore2 x p)]

909:righ1113
18/05/06 16:41:20.99 97gvpP/W.net
makeCAfter :: Int -> Int -> [Int]
makeCAfter x p
= concat [(makeB p) !! y | y <- intersect [0..((length $ makeB p) -1)] [fromJust v | (k, v) <- findX p, v /= Nothing, k==x]]
findC :: Int -> Int -> Int -> Maybe Int
findC x y p = findIndex (elem x) (makeC y p)
findY :: Int -> Int -> [(Int, Maybe Int)]
findY x p = nub [(fromJust $ findB y p, findC (3*y+1 `mod` p) x p) | y <- makeCAfter x p]
-- (7)B1,B2,…のうち、全てのCjとの組が得られていないもの を調査
makeSeven' :: Int -> Int -> Int -> Bool
makeSeven' x y p = [Just z | z <- [0..((length $ makeC y p) -1)]] /= sort [v | (k, v) <- findY y p, v /= Nothing, k==x]
makeSeven :: Int -> Int -> [Int]
makeSeven y p
= nub $ intersect [k | (k, _) <- findY y p] (filter (\x -> makeSeven' x y p) [0..((length $ makeB p) -1)])
main = do
putStrLn ("素数pを入力してください")
pStr <- getLine
let p = read pStr :: Int
putStrLn ("Z/pZ : " ++ show([0..p-1]))
putStrLn ("A : " ++ show(makeA p))
putStrLn ("Z/3pZ : " ++ show([0..(3*p)-1]))
putStrLn ("B : " ++ show(makeB p))
putStrLn ("(3) tuple : " ++ show(findX p))
putStrLn ("(4) A' No. : " ++ show(makeFour p))
let q1 = 0 -- A' No.
putStrLn ("C : " ++ show(makeC q1 p))
putStrLn ("(6) tuple : " ++ show(findY q1 p))
putStrLn ("(7) B' No. : " ++ show(makeSeven q1 p))
-- 上記3行を繰り返し処理すれば良い
-- let q2 = 0 -- B' No.

910:132人目の素数さん
18/05/06 16:59:28.35 Lj2V2cy1.net
>>881
乙です。
もうプログラムも完成間近か
予定を前倒ししそうな勢いですな。
素晴らしいことです。

911:132人目の素数さん
18/05/06 17:07:57.99 Lj2V2cy1.net
意外と行数がすくないですがこれがHaskellのパワーなんですかね?

912:righ1113
18/05/06 17:15:25.28 cvSfTs6f.net
>>885
そうですHaskellのチカラです。
1行で5コぐらい事をおこなっていて、高密度に圧縮されています。

913:786
18/05/06 17:32:23.25 qQXj/e4z.net
>>881
乙です。
あれ、もしかして修正前のもので作ってる?
もしよければ>>855の修正バージョンでお願いしたいなーと

914:132人目の素数さん
18/05/06 17:36:44.75 Lj2V2cy1.net
おおっとw 修正依頼来ましたかw
>>1ガンバ!w

915:righ1113
18/05/06 17:40:56.75 Hcxj/bc9.net
>>887
あれ、修正前で作ってますかね?!
(7)が違うのかな〜

916:786
18/05/06 17:45:56.96 qQXj/e4z.net
>(7)B1,B2,…のうち、全てのCjとの組が得られていないもの を調査
修正後ではこの操作が不要で B' というものがそもそも現れないはずなので…
すみませんがよろしくお願いします。

917:righ1113
18/05/06 18:03:25.39 Hcxj/bc9.net
>>890
あれ〜
了解ですっ

918:132人目の素数さん
18/05/06 18:06:24.27 Lj2V2cy1.net
まあ開発にハプニングは付き物ですねw
それ込みで予定通りくらいですかね?

919:righ1113
18/05/06 18:28:36.71 Hcxj/bc9.net
>>892
まあなんとかなると思います。

920:132人目の素数さん
18/05/06 19:30:01.21 Lj2V2cy1.net
>>1って前、グーグルドライブでファイル公開してたよね?
今回のファイルもグーグルドライブとかで公開してくれないですか?
インデントが消えてるのかなんなのか>>882-883コピペじゃ上手く動かないみたい。

921:132人目の素数さん
18/05/06 19:48:44.04 Lj2V2cy1.net
UTF-8がどうとかいわれたので日本語けしてインデントつけたら動いたみたいです。
19を入力してみました。
$ ./collatz.exe
19
input num
Z/pZ : [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
A : [[0],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]]
Z/3pZ : [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]
B : [[1,2,4,7,8,14,16,25,28,29,32,41,43,49,50,53,55,56],[5,10,11,13,17,20,22,23,26,31,34,35,37,40,44,46,47,52]]
(3) tuple : [(0,Just 0),(1,Just 0),(1,Just 1),(1,Nothing)]
(4) A' No. : [0]
C : [[5,10,11,20,22,40,44,80,83,88,91,127,131,149,151,160,161,166],[13,23,26,37,46,52,67,74,79,92,97,104,119,125,134,145,148,158],[17,31,34,35,47,62,68,70,77,94,101,103,109,124,136,137,140,154]]
(6) tuple : [(0,Nothing),(0,Just 1),(0,Just 0),(0,Just 2)]
(7) B' No. : []

922:132人目の素数さん
18/05/06 19:51:42.14 Lj2V2cy1.net
まあ、なんにしても>>790がこのプログラムを自分のマシンで動かせるところまではなんとか持っていきたいですねぇ

923:
18/05/06 20:08:57.95 JU60Gd4S.net
一応酉
コラッツ数列について綺麗な法則性を見つけました
簡単な計算規則の適用で4→2→1ループまでの計算回数を半分以下にできます
早く完成させねば

924:132人目の素数さん
18/05/06 22:03:49.10 Lj2V2cy1.net
>>790のPCってOSは何ですか?
Haskell動かせるようになってほしいんですが。

925:786
18/05/06 23:00:25.05 qQXj/e4z.net
>>896 >>898
私としては今は証明を考えるのが楽しいので
プログラムはそのうち気が向いたら…ぐらいに思ってたのですが
一応OSはメインのPCが windows8.1, 他に windows10 も使える環境にあります。
あ、よく見たら>>895で n=19 が証明できてますね。

926:132人目の素数さん
18/05/07 12:09:02.03 Ozy22ya3.net
>>1のhaskell環境ってどうなってますか?
合わせられるならなるべくあわせたほうがいいよね?

927:132人目の素数さん
18/05/07 12:16:14.19 Ozy22ya3.net
できればこれを機にプログラムに目覚めてほしいw
まあ自分でプログラム書くところまでいかなくても
せっかく>>1がここまで頑張ったので プログラム動かすだけでも試してほしいな



929:¥
18/05/07 13:13:44.80 EWP32cBY.net


930:¥
18/05/07 13:14:03.60 EWP32cBY.net


931:¥
18/05/07 13:14:23.45 EWP32cBY.net


932:¥
18/05/07 13:14:42.21 EWP32cBY.net


933:¥
18/05/07 13:15:01.74 EWP32cBY.net


934:¥
18/05/07 13:15:18.92 EWP32cBY.net


935:¥
18/05/07 13:15:36.84 EWP32cBY.net


936:¥
18/05/07 13:15:53.64 EWP32cBY.net


937:¥
18/05/07 13:16:10.16 EWP32cBY.net


938:¥
18/05/07 13:16:27.06 EWP32cBY.net


939:righ1113
18/05/07 19:46:11.20 En8a1JvF.net
>>900
自分の環境はWindows10で、
Haskell Platform 8.0.2-a
GHC 8.0.2
です。
最新版のHaskell Platformでも問題ないと思います。

940:132人目の素数さん
18/05/07 20:24:25.94 lWPS9oWM.net
>>912
乙です。
>>895>>1が書きかけのプログラムに19を食わせただけなのでちゃんと証明になってるかわかんないです。
証明になってるんですかね?
>>790はせっかく才能あるんだから食わず嫌いは勿体ないですよ!

941:¥
18/05/07 20:45:11.83 EWP32cBY.net


942:¥
18/05/07 20:45:30.60 EWP32cBY.net


943:¥
18/05/07 20:45:50.08 EWP32cBY.net


944:¥
18/05/07 20:46:09.68 EWP32cBY.net


945:¥
18/05/07 20:46:27.95 EWP32cBY.net


946:¥
18/05/07 20:46:46.28 EWP32cBY.net


947:¥
18/05/07 20:47:07.74 EWP32cBY.net


948:¥
18/05/07 20:47:28.98 EWP32cBY.net


949:¥
18/05/07 20:47:50.11 EWP32cBY.net


950:¥
18/05/07 20:48:10.31 EWP32cBY.net


951:786
18/05/07 21:18:34.19 iMoj83uG.net
>>913
嫌ってるわけじゃありません。興味もあります。
ただ、そもそも私はそういう話をしに来たんじゃなく、
もっとこう、ここまでの証明がいいとか悪いとか、
全く別のアイデアがあるだとか、この予想から何が分かるかとか、
そういう数学の話をしたくてここに来たんです。
その辺ノってくれる方はいないっぽいですかね…
>>895では B' の候補が無いと出力されているので、この時点でアルゴリズムが終了します。
 アルゴリズムが終了する⇒その n で予想が成り立つ
です。

952:132人目の素数さん
18/05/07 21:53:43.30 lWPS9oWM.net
まあ>>790がそういうなら無理強いはできませんね。
あと>>790が期待しているようなレベルの人は今はこのスレにはいないかもしれませんが、
スレが盛り上がってもっと人の目に留まるようになればあるいは凄い人が来てくれるかもしれません。
頑張って盛り上げていきましょう!

953:132人目の素数さん
18/05/07 21:55:58.44 lWPS9oWM.net
とりあえず、いまは>>1のプログラムが仕上がるのを待つ、ですかね。
データがそろったら新事実が見つかるかもしれないし。

954:righ1113
18/05/07 22:15:51.29 En8a1JvF.net
一日遅延ですがp=7が出来ました。
繰り返し処理は明日以降考えます。
*CollatzMod> main
素数pを入力してください
7
Z/pZ : [0,1,2,3,4,5,6]
A : [[0],[1,2,4],[3,5,6]]
Z/3pZ : [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
B : [[1,2,4,8,11,16],[5,10,13,17,19,20]]
(3) tuple : [(0,Just 0),(1,Just 0),(1,Nothing),(2,Just 1),(1,Just 1),(2,Just 0)]
(4) A' No. : [0]
C : [[5,10,17,20,34,40],[13,19,26,38,41,52],[31,47,55,59,61,62]]
(6) tuple : [(0,Nothing),(0,Just 1),(0,Just 0)]
一度も現れなかったCi : [2]
D : [[31,47,55,59,61,62,94,110,118,122,124,125,157,173,181,185,187,188]]
(8) tuple : [(0,Nothing),(0,Just 0),(1,Nothing),(1,Just 0)]
一度も現れなかったDi : []
*CollatzMod>

955:righ1113
18/05/07 22:25:45.18 En8a1JvF.net
書きかけのコードはこちらです。
URLリンク(github.com)
ビルドする時は1行目をコメントアウトしてください。

956:132人目の素数さん
18/05/07 22:29:45.96 lWPS9oWM.net
ほほう、githubとはお洒落さんですな。

957:786
18/05/07 23:15:41.98 iMoj83uG.net
ノってくれる方がいない、は言い過ぎでした。
>>805>>842などで、これまでも数学的な話はできています。
こういう意見を頂けるのは非常にうれしいし、返信を考えるのは楽しいです。
ついカッとなってしまってああいう言い方になってしまいました。
>>926
待つしかないなんてことはありません。
私は私でまた証明の続きを考えます。
>>927
おお、例と同じ結果になってる
乙です。

958:¥
18/05/08 02:01:58.21 FpEjvdxJ.net


959:¥
18/05/08 02:02:27.80 FpEjvdxJ.net


960:¥
18/05/08 02:02:50.68 FpEjvdxJ.net


961:¥
18/05/08 02:03:12.91 FpEjvdxJ.net


962:¥
18/05/08 02:03:36.16 FpEjvdxJ.net


963:¥
18/05/08 02:03:58.30 FpEjvdxJ.net


964:¥
18/05/08 02:04:18.93 FpEjvdxJ.net


965:¥
18/05/08 02:04:40.45 FpEjvdxJ.net


966:¥
18/05/08 02:05:02.27 FpEjvdxJ.net


967:¥
18/05/08 02:05:25.15 FpEjvdxJ.net


968:132人目の素数さん
18/05/08 19:46:15.66 3JhFRy5O.net
>>1>>758
1〜nまででコラッツの反例がなければ、
n周期以下のループは存在しない です。
ていうアイディアを出してたんだけど>>790の予想から繋げて何か言えないかなーと妄想中

969:132人目の素数さん
18/05/08 20:06:46.16 3JhFRy5O.net
仮に1を含まない木が存在したとして、さらにその木がループを含むと仮定し、
かつコラッツの予想がnの倍数だけ調べればいいとすれば何か言えそうな気がするが
いまのところ気がするだけw

970:righ1113
18/05/08 22:30:58.28 0pQS9zME.net
いちおう出来ましたが、あやしいです。
p=21で止まってしまうのです。
ログをつけましたので、見ていただけないでしょうか。
URLリンク(github.com)

971:786
18/05/08 23:09:08.43 Bus1VThR.net
>>943
乙です。
見てみます。

972:132人目の素数さん
18/05/08 23:14:21.71 muUWFvN/.net
21は3の倍数だからってのは関係ない?

973:786
18/05/08 23:40:03.65 Bus1VThR.net
見たところ48行目までは正常に動いてるっぽい。
確かに49行目が怪しいですね。
46行目で 0,1,2,3 番目の C に対して組が得られているので、
本来なら (0,Just 0) などが出力されるところだと思います。
例えば33行目でDを扱った後に何かがリセットされてない…とか?

974:righ1113
18/05/09 00:10:26.53 C0m7VLvW.net
>>945,946
ありがとうございます。
ペアが空っぽというのは無いのですね。
明日は午後が空くので、そこで見ようと思います。

975:righ1113
18/05/09 17:27:09.70 0oVCSTXD.net
>>943
直したと思います。
昨日の場所にログを置きました。
と思ったらp=73でまたしてもバグが!
配列のインデックスをオーバーとかこうとか……
プログラム、普通には動くと思いますので、 僕はマイペースでバグ取りしたいと思います。

976:132人目の素数さん
18/05/09 18:25:58.87 3EE7PTZi.net
おお、>>1乙です

977:132人目の素数さん
18/05/09 20:39:28.35 +HXD0L90.net
ちなみに73と言うのはどこから来たの?
100くらいまで全部計算まわしたの?

978:righ1113
18/05/09 20:47:14.93 7BmXVyBb.net
>>950
7以上の奇数を順番に見ていって、
73でバグに当たりました。

979:132人目の素数さん
18/05/09 20:54:40.23 2Sdvu4f8.net
藤林丈司

980:132人目の素数さん
18/05/09 22:28:37.28 kcvVi3aG.net
おれもバグ取り協力したいけどアルゴリズムも十分理解してないしhaskellも十分理解してないからダブルで難しいorz

981:132人目の素数さん
18/05/09 22:54:26.36 kcvVi3aG.net
それにしてもまだバグがあるかもしれないけど5以上71以下の奇数で全部>>790予想が成り立つってこと?
けっこう凄くね?

982:righ1113
18/05/09 22:57:34.50 7BmXVyBb.net
>>948
バグ直ったかも。
でも家のPCのネットワーク系がダメになってしまったので、
GitHubは更新できません。

983:132人目の素数さん
18/05/09 23:05:36.30 kcvVi3aG.net
まじで

984:righ1113
18/05/09 23:36:49.21 7BmXVyBb.net
>>955
家のネットが一時的に直ったのでGitHub更新しました。
これにて完了?かな?

985:132人目の素数さん
18/05/10 00:04:24.40 vsrY1r+A.net
>>1乙です
手間じゃなければ例えば100以下の奇数に対してとかの実行結果もGitHubに上げてほしいです。
そうすれば>>790とか他の人も参照できるだろうし。

986:132人目の素数さん
18/05/10 00:15:42.09 vsrY1r+A.net
まあそれよりも>>790のOKをもらうのが先ですかね?

987:786
18/05/10 00:32:43.38 Ws8+Hi53.net
いやー手計算でn=19とかでひーこら言ってるところにあっさり73とか言われると
さすがにプログラムの力を思い知らされますねえ。
>>1乙です。
p=21 は大丈夫そうですね。p=73 はあとでじっくり見てみます。
>>954
証明できたことは凄いですけど、
「予想が成り立つのが凄い」という意味で言ってるんであれば、
それは全然不思議ではありません。
というのも、>>790で書いた通り
 この予想が成り立たない⇒コラッツ予想が成り立たない
なので、簡単に反例が見つかる方がおかしいのです。

988:righ1113
18/05/10 00:42:26.14 PifpSnv4.net
>>960
ところで、「全てのn,kでa≡k (mod n)が成り立つ→コラッツ予想は真」
って証明あるのですか?
あるなら見てみたいです。

989:786
18/05/10 00:51:20.30 Ws8+Hi53.net
>>961
うーん、ないですね。
それは成り立たないんじゃないかと思っています。
もし成り立つなら、>>790はコラッツ予想と同値になるので一気に>>790の重要度が増すんですがw
逆であれば、>>790に書いた通り成り立ちます。

990:righ1113
18/05/10 00:56:11.87 PifpSnv4.net
そうですかー残念です……

991:righ1113
18/05/10 10:03:31.78 PifpSnv4.net
「コラッツ予想は、初期値が n で割って k 余る数場合だけ調べれば十分」
というのは、初期値が1になるまで調べるのか、
初期値が自身より小さくなればOKなのか、
どちらだろう?

992:132人目の素数さん
18/05/10 10:17:56.58 BIiTzrxa.net
nは奇数に限るのかな?
8m+5と2m+1は同じ数に移るから8m+5(n=8,k=5)は調べなくて良い、のような例はあるんじゃないかな

993:132人目の素数さん
18/05/10 12:04:57.68 8H649Ca+.net
n=pとn=qで予想が成り立つ => n=pqで予想が成り立つ
が言えたら面白そう

994:786
18/05/10 18:30:14.35 Ws8+Hi53.net
>>964
1になるまで調べる、ですね。
実際に一つずつ調べるんであれば、もちろん「既に調べた数が得られるまで」とするのが自然かと思います。
>>965
奇数だけ扱っているのは、>>810によって偶数は奇数に帰着されるからです。
8m+5 と 2m+1 は両方とも 3m+2 に移るから 3m+2 を調べれば十分、という具合です。
>>966
これが言えれば素数だけ示せばよくなるのでだいぶ楽になりますね。
n=p, n=q と n=pq の間に何かしら繋がりがありそうな感じはしますが、まだよく分かりません。

995:132人目の素数さん
18/05/10 18:45:17.78 8H649Ca+.net
プログラムの実行結果からn=p,n=q,n=pqの関係を考察できそう?

996:132人目の素数さん
18/05/10 19:48:27.73 vsrY1r+A.net
やっぱプログラムの実行結果公開してほしいなぁ。
>>1頼んます。

997:righ1113
18/05/10 20:00:51.88 ogyKPvh0.net
5以上100以下の奇数とか、やってみます?

998:132人目の素数さん
18/05/10 20:01:52.46 vsrY1r+A.net
>>970
そうですね。とりあえずそれで。
頼んます。

999:righ1113
18/05/10 20:46:51.95 ogyKPvh0.net
83までとさせてください。
URLリンク(github.com)

1000:132人目の素数さん
18/05/10 20:50:34.18 vsrY1r+A.net
おお、仕事速いすな。
乙です。
さてここから何か見つかるか…

1001:132人目の素数さん
18/05/10 20:56:15.68 vsrY1r+A.net
うーん。
パッと見では法則は見えないですな。
まあそりゃそうか。

1002:132人目の素数さん
18/05/10 21:01:05.73 vsrY1r+A.net
3の倍数が比較的計算長くなるのかな?

1003:132人目の素数さん
18/05/10 21:13:16.97 vsrY1r+A.net
>>809によれば
2が原始根かどうかとmod 3 の値がなにか
あたりがミソになるのかなぁ

1004:132人目の素数さん
18/05/10 21:30:47.57 vsrY1r+A.net
100以下の素数に対して2が原始根か?とmod 3の値、一覧
3 true 0
5 true 2
7 false 1
11 true 2
13 true 1
17 false 2
19 true 1
23 false 2
29 true 2
31 false 1
37 true 1
41 false 2
43 false 1
47 false 2
53 true 2
59 true 2
61 true 1
67 true 1
71 false 2
73 false 1
79 false 1
83 true 2
89 false 2
97 false 1

1005:132人目の素数さん
18/05/10 21:44:24.17 vsrY1r+A.net
10000くらいまでデータ欲しいかもw
でも計算量的に厳しいですよね?

1006:786
18/05/10 21:47:00.38 Ws8+Hi53.net
>>972
ありがとうございます!
いろいろ見てみます!
ID:vsrY1r+A もいろいろと意見をありがとう。
3 の倍数に限らず、合成数なら比較的長くなると思われます。
また、素数でも 31 なんかはかなり長くなっています。
これは、2 の累乗がすぐに 1 になってしまう (2^5≡1 (mod 31)) ということに起因していると思われます。
127 なんかはどうなることやら。

1007:786
18/05/10 21:48:23.32 Ws8+Hi53.net
…ところで、プログラムにまだ無駄があって、改良版を考えたので実装してほしい、って言ったら怒る?

1008:132人目の素数さん
18/05/10 21:52:09.17 vsrY1r+A.net
>>980
ワロスww

1009:righ1113
18/05/10 21:56:16.76 ogyKPvh0.net
>>978
実はこっそりp=999をやっていたのですが、7時間ぐらいかかったもので。
>>980
またまたご冗談をw

1010:786
18/05/10 21:57:31.80 Ws8+Hi53.net
あ、無駄があるのはプログラムではなくアルゴリズムですね。
>>1のプログラムではなく私の理論に問題があったということです。

1011:132人目の素数さん
18/05/10 22:11:26.75 vsrY1r+A.net
まあ修正がどれだけ手間かかるか、感触確かめるだけでもやってもらったらどうですかね?
あんまり大変な様なら諦めるとか

1012:righ1113
18/05/10 22:14:19.85 ogyKPvh0.net
次スレ立てました。
コラッツ予想がとけたらいいな その2
スレリンク(math板)

1013:132人目の素数さん
18/05/10 22:15:37.25 vsrY1r+A.net
>>985


1014:786
18/05/10 22:22:48.42 Ws8+Hi53.net
>>985


とりあえず置いときます。
現行のものをちょっと並び変えて縮めた感じです。

n を 5 以上の奇数とする。
(1) Z/nZ において、2 を何回かかけることによって移りあう元を同じグループとして A1,A2,… とグループ分けする。
(2) A1,A2,… のうち一つを選び A' とする。
以下の操作を全て終えた後、まだ選んでない A' の候補があれば A' を取り換えてまたここからやり直す。
A' の候補が残っていなければ操作を終了する。
(3) Z/3nZ において、
「3 の倍数でも n の倍数でもなく、mod n で見た時 A' に属さない」
という条件を満たす数について、(1) と同様に B1,B2,… とグループ分けする。
(4) A' の各元 a に対し、3a+1 がどの Bi に属すかを見る。(どの Bi にも属さないこともある)
現れた Bi を記録していく。被った場合、改めて記録しなくてもよい。
(5) (4) で全ての Bi が現れれば操作を終了する((2)に戻る)。
一度も現れなかった Bi があれば、
Z/9nZ において、条件
「mod 3n で見た時、(4)で現れていない Bi に属する」
を満たす数全体を考え、この数たちを (1) と同様にグループ分けし、C1,C2,… とする。
(6) (4) の A' を「(4) で得られた Bi」に、Bi を Cj に変えて同じことをする。
(7) (5)(6) の B,C をそれぞれ C,D に、n を 3n に、(4) を (6) に変えて同じことする。
以降、同様に繰り返す。

1015:righ1113
18/05/10 22:26:59.99 ogyKPvh0.net
>>987
ありがとうございます。
とりあえず、じっくり見てみます。

1016:righ1113
18/05/10 22:38:21.33 ogyKPvh0.net
>>987
前みたいに、n=7での例が欲しいです。

1017:786
18/05/10 22:53:55.11 Ws8+Hi53.net
>>989
分かりました。しばしお待ちを。
ちなみに、(3)(4) と (5)(6) でやることはほぼ同じなので、
うまくやれば
 (1)→(2)→[(3)(4)の繰り返し]→(2)→[(3)(4)の繰り返し]→…
で済むかもしれません。

1018:786
18/05/10 23:36:25.51 Ws8+Hi53.net
>>987のアルゴリズムに n=7 の例を併記する。
(1) Z/nZ において、2 を何回かかけることによって移りあう元を同じグループとして A1,A2,… とグループ分けする。

Z/7Z において
A1={0}
A2={1,2,4}
A3={3,5,6}
(2) A1,A2,… のうち一つを選び A' とする。
以下の操作を全て終えた後、まだ選んでない A' の候補があれば A' を取り換えてまたここからやり直す。
A' の候補が残っていなければ操作を終了する。

まずは A'=A1 とする。(以降、(2) に戻るまでほぼ前回の例と同じ)
(3) Z/3nZ において、条件
「3 の倍数でも n の倍数でもなく、mod n で見た時 A' に属さない」
という条件を満たす数について、(1) と同様に B1,B2,… とグループ分けする。

Z/21Z の元で、3 の倍数でも 7 の倍数でもなく、mod 7 で 0 でない数を列挙すると
{1,2,4,5,8,10,11,13,16,17,19,20}
となり、これをグループ分けすると
B1={1,2,4,8,11,16}
B2={5,10,13,17,19,20}
を得る。

1019:786
18/05/10 23:37:31.55 Ws8+Hi53.net
(4) A' の各元 a に対し、3a+1 がどの Bi に属すかを見る。(どの Bi にも属さないこともある)
現れた Bi を記録していく。被った場合、改めて記録しなくてもよい。

A1 の元は 0 のみ。
3*0+1=1∈B1 なので、B1 のみ記録する。
(5) (4) で全ての Bi が現れれば操作を終了する((2)に戻る)。
一度も現れなかった Bi があれば、
Z/9nZ において、条件
「mod 3n で見た時、(4)で現れていない Bi に属する」
を満たす数全体を考え、この数たちを (1) と同様にグループ分けし、C1,C2,… とする。

(4) で B2 のみ現れていない。
Z/63Z の元で、mod 21 で B2 に属するような元を列挙すると
{5,10,13,17,19,20,26,31,34,38,40,41,47,52,55,59,61,62}
となり、これをグループ分けすると
C1={5,10,17,20,34,40}
C2={13,19,26,38,41,52}
C3={31,47,55,59,61,62}
を得る。
(6) (4) の A' を「(4) で得られた Bi」に、Bi を Cj に変えて同じことをする。

B1 の元 a に対し、3a+1 が C1,C2,C3 に属するかを見ていく。
C1,C2 が記録される。

1020:786
18/05/10 23:38:15.14 Ws8+Hi53.net
(7) (5)(6) の B,C をそれぞれ C,D に、n を 3n に、(4) を (6) に変えて同じことする。
以降、同様に繰り返す。

(6) で C3 のみ現れていない。
Z/189Z の元で、mod 63 で C3 に属するような元を列挙すると
{31,47,55,59,61,62,94,110,118,122,124,125,157,173,181,185,187,188}
となり、これをグループ分けすると
D1={31,47,55,59,61,62,94,110,118,122,124,125,157,173,181,185,187,188}
という一つのみのグループを得る。
C1,C2 の元 a に対し、3a+1 が D1 に属するかを見ていく。
C1 の 10 に対して 3*10+1=31∈D1 なので、D1 が記録される。
全ての Di が現れたので、(2) に戻る。

1021:786
18/05/10 23:38:46.31 Ws8+Hi53.net
(2)

A'=A2={1,2,4} とする。
(3)

Z/21Z の元で、3 の倍数でも 7 の倍数でもなく、mod 7 で 1,2,4 でない数を列挙すると
{5,10,13,17,19,20}
となり、これをグループ分けすると
B1={5,10,13,17,19,20}
という一つのグループのみを得る。
(4)

4∈A2 で、3*4+1=13∈B1 なので、B1 が記録される。
全ての Bi が現れたので、(2) に戻る。
(2)

A'=A3={3,5,6} とする。
(3)

Z/21Z の元で、3 の倍数でも 7 の倍数でもなく、mod 7 で 3,5,6 でない数を列挙すると
{1,2,4,8,11,16}
となり、これをグループ分けすると
B1={1,2,4,8,11,16}
という一つのグループのみを得る。
(4)

5∈A2 で、3*5+1=16∈B1 なので、B1 が記録される。
全ての Bi が現れたので、(2) に戻る。
A' の候補が残っていないので、操作を終了する。

1022:786
18/05/10 23:40:32.66 Ws8+Hi53.net
例は長くなりましたが、全体の計算量は減っている…はずです。

1023:righ1113
18/05/10 23:51:12.88 PifpSnv4.net
乙であります!

1024:786
18/05/11 00:11:37.79 OFsS5uwl.net
あ、すいません。
(3) に以下を追加でお願いします。
もし条件に当てはまる数が無ければ操作を終了する((2)に戻る)。

1025:132人目の素数さん
18/05/11 20:23:13.02 b0n49LZW.net
こっち埋めてしまいます?

1026:righ1113
18/05/11 20:26:01.86 SBH2/eHc.net
埋めましょう。

1027:righ1113
18/05/11 20:29:19.49 SBH2/eHc.net
過ごしやすい季節ですなあ。

1028:righ1113
18/05/11 20:31:07.05 SBH2/eHc.net
今日は油そばを食べました。おいしかったです。

1029:righ1113
18/05/11 20:32:50.82 SBH2/eHc.net
PCの電源が突然切れる病気にかかって、大変ですよ。

1030:righ1113
18/05/11 20:34:24.77 SBH2/eHc.net
とうとうプリンターが使えなくなってしまいました。

1031:righ1113
18/05/11 20:36:52.62 SBH2/eHc.net
このスレ6年か……
色んな事がありました。

1032:righ1113
18/05/11 20:37:51.85 SBH2/eHc.net
1000ゲット!

1033:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 2035日 10時間 5分 13秒

1034:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1867日前に更新/407 KB
担当:undef