c++を使ったプログラミング!できる方いませんか??
c++を使ったプログラミング!できる方いませんか??
プログラムは、いたって簡単です。
~内容~
ある奇数を★とおき、ある奇数を次の式の★に代入→(2×★+1)して、求められた値を●とおき、その●をまた次の式→(2×●+1)に代入して計算する。これを永遠に繰り返す。
それと同時に、(2× ホニャララ数 +1) によって、求められた値(上のような場合は、●の数)を、nに代入して、(▲×n+1÷2)と計算し、次の値が奇数になるまでこの計算を繰り返す。
分かる人がいたら、コメントください。
powerfulcolor1218@gmail.com
よろしくおねがいしまーす!
~内容~
ある奇数を★とおき、ある奇数を次の式の★に代入→(2×★+1)して、求められた値を●とおき、その●をまた次の式→(2×●+1)に代入して計算する。これを永遠に繰り返す。
それと同時に、(2× ホニャララ数 +1) によって、求められた値(上のような場合は、●の数)を、nに代入して、(▲×n+1÷2)と計算し、次の値が奇数になるまでこの計算を繰り返す。
分かる人がいたら、コメントください。
powerfulcolor1218@gmail.com
よろしくおねがいしまーす!
Re: c++を使ったプログラミング!できる方いませんか??
これは、意味がわかりません。▲は何?匿名 さんが書きました:それと同時に、(2× ホニャララ数 +1) によって、求められた値(上のような場合は、●の数)を、nに代入して、(▲×n+1÷2)と計算し、次の値が奇数になるまでこの計算を繰り返す。
non
Re: c++を使ったプログラミング!できる方いませんか??
みけCAT さんが書きました:フォーラムルールをお読みください。
丸投げは禁止です。
残念ながら課題でも宿題でもありません。
勘違いをされるような行為をしてしまいすみません。
私は、最近c言語について興味を持ったものです。
何卒よろしくお願いします。
Re: c++を使ったプログラミング!できる方いませんか??
non さんが書きました:これは、意味がわかりません。▲は何?匿名 さんが書きました:それと同時に、(2× ホニャララ数 +1) によって、求められた値(上のような場合は、●の数)を、nに代入して、(▲×n+1÷2)と計算し、次の値が奇数になるまでこの計算を繰り返す。
ご指摘ありがとうございます。
▲は任意の“奇数”です。仮に3、5、7とおいておけます。
Re: c++を使ったプログラミング!できる方いませんか??
ご指摘されます方々、大変ありがとうございます。
私は、数学好きです。最近c言語と言うものをしりました。
また、このサイトも初です。
ご不快とみなされる行為はおろか、あらしはしません。
未熟なものですみません。
なので、適さない発言をした場合、注意をおねがいします。
私は、数学好きです。最近c言語と言うものをしりました。
また、このサイトも初です。
ご不快とみなされる行為はおろか、あらしはしません。
未熟なものですみません。
なので、適さない発言をした場合、注意をおねがいします。
Re: c++を使ったプログラミング!できる方いませんか??
質問に答えて頂けませんか?
フォーラムルール さんが書きました:時々「あああ」とか「あいうえお」などという名前で投稿される方がいますが、
ふざけているように捉えられる場合が多く、熱心に回答してあげようという気を殺いでしまいます。
また、「初心者です」「初心者」「初めまして」「名無し」のような
その場だけの名前、また、多くの人が重複して使うであろう名前は避けてください。
なるべくオリジナルな名前を決め、以後同じ名前を使い続けてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: c++を使ったプログラミング!できる方いませんか??
ご指摘ありがとうございます。みけCAT さんが書きました:ホニャララ数とはなんですか?
ホニャララ数とは、
ある奇数を★とおき、ある奇数を次の式の★に代入→(2×★+1)して、求められた値を●とおき、
↑↑↑
の事です。
自ら考えたので、うまく説明できませんが…。
尚、表計算ソフトでは、有効数字があるので大きな値の計算ができませんでした…。
Re: c++を使ったプログラミング!できる方いませんか??
はい。みけCAT さんが書きました:質問に答えて頂けませんか?
フォーラムルール さんが書きました:時々「あああ」とか「あいうえお」などという名前で投稿される方がいますが、
ふざけているように捉えられる場合が多く、熱心に回答してあげようという気を殺いでしまいます。
また、「初心者です」「初心者」「初めまして」「名無し」のような
その場だけの名前、また、多くの人が重複して使うであろう名前は避けてください。
なるべくオリジナルな名前を決め、以後同じ名前を使い続けてください。
分かりました。次回から『数学革命者』という名前に指定ただいます。
Re: c++を使ったプログラミング!できる方いませんか??
数学好きなら ★ とか ホニャララ とか使わないで普通の数式で書いてもらえませんか
Re: c++を使ったプログラミング!できる方いませんか??
h2so5 さんが書きました:数学好きなら ★ とか ホニャララ とか使わないで普通の数式で書いてもらえませんか
すみません。
わかりやすく書こうとしたつもりです…。
改めて書き直します。
Re: c++を使ったプログラミング!できる方いませんか??
早めに質問しておきますが、匿名 さんが書きました:尚、表計算ソフトでは、有効数字があるので大きな値の計算ができませんでした…。
当然無限大になります。どこまで、計算するのか決めないと計算できません。永遠なんてのは無理です。匿名 さんが書きました: ある奇数を★とおき、ある奇数を次の式の★に代入→(2×★+1)して、求められた値を●とおき、その●をまた次の式→(2×●+1)に代入して計算する。これを永遠に繰り返す。
1÷2は0.5です。0.5は奇数ですか?匿名 さんが書きました: それと同時に、(2× ホニャララ数 +1) によって、求められた値(上のような場合は、●の数)を、nに代入して、(▲×n+1÷2)と計算し、次の値が奇数になるまでこの計算を繰り返す。
(▲×n+1)÷2 ではないのですか?
non
Re: c++を使ったプログラミング!できる方いませんか??
【ご指摘ありがとうございます】non さんが書きました:早めに質問しておきますが、匿名 さんが書きました:尚、表計算ソフトでは、有効数字があるので大きな値の計算ができませんでした…。当然無限大になります。どこまで、計算するのか決めないと計算できません。永遠なんてのは無理です。匿名 さんが書きました: ある奇数を★とおき、ある奇数を次の式の★に代入→(2×★+1)して、求められた値を●とおき、その●をまた次の式→(2×●+1)に代入して計算する。これを永遠に繰り返す。
【ご指摘ありがとうございます】
このC++と言うのは、大きな値が計算できると聞きましたが、はっきり言って、初心者である私はどのくらいの値まで、計算できるか分かりません。
よろしければ、どのくらいの値まで計算できるか教えてくださいませんか?
1÷2は0.5です。0.5は奇数ですか?匿名 さんが書きました: それと同時に、(2× ホニャララ数 +1) によって、求められた値(上のような場合は、●の数)を、nに代入して、(▲×n+1÷2)と計算し、次の値が奇数になるまでこの計算を繰り返す。
(▲×n+1)÷2 ではないのですか?
▲の値は3です。
次の更新で説明いたします。
Re: c++を使ったプログラミング!できる方いませんか??
私が作成したいプログラムは、いたって簡単です。
~内容~
ある奇数をAとおき、Aの値を562949953421311とおきます。
ある奇数をAとおき、ある奇数を次の式のAに代入→(2×A+1)して、求められた値をBとおき、そのBをまた先ほどの式→(2×B+1)に代入して計算する。これを永遠に繰り返す。(表計算ソフトの場合Bの値は844424930131967とでました。)
それと同時に、(2×A+1)、 (2×B+1)それぞれによって、求められた値(上のような場合は、AとBの値)を、nに代入して、(C×n+1÷2)と計算し、次の値が奇数になるまでこの計算を繰り返す。(Cの値は今回3とおきます。)
分かる人がいたら、コメントください。
~内容~
ある奇数をAとおき、Aの値を562949953421311とおきます。
ある奇数をAとおき、ある奇数を次の式のAに代入→(2×A+1)して、求められた値をBとおき、そのBをまた先ほどの式→(2×B+1)に代入して計算する。これを永遠に繰り返す。(表計算ソフトの場合Bの値は844424930131967とでました。)
それと同時に、(2×A+1)、 (2×B+1)それぞれによって、求められた値(上のような場合は、AとBの値)を、nに代入して、(C×n+1÷2)と計算し、次の値が奇数になるまでこの計算を繰り返す。(Cの値は今回3とおきます。)
分かる人がいたら、コメントください。
Re: c++を使ったプログラミング!できる方いませんか??
non さんが書きました: 1÷2は0.5です。0.5は奇数ですか?
(▲×n+1)÷2 ではないのですか?
「次の値が奇数になるまでこの計算を繰り返す」の「次の値」というのは数学革命者 さんが書きました: それと同時に、(2×A+1)、 (2×B+1)それぞれによって、求められた値(上のような場合は、AとBの値)を、nに代入して、(C×n+1÷2)と計算し、次の値が奇数になるまでこの計算を繰り返す。(Cの値は今回3とおきます。)
(C×n+1÷2)の値
ということでよろしいですか。この式は
(C×n + 0.5)
と等価です。Cとnはそれぞれ整数なので全体として xxx.5 のような少数になりますが、これは奇数なのですかと non さんは聞いています。
Re: c++を使ったプログラミング!できる方いませんか??
すみません記事作成途中に返信ができなくて…。
えっ、(C×n+1÷2)の値は(C×n + 0.5)と等価なんですか?
すみません。偶数です。打ち間違えました。beatle さんが書きました:non さんが書きました: 1÷2は0.5です。0.5は奇数ですか?
(▲×n+1)÷2 ではないのですか?
すみません。補足です。
(▲×n+1)÷2は、奇数になる場合と、偶数になる場合があります。
例:nが63の場合、(3×63+1)÷2=95となり奇数ですなので、また代入、(3×95+1)÷2=143となり、……→215→323→485→728 偶数になったので終了です。分かりにくくてすみません。
「次の値が奇数になるまでこの計算を繰り返す」の「次の値」というのは数学革命者 さんが書きました: それと同時に、(2×A+1)、 (2×B+1)それぞれによって、求められた値(上のような場合は、AとBの値)を、nに代入して、(C×n+1÷2)と計算し、次の値が奇数になるまでこの計算を繰り返す。(Cの値は今回3とおきます。)
(C×n+1÷2)の値
ということでよろしいですか。この式は
(C×n + 0.5)
と等価です。Cとnはそれぞれ整数なので全体として xxx.5 のような少数になりますが、これは奇数なのですかと non さんは聞いています。
えっ、(C×n+1÷2)の値は(C×n + 0.5)と等価なんですか?
Re: c++を使ったプログラミング!できる方いませんか??
何が偶数なのですか?数学革命者 さんが書きました: すみません。偶数です。打ち間違えました。
えっ、(C×n+1÷2)の値は(C×n + 0.5)と等価なんですか?
1/2は0.5なので等価であると思いますが
求められた値はAとBではないと思うのですが……?数学革命者 さんが書きました: (2×A+1)、 (2×B+1)それぞれによって、求められた値(上のような場合は、AとBの値)
最後に編集したユーザー nil on 2012年8月16日(木) 11:40 [ 編集 2 回目 ]
Re: c++を使ったプログラミング!できる方いませんか??
数学が好きなのにそのへんは抜けてるんですね。数学革命者 さんが書きました: すみません。偶数です。打ち間違えました。
えっ、(C×n+1÷2)の値は(C×n + 0.5)と等価なんですか?
演算子には優先順位というものがありまして、
1 + 2 × 3
という式は 2 × 3 を先に計算するんです。普通の数学では。
だから
1 + 2 × 3
= 1 + (2 × 3)
= 1 + 6
= 7
となるのです。
+ , - , × , ÷
の優先順位は × と ÷ が + と - より高いので、
(C×n + 1÷2) = (C×n + (1÷2)) = (C×n + 0.5)
となるわけです。
Re: c++を使ったプログラミング!できる方いませんか??
数学革命者 さんが書きました:私が作成したいプログラムは、いたって簡単(エクセル)です。
~内容~
ある奇数をAとおき、Aの値を562949953421311とおきます。
ある奇数をAとおき、ある奇数を次の式のAに代入→(2×A+1)して、求められた値をBとおき、そのBをまた先ほどの式→(2×B+1)に代入して計算する。これを永遠に繰り返す。(表計算ソフトの場合Bの値は844424930131967とでました。)
それと同時に、(2×A+1)、 (2×B+1)それぞれによって、求められた値(上のような場合は、AとBの値)を、nに代入して、(C×n+1)÷2と計算し、次の値が偶数になるまでこの計算を繰り返す。(Cの値は今回3とおきます。)
訂正いたしました。
Re: c++を使ったプログラミング!できる方いませんか??
ところでフォーラムルールにある通り
丸投げは禁止です。
現段階で出来ているコードを提示してください。
丸投げは禁止です。
現段階で出来ているコードを提示してください。
Re: c++を使ったプログラミング!できる方いませんか??
涼雅 さんが書きました:ところでフォーラムルールにある通り
丸投げは禁止です。
現段階で出来ているコードを提示してください。
私には、向いていないので出直します
Re: c++を使ったプログラミング!できる方いませんか??
他の人の引用文の中に、文章を書き加えるのはやめてくださいね。わからなくなるから。
整数として格納できる最大は環境によって変わります。
したがって、もっと大きな桁まで計算したいなら、それなりのテクニックが必要になります。
あなたが、何桁まで必要なのかが知りたいのです。
整数として格納できる最大は環境によって変わります。
したがって、もっと大きな桁まで計算したいなら、それなりのテクニックが必要になります。
あなたが、何桁まで必要なのかが知りたいのです。
non
Re: c++を使ったプログラミング!できる方いませんか??
non さんが書きました:他の人の引用文の中に、文章を書き加えるのはやめてくださいね。わからなくなるから。
整数として格納できる最大は環境によって変わります。
したがって、もっと大きな桁まで計算したいなら、それなりのテクニックが必要になります。
あなたが、何桁まで必要なのかが知りたいのです。
はい。
15から32桁までです。
Re: c++を使ったプログラミング!できる方いませんか??
32桁はあまりに大きすぎるので多倍長演算を学ばなければならないでしょう
まずは段階として
ごく小さな桁数(1~3,4桁)程度で同じ事が出来ますか?
まずは段階として
ごく小さな桁数(1~3,4桁)程度で同じ事が出来ますか?
Re: c++を使ったプログラミング!できる方いませんか??
すると、long long 型でもだめでしょうね。たぶん。コンパイラは何をお使いですか?数学革命者 さんが書きました:15から32桁までです。
また、数学革命者さんはプログラムの経験はどれくらいですか?
例えばC言語ですが、下のプログラムはわかりますか?
それとも、C++ならわかるけど、Cならわからないとか。
non
Re: c++を使ったプログラミング!できる方いませんか??
まとめてご回答させていただきます。
32桁はあまりに大きすぎるので多倍長演算を学ばなければならないでしょう
まずは段階として
ごく小さな桁数(1~3,4桁)程度で同じ事が出来ますか?
回答:すみませんができません。
私は、先週c言語を知りました。
ページトップ
--------------------------------------------------------------------------------
引用付きで返信する Name: non [URL] ハッカー(129,514 ポイント) Date: 2012年8月16日(木) 12:13 No: 28 (ONLINE) Re: c++を使ったプログラミング!できる方いませんか??数学革命者 さんが書きました:
15から32桁までです。
すると、long long 型でもだめでしょうね。たぶん。コンパイラは何をお使いですか?
回答:コンパイラという言葉は聞いた事があります。
また、数学革命者さんはプログラムの経験はどれくらいですか?
回答:まったくもって、初心者であってプログラムを初作りです。
例えばC言語ですが、下のプログラムはわかりますか?
それとも、C++ならわかるけど、Cならわからないとか。
いいえ、cでもc♯でもc++でも、プログラムの仕方は分かりません
こんなに知識無いのでやっぱりやめようと思います。
ご返信してくださった方々どうもありがとうございました。
32桁はあまりに大きすぎるので多倍長演算を学ばなければならないでしょう
まずは段階として
ごく小さな桁数(1~3,4桁)程度で同じ事が出来ますか?
回答:すみませんができません。
私は、先週c言語を知りました。
ページトップ
--------------------------------------------------------------------------------
引用付きで返信する Name: non [URL] ハッカー(129,514 ポイント) Date: 2012年8月16日(木) 12:13 No: 28 (ONLINE) Re: c++を使ったプログラミング!できる方いませんか??数学革命者 さんが書きました:
15から32桁までです。
すると、long long 型でもだめでしょうね。たぶん。コンパイラは何をお使いですか?
回答:コンパイラという言葉は聞いた事があります。
また、数学革命者さんはプログラムの経験はどれくらいですか?
回答:まったくもって、初心者であってプログラムを初作りです。
例えばC言語ですが、下のプログラムはわかりますか?
それとも、C++ならわかるけど、Cならわからないとか。
いいえ、cでもc♯でもc++でも、プログラムの仕方は分かりません
こんなに知識無いのでやっぱりやめようと思います。
ご返信してくださった方々どうもありがとうございました。
Re: c++を使ったプログラミング!できる方いませんか??
最初に、そう言ってもらえれば、RESの方法がだいぶ違いました。
プログラムの基本から、勉強されてはいかがでしょうか?
勉強していて、わからないことがあれば、またお尋ねください。
こう書かれれば、プログラムの経験があると誰もが思います。匿名 さんが書きました:プログラムは、いたって簡単です。
プログラムの基本から、勉強されてはいかがでしょうか?
勉強していて、わからないことがあれば、またお尋ねください。
non
Re: c++を使ったプログラミング!できる方いませんか??
数学だけで考えてみた。
a0=A
ai+1=2ai+1
ci=(Cai+1)÷2
までは読み取れた。で,ciが偶数になったら何がしたいのかはわからなかった。
ところで,漸化式を解くと,
ai=2i(A+1)-1
ci=2i-1C(A+1)+(1-C)÷2
となるわけですが……。
A,Cは奇数なので,C(A+1)は常に偶数です。
よって,(1-C)÷2の偶奇のみによって,ciが「偶数になるかどうか」が決定します。
つまりは,Cが4k+1(k∈ℤ)であればciは常に偶数(-2k)であり,Cが4k+3(k∈ℤ)であればciは常に奇数(-2k-1)となります。
Cが3の時は,いつまで経ってもciは偶数にならないと思いますが……。
ある奇数をA, Cとし,ai(i∈ℕ0)とci(i∈ℕ+)を以下のように定義する。数学革命者 さんが書きました:ある奇数をAとおき、ある奇数を次の式のAに代入→(2×A+1)して、求められた値をBとおき、そのBをまた先ほどの式→(2×B+1)に代入して計算する。これを永遠に繰り返す。(表計算ソフトの場合Bの値は844424930131967とでました。)
それと同時に、(2×A+1)、 (2×B+1)それぞれによって、求められた値(上のような場合は、AとBの値)を、nに代入して、(C×n+1)÷2と計算し、次の値が偶数になるまでこの計算を繰り返す。(Cの値は今回3とおきます。)
a0=A
ai+1=2ai+1
ci=(Cai+1)÷2
までは読み取れた。で,ciが偶数になったら何がしたいのかはわからなかった。
オフトピック
A, Cも
m,n∈ℤとしてA=2m-1,C=2n-1
と書けばよいのかな?そのあたりの数学的な記述方法はわからない……。
想定はm,n∈ℤではなくm,n∈ℕ+な気がするけど気にしないことにする。
あと,Bの出る幕は無いように思える。
m,n∈ℤとしてA=2m-1,C=2n-1
と書けばよいのかな?そのあたりの数学的な記述方法はわからない……。
想定はm,n∈ℤではなくm,n∈ℕ+な気がするけど気にしないことにする。
あと,Bの出る幕は無いように思える。
ai=2i(A+1)-1
ci=2i-1C(A+1)+(1-C)÷2
となるわけですが……。
A,Cは奇数なので,C(A+1)は常に偶数です。
よって,(1-C)÷2の偶奇のみによって,ciが「偶数になるかどうか」が決定します。
つまりは,Cが4k+1(k∈ℤ)であればciは常に偶数(-2k)であり,Cが4k+3(k∈ℤ)であればciは常に奇数(-2k-1)となります。
Cが3の時は,いつまで経ってもciは偶数にならないと思いますが……。
Re: c++を使ったプログラミング!できる方いませんか??
A=3,C=3のとき、YuO さんが書きました:Cが3の時は,いつまで経ってもciは偶数にならないと思いますが……。
(3×3+1)/2は5
次に
(3×5+1)/2は8
になり偶数になるのですが?
で、大きい桁までするのは面倒だから小さい数までやってみた。
C=3のとき
A=1 2 1
A=3 8 2
A=7 26 3
A=15 80 4
A=31 242 5
A=63 728 6
A=127 2186 7
A=255 6560 8
A=511 19682 9
A=1023 59048 10
A=2047 177146 11
A=4095 531440 12
A=8191 1594322 13
A=16383 4782968 14
A=32767 14348906 15
A=65535 43046720 16
A=131071 129140162 17
A=262143 387420488 18
A=524287 1162261466 19
A=1048575 3486784400 20
A=2097151 10460353202 21
A=4194303 31381059608 22
A=8388607 94143178826 23
A=16777215 282429536480 24
A=33554431 847288609442 25
真ん中の数字は偶数になったときの数字、一番右側は偶数になるまでの回数です。
規則性があるのできっと、数学好きには証明する価値があるのだろう。
ちなみに、C=5にしてみると
A=1 8 2
A=3 8 1
A=7 18 1
A=15 38 1
A=31 78 1
A=63 158 1
A=127 318 1
A=255 638 1
A=511 1278 1
A=1023 2558 1
A=2047 5118 1
A=4095 10238 1
A=8191 20478 1
A=16383 40958 1
A=32767 81918 1
A=65535 163838 1
A=131071 327678 1
A=262143 655358 1
A=524287 1310718 1
A=1048575 2621438 1
A=2097151 5242878 1
A=4194303 10485758 1
A=8388607 20971518 1
A=16777215 41943038 1
A=33554431 83886078 1
A=1のとき以外は常に1になります。
じゃ、c=7のときは
A=1 4 1
A=3 480 4
A=7 88 2
A=15 186 2
A=31 382 2
A=63 774 2
A=127 1558 2
A=255 3126 2
A=511 6262 2
A=1023 12534 2
A=2047 25078 2
A=4095 50166 2
A=8191 100342 2
A=16383 200694 2
A=32767 401398 2
A=65535 802806 2
A=131071 1605622 2
A=262143 3211254 2
A=524287 6422518 2
A=1048575 12845046 2
A=2097151 25690102 2
A=4194303 51380214 2
A=8388607 102760438 2
A=16777215 205520886 2
A=33554431 411041782 2
なんか規則性がありそうななさそうな・・・
non
Re: c++を使ったプログラミング!できる方いませんか??
問題が数学でちゃんと説明されていないが為に,cjって何,という点で解釈が分かれているようです。non さんが書きました:A=3,C=3のとき、YuO さんが書きました:Cが3の時は,いつまで経ってもciは偶数にならないと思いますが……。
(3×3+1)/2は5
次に
(3×5+1)/2は8
になり偶数になるのですが?
私は
cj=(Caj+1)÷2
と解釈しましたが(繰り返すのはai+1を求める作業),nonさんは
c0=ai
cj+1=(Ccj+1)÷2
と解釈されている(繰り返すのはcj+1を求める作業)ようです。
後者の一般項は,
cj=(C/2)j(2i(A+1)+(3-C)÷(C-2))-1÷(C-2)
のようですが,流石にこの一般項が偶数になる条件は私の手に負いかねます。
特殊例で,C=3であれば,
cj=3j2i-j(A+1)-1
なので,Aを2m(2n-1)-1 (m∈ℕ1,n∈ℕ+)と表して (つまり,A+1を素因数分解した時に2がm回出てくる),
j=i+m
が成り立つときに,最初にcjが偶数になります。
# 3jが奇数で(A+1)が偶数なので,(A+1)を2で割っていって最初に奇数になる時が全体が偶数になる時
Re: c++を使ったプログラミング!できる方いませんか??
こんなに知識無いのでやっぱりやめようと思います。
ご返信してくださった方々どうもありがとうございました。[/quote]
#もう見ていないかも知れませんが。。
C言語とかではなくて、Ruby等、インタラクティブなシェルを提供している環境を利用することをお勧めします。
数学的な何かをやるのであれば、関数型言語から入ったほうが良いかも知れませんし、この手のものは数値の上限など気にする必要はありません。
ご返信してくださった方々どうもありがとうございました。[/quote]
#もう見ていないかも知れませんが。。
C言語とかではなくて、Ruby等、インタラクティブなシェルを提供している環境を利用することをお勧めします。
数学的な何かをやるのであれば、関数型言語から入ったほうが良いかも知れませんし、この手のものは数値の上限など気にする必要はありません。
Re: c++を使ったプログラミング!できる方いませんか??
non さんが書きました:A=3,C=3のとき、YuO さんが書きました:Cが3の時は,いつまで経ってもciは偶数にならないと思いますが……。
(3×3+1)/2は5
次に
(3×5+1)/2は8
になり偶数になるのですが?
で、大きい桁までするのは面倒だから小さい数までやってみた。
C=3のとき
A=1 2 1
A=3 8 2
A=7 26 3
A=15 80 4
A=31 242 5
A=63 728 6
A=127 2186 7
A=255 6560 8
A=511 19682 9
A=1023 59048 10
A=2047 177146 11
A=4095 531440 12
A=8191 1594322 13
A=16383 4782968 14
A=32767 14348906 15
A=65535 43046720 16
A=131071 129140162 17
A=262143 387420488 18
A=524287 1162261466 19
A=1048575 3486784400 20
A=2097151 10460353202 21
A=4194303 31381059608 22
A=8388607 94143178826 23
A=16777215 282429536480 24
A=33554431 847288609442 25
真ん中の数字は偶数になったときの数字、一番右側は偶数になるまでの回数です。
規則性があるのできっと、数学好きには証明する価値があるのだろう。
ちなみに、C=5にしてみると
A=1 8 2
A=3 8 1
A=7 18 1
A=15 38 1
A=31 78 1
A=63 158 1
A=127 318 1
A=255 638 1
A=511 1278 1
A=1023 2558 1
A=2047 5118 1
A=4095 10238 1
A=8191 20478 1
A=16383 40958 1
A=32767 81918 1
A=65535 163838 1
A=131071 327678 1
A=262143 655358 1
A=524287 1310718 1
A=1048575 2621438 1
A=2097151 5242878 1
A=4194303 10485758 1
A=8388607 20971518 1
A=16777215 41943038 1
A=33554431 83886078 1
A=1のとき以外は常に1になります。
じゃ、c=7のときは
A=1 4 1
A=3 480 4
A=7 88 2
A=15 186 2
A=31 382 2
A=63 774 2
A=127 1558 2
A=255 3126 2
A=511 6262 2
A=1023 12534 2
A=2047 25078 2
A=4095 50166 2
A=8191 100342 2
A=16383 200694 2
A=32767 401398 2
A=65535 802806 2
A=131071 1605622 2
A=262143 3211254 2
A=524287 6422518 2
A=1048575 12845046 2
A=2097151 25690102 2
A=4194303 51380214 2
A=8388607 102760438 2
A=16777215 205520886 2
A=33554431 411041782 2
なんか規則性がありそうななさそうな・・・
あなたは神です!
私の思ったことを書いてくれました。
他の皆さんにも失礼ですが、まとめて感謝します。
問題は、一番右側は偶数になるまでの回数です。
私の見解ですが、一定の操作をすると、偶数にならないと思うのです。
なので、その数を求めようとこのサイトに質問しました。
あと一歩ですが、パソコンと私の知識では、15桁以上の計算ができませんでした。。
Re: c++を使ったプログラミング!できる方いませんか??
問題を再定義していただけませんか?数学革命者 さんが書きました:
あなたは神です!
私の思ったことを書いてくれました。
他の皆さんにも失礼ですが、まとめて感謝します。
問題は、一番右側は偶数になるまでの回数です。
私の見解ですが、一定の操作をすると、偶数にならないと思うのです。
なので、その数を求めようとこのサイトに質問しました。
あと一歩ですが、パソコンと私の知識では、15桁以上の計算ができませんでした。。
質問の内容が、また分からなくなっています。
「一定の操作」ってどんな操作ですか?
「その数」って何を指していますか?
Re: c++を使ったプログラミング!できる方いませんか??
一定の操作、今では、2147483647までは、31回の操作で偶数になりました。Poco さんが書きました:問題を再定義していただけませんか?数学革命者 さんが書きました:
あなたは神です!
私の思ったことを書いてくれました。
他の皆さんにも失礼ですが、まとめて感謝します。
問題は、一番右側は偶数になるまでの回数です。
私の見解ですが、一定の操作をすると、偶数にならないと思うのです。
なので、その数を求めようとこのサイトに質問しました。
あと一歩ですが、パソコンと私の知識では、15桁以上の計算ができませんでした。。
質問の内容が、また分からなくなっています。
「一定の操作」ってどんな操作ですか?
「その数」って何を指していますか?
その数、下記の赤い部分が無い=奇数が続く、と言う事です。
引用させてもらいます。
最初の5つだけ赤色にしました。(面倒なので、実際は指定しているのは赤い数字の列全てです。)
A=3,C=3のとき、
(3×3+1)/2は5
次に
(3×5+1)/2は8
になり偶数になります。
で、大きい桁までするのは面倒だから小さい数までやってみた。
C=3のとき
A=1 2 1
A=3 8 2
A=7 26 3
A=15 80 4
A=31 242 5
A=63 728 6
A=127 2186 7
A=255 6560 8
A=511 19682 9
A=1023 59048 10
A=2047 177146 11
A=4095 531440 12
A=8191 1594322 13
A=16383 4782968 14
A=32767 14348906 15
A=65535 43046720 16
A=131071 129140162 17
A=262143 387420488 18
A=524287 1162261466 19
A=1048575 3486784400 20
A=2097151 10460353202 21
A=4194303 31381059608 22
A=8388607 94143178826 23
A=16777215 282429536480 24
A=33554431 847288609442 25
真ん中の数字は偶数になったときの数字、一番右側は偶数になるまでの回数です。
規則性があるのできっと、数学好きには証明する価値があるのだろう。
ちなみに、C=5にしてみると
A=1 8 2
A=3 8 1
A=7 18 1
A=15 38 1
A=31 78 1
A=63 158 1
A=127 318 1
A=255 638 1
A=511 1278 1
A=1023 2558 1
A=2047 5118 1
A=4095 10238 1
A=8191 20478 1
A=16383 40958 1
A=32767 81918 1
A=65535 163838 1
A=131071 327678 1
A=262143 655358 1
A=524287 1310718 1
A=1048575 2621438 1
A=2097151 5242878 1
A=4194303 10485758 1
A=8388607 20971518 1
A=16777215 41943038 1
A=33554431 83886078 1
A=1のとき以外は常に1になります。
じゃ、c=7のときは
A=1 4 1
A=3 480 4
A=7 88 2
A=15 186 2
A=31 382 2
A=63 774 2
A=127 1558 2
A=255 3126 2
A=511 6262 2
A=1023 12534 2
A=2047 25078 2
A=4095 50166 2
A=8191 100342 2
A=16383 200694 2
A=32767 401398 2
A=65535 802806 2
A=131071 1605622 2
A=262143 3211254 2
A=524287 6422518 2
A=1048575 12845046 2
A=2097151 25690102 2
A=4194303 51380214 2
A=8388607 102760438 2
A=16777215 205520886 2
A=33554431 411041782 2
Re: c++を使ったプログラミング!できる方いませんか??
すると、もっと大きい数になったら、偶数にならないということを確認したいということですね。数学革命者 さんが書きました:一定の操作、今では、2147483647までは、31回の操作で偶数になりました。
その数、下記の赤い部分が無い=奇数が続く、と言う事です。
偶数にならないだろうという予測には根拠があるのですか?
根拠があって、それを実際に確認したいというなら、プログラム作ってもいいけど。
non
Re: c++を使ったプログラミング!できる方いませんか??
non さんが書きました:すると、もっと大きい数になったら、偶数にならないということを確認したいということですね。数学革命者 さんが書きました:一定の操作、今では、2147483647までは、31回の操作で偶数になりました。
その数、下記の赤い部分が無い=奇数が続く、と言う事です。
偶数にならないだろうという予測には根拠があるのですか?
根拠があって、それを実際に確認したいというなら、プログラム作ってもいいけど。
根拠は、あります。
Re: c++を使ったプログラミング!できる方いませんか??
※青い文字は黒である背景色に対して非常に読みにくいので,引用時に色情報を削除しました。数学革命者 さんが書きました:一定の操作、今では、2147483647までは、31回の操作で偶数になりました。Poco さんが書きました: 問題を再定義していただけませんか?
質問の内容が、また分からなくなっています。
「一定の操作」ってどんな操作ですか?
「その数」って何を指していますか?
その数、下記の赤い部分が無い=奇数が続く、と言う事です。
なぜ,「一定の操作」を数式で記述しないのですか。
その上で,求めたい値を数式中の変数で示せば,回答者が言葉の多義性について解釈をする必要はなくなるのですが。
コンピューターは,高々有限回の処理において解の有無を出すことはできますが,数学革命者 さんが書きました:私の見解ですが、一定の操作をすると、偶数にならないと思うのです。
無限回の処理において解が無いことを出すことは得意としません。
今回の場合は,先に私がやったように漸化式を作って一般項を出し,その一般項について解析することによってようやく証明が出来ます。
コンピューターが出来るのは,「偶数にならない」であろう候補となる(A, C)の組を見つけだす手伝いくらいでしょうか。
説明しましょうよ。数学革命者 さんが書きました:根拠は、あります。
その根拠を証明,少なくとも説明するのが数学だと思いますが。
オフトピック
本当に数学が好きなのか,疑問が出てきているところです
Re: c++を使ったプログラミング!できる方いませんか??
ともかく、1606938044258990275541962092341162602522202993782792835301375までやってみた。
C=3のとき、ここまで特異な現象は起きない。もっと、桁増やしますか?
C=3のとき、ここまで特異な現象は起きない。もっと、桁増やしますか?
- 添付ファイル
-
- output.txt
- 実行結果
- (40.32 KiB) ダウンロード数: 137 回
non
Re: c++を使ったプログラミング!できる方いませんか??
根拠の提示待ちで良いのでは?non さんが書きました:C=3のとき、ここまで特異な現象は起きない。もっと、桁増やしますか?
#ちなみに仕事を15分ほどサボって、Ciの一般項から、Ciが常に奇数となる条件を考えてみましたが、
#そんなA,Cは存在しない、というのが私の結論でした。
Re: c++を使ったプログラミング!できる方いませんか??
C=3として
偶数にならないということは
A=1 2 1
この赤文字の部分が∞になる時です。
ならばA=∞であるしかないような気がします。
憶測でしゃべっているので数学革命者さんの根拠待ちですが。
偶数にならないということは
A=1 2 1
この赤文字の部分が∞になる時です。
ならばA=∞であるしかないような気がします。
憶測でしゃべっているので数学革命者さんの根拠待ちですが。
Re: c++を使ったプログラミング!できる方いませんか??
nonさんいつもありがとうございます。non さんが書きました:ともかく、1606938044258990275541962092341162602522202993782792835301375までやってみた。
C=3のとき、ここまで特異な現象は起きない。もっと、桁増やしますか?
根拠です。c=3の場合のエクセル版(私の見解ですが…。)
(ある奇数×3+1)/2の計算結果が、必ず奇数であれば、計算値は無限に大きくなって行くことが証明されます。
では、その様な始まりの奇数Xがあるか間違っているか、エクセルを使って検証してみました。列Aに上の行から順番に、1・3・5・7・9・11・・・・と奇数を入力しました。列Bに上から順に「=(A1×3+1)/2」「=(A2×3+1)/2」「=(A3×3+1)/2」・・・・と、左のA列の奇数を3倍して1を足し2で割る数式を入力した。列Cに上から順に「=(B1×3+1)/2」「=(B2×3+1)/2」「=(B3×3+1)/2」・・・・B列のセルの計算値を、更に3倍して1を足し2で割る数式を入力しました。同様の式をD列・E列・F列・・・に入力して行き、どんどん3倍して1を足し2で割る計算を行いました。
この結果、全ての列の計算値が奇数となるものがあれば、計算値は無限に大きくなって行きます。そこで、各列において奇数が出現する様子を見てみましょう。B列では、上から2回に1度5・11・17・23・29・35・・と奇数が現れます。C列では、4回に1度17・35・53・71・89・107・125・・・と奇数が現れます。D列では8回に1度53・107・161・215・269・323・・・と奇数が現れます。E列では、16回に1度161・323・485・647・809・・・と奇数が現れます。F列では、32回に1度485・971・1457・1943・2429・2915・・・と奇数が現れます。G列では、64回に1度1457・2915・4373・5831・7289・・・・と奇数が現れます。以後同様に、H列では128回に1度、I列では256回に1度、J列では512回に1度奇数が現れます。
ここまでの計算で、奇数が連続するのは、512行目の1,023・1,535・2,303・3,455・5,183・7,775・11,663・17,495・26,243・39,365の1つです。3倍して1を足し2で割る計算をn回行えば、全ての計算値が奇数になるものは、2のn乗分の1に減少していきます。
従って、計算を行えば行う程、計算値が奇数の連続になるものは1/2・1/4・1/8・1/16・1/32・・どんどん半分に減少していきます。しかし、無限の数の中では、2のn乗分の1は決して0にはなりません。3倍して1を足し2で割る計算をn回する場合、1から数えて2のn乗番目の奇数(又はその倍数番目の奇数)から始めると、n回の計算結果全てが奇数となるとおもいます。
打ち疲れました…。
疑うのもやめませんか?
Re: c++を使ったプログラミング!できる方いませんか??
Poco さんが書きました:根拠の提示待ちで良いのでは?non さんが書きました:C=3のとき、ここまで特異な現象は起きない。もっと、桁増やしますか?
#ちなみに仕事を15分ほどサボって、Ciの一般項から、Ciが常に奇数となる条件を考えてみましたが、
#そんなA,Cは存在しない、というのが私の結論でした。
お仕事邪魔してすみません…。
Re: c++を使ったプログラミング!できる方いませんか??
涼雅 さんが書きました:C=3として
偶数にならないということは
A=1 2 1
この赤文字の部分が∞になる時です。
ならばA=∞であるしかないような気がします。
憶測でしゃべっているので数学革命者さんの根拠待ちですが。
そうかもしれません。
虚数ですかね??
Re: c++を使ったプログラミング!できる方いませんか??
はじめA列に入力する数値をn個とすると
x列目に存在する奇数の数はn/(x^2)であり、
n,xは限りなく無限に近い自然数であるとします。
1~A列目n番目の数字(3n+1)までの間で
x列目に偶数が存在しない時、
n/(x^2)=0であり、
これを解いて
n=0これはnが自然数であることに矛盾するため
この命題は偽であると考えます。
x列目に存在する奇数の数はn/(x^2)であり、
n,xは限りなく無限に近い自然数であるとします。
1~A列目n番目の数字(3n+1)までの間で
x列目に偶数が存在しない時、
n/(x^2)=0であり、
これを解いて
n=0これはnが自然数であることに矛盾するため
この命題は偽であると考えます。
最後に編集したユーザー nil on 2012年8月18日(土) 01:21 [ 編集 1 回目 ]
Re: c++を使ったプログラミング!できる方いませんか??
上はnを自然数と仮定した時で、
n=-1であれば結果は永遠に-1です
数学革命者さんはある奇数Aと言っているだけで自然数正の奇数[訂正]であるとは一言も言っていないのでおそらくこれが答えです。
n=-1であれば結果は永遠に-1です
数学革命者さんはある奇数Aと言っているだけで自然数正の奇数[訂正]であるとは一言も言っていないのでおそらくこれが答えです。
Re: c++を使ったプログラミング!できる方いませんか??
ある奇数を a とおくと、n 回計算した時の結果は
(a+1)(3/2)n-1
と表すことができます。(途中経過は、http://goo.gl/8RKFQ)
そうすると、n = log2(a+1) が整数解を持つときに計算結果が偶数になります。(3log2(a+1) - 1)
例)a = 1023 のとき、 log2(1023+1) = 10 で 10回目で偶数になる
n に整数解がない場合でもnを増加させると(a+1)が2nを約数として持たなくなり、
計算結果が整数でなくなってしまうのでやはり奇数が続くことはありません。
(a+1)(3/2)n-1
と表すことができます。(途中経過は、http://goo.gl/8RKFQ)
そうすると、n = log2(a+1) が整数解を持つときに計算結果が偶数になります。(3log2(a+1) - 1)
例)a = 1023 のとき、 log2(1023+1) = 10 で 10回目で偶数になる
n に整数解がない場合でもnを増加させると(a+1)が2nを約数として持たなくなり、
計算結果が整数でなくなってしまうのでやはり奇数が続くことはありません。
Re: c++を使ったプログラミング!できる方いませんか??
すみません、これってつまり、n回(有限回)なら計算結果は奇数が続くけど、無限回繰り返そうと試みたら必ず計算結果に偶数が登場する、ってことですとね。数学革命者 さんが書きました:ここまでの計算で、奇数が連続するのは、512行目の1,023・1,535・2,303・3,455・5,183・7,775・11,663・17,495・26,243・39,365の1つです。3倍して1を足し2で割る計算をn回行えば、全ての計算値が奇数になるものは、2のn乗分の1に減少していきます。
従って、計算を行えば行う程、計算値が奇数の連続になるものは1/2・1/4・1/8・1/16・1/32・・どんどん半分に減少していきます。しかし、無限の数の中では、2のn乗分の1は決して0にはなりません。3倍して1を足し2で割る計算をn回する場合、1から数えて2のn乗番目の奇数(又はその倍数番目の奇数)から始めると、n回の計算結果全てが奇数となるとおもいます。
打ち疲れました…。
疑うのもやめませんか?
これは必ず計算が終わる根拠ではありませんか?
私の結論は、(CA+1)を(2^n)*pという形に因数分解した場合、nの回数だけ計算が続く、というものでした。
CもAも定数なので、無限に計算が続くことn→∞になることはありません。
#個人的には数学ってのは自分(相手)の論理を疑うものだと思っています。正しいか正しくないか、ってのが肝なので。
Re: c++を使ったプログラミング!できる方いませんか??
まぁよくわかりませんけど、プログラミングを使う必要はなさそうですね。
多分問題ないと思いますが、数学あんま好きじゃないんでなんかおかしかったら突っ込んでくださいm(_ _)m
A1 = 1,
An+1 = 2*An + 1
・・・で定義される数列Anを定義する。
An+1 + 1= 2*( An + 1 ) であり、一般項Anは
An = 2^n - 1 ・・・①で表すことができる。(ただしK^n は Kのn乗を表す)
また次のような数列Cnを定義する。
Cn+1 = (3*Cn + 1) / 2
この数列はC0を、ある定数αとおいた場合、n回目の操作後におけるαの値を表す。
この漸化式は
Cn+1 + 1 = (Cn + 1) * 3 / 2
となるので
Cn = ( C0 + 1 )*(3 / 2 )^n - 1であらわされる。
さて、今ここでC0をAnと置き、m回目の操作後の値であるCmを求めると
Cm = ( An + 1 )*(3 / 2 )^m - 1
であり、m = nのとき
Cn = 3^n - 1となる。(Anをnで表した式①より)
ここで、3^nは常に奇数となるので、3^n - 1は偶数となる。
つまり、Anはn回の操作で必ず偶数となる。
以上説明終了。
数学によるとこういうことらしいですので、奇数が続くことはあり得ませんね。
反例をコンピューターで探すこと自体は別にかまいませんが、規則性が見えた時点で反例の存在は疑わしいですね。
ちなみに証明は面倒なので省きますが、n回目の操作までの間に、偶数が発生すると、その次の数が整数じゃなくなって
しかもその数に3を掛けても決して整数に戻らないため、n回の操作までに偶数が出てくることもないです。
ということですので、nonさんの数列は常に成り立つといえます。
多分問題ないと思いますが、数学あんま好きじゃないんでなんかおかしかったら突っ込んでくださいm(_ _)m
A1 = 1,
An+1 = 2*An + 1
・・・で定義される数列Anを定義する。
An+1 + 1= 2*( An + 1 ) であり、一般項Anは
An = 2^n - 1 ・・・①で表すことができる。(ただしK^n は Kのn乗を表す)
また次のような数列Cnを定義する。
Cn+1 = (3*Cn + 1) / 2
この数列はC0を、ある定数αとおいた場合、n回目の操作後におけるαの値を表す。
この漸化式は
Cn+1 + 1 = (Cn + 1) * 3 / 2
となるので
Cn = ( C0 + 1 )*(3 / 2 )^n - 1であらわされる。
さて、今ここでC0をAnと置き、m回目の操作後の値であるCmを求めると
Cm = ( An + 1 )*(3 / 2 )^m - 1
であり、m = nのとき
Cn = 3^n - 1となる。(Anをnで表した式①より)
ここで、3^nは常に奇数となるので、3^n - 1は偶数となる。
つまり、Anはn回の操作で必ず偶数となる。
以上説明終了。
数学によるとこういうことらしいですので、奇数が続くことはあり得ませんね。
反例をコンピューターで探すこと自体は別にかまいませんが、規則性が見えた時点で反例の存在は疑わしいですね。
ちなみに証明は面倒なので省きますが、n回目の操作までの間に、偶数が発生すると、その次の数が整数じゃなくなって
しかもその数に3を掛けても決して整数に戻らないため、n回の操作までに偶数が出てくることもないです。
ということですので、nonさんの数列は常に成り立つといえます。