![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.10ベストアンサー
- 回答日時:
No.8へのコメントについてです。
> ①2,3,5は別に作っておく。とはどういうことでしょうか?
知らんす。「別に作」るだなんて意味のはっきりしないことを言ってるのは、誰?
> ②7から数えて5つ目の素数はなぜ、19ではないのでしょうか?9個を登録とはどういうことでしょうか?ご教授下さい。
7から数えて5つ目の素数は19ですよね。No.8の
> 5より大きい素数について「小さい順に何番目の素数までをリストに入れるか」をあらかじめ
というところと、
> すると、7から数えて5つ目の素数は17なので、289(=17^2)以下のnについてならば、それが素数かどうかを調べることができるわけです。
という記述はチョンボでした。p[1]=5ですから、正しくはそれぞれ
5以上の素数について「小さい順に何番目の素数までをリストに入れるか」をあらかじめ
すると、5から数えて5つ目の素数は17なので、289(=17^2)以下のnについてならば、それが素数かどうかを調べることができるわけです。
です。
後、6°続きで、ある電卓で記憶装置を8個( 1個はループを制御するためのインデックス-レジスタ)を使い、l=5したがって5,7,11,13,17の9個を登録してのところがわかりません。なぜ、9個登録したことになるのでしょうか?インデックス-レジスタとは何でしょうか?なぜ、9個なのでしょうか?ご教授下さい。
No.11
- 回答日時:
←No.10
ごめん、それたぶん私。 No.4 に書いた。
写真の文章は、私にとってはあまり違和感がない。
たぶん、この著者は私がそういう本を読んでた頃に
そういう本を書いてた世代の人で、要するに相当の御高齢。
コンピューターと言えば、専門家以外はNECのPCで
BASICを使ってた時代の文献だと思う。考古学やね。
では、なぜ、P∧2として求めたのでしょうか?17∧2のことです。後、なぜ、P=17の時しか成り立たないのに、Q∧2 ー 1で、(P+ 2)∧ 2ー 1としたのでしょうか?ご教授下さい。すみませんが。
No.8
- 回答日時:
No.7へのコメントについて。
最初のご質問の趣旨と全然違っちゃってますが、ま、付き合うか。
[1] nが素数かどうかを判定するのに、素数を小さい順に並べたリストpを使って、p[1], p[2], …の順に割り切れるかどうかをテストするわけです。このとき、√n よりも大きい素数で割り算してみる必要はない。
例えば n=77が素数かどうかを調べるには(√n = 8.77なので) p[s]≦8であるような素数だけで割ってみれば良いんです。77÷11は割り切れますけれども、11で割ってみる必要はない。なぜならその答は77÷11=7であり、商は11より小さい。そしてこれはもうすでにすでに77÷7のテストで割り切れることが分かっているからです。なので、√n<p(つまりn/p<p)であるpで割り切れるかどうかをテストする必要はない。pが小さい順にテストをしていくからこそ、こういうことが言えるんですね。…と、まずはここまでを理解なさった上で。
> ①3°で、n/ps≦psならnを出力(素数)、n/ps>psとなったらやめる。とは
[2] このアルゴリズムは(ボケてて見えんのですが、おそらく)5より大きい素数について「小さい順に何番目の素数までをリストに入れるか」をあらかじめ指定しておくようになっているのでしょう。だから、nが素数だとわかってnをプリントしても、すでに見つかった素数がリストに入れるべき予定の個数に達していたら、素数のリストpにnを登録しない。(これによってメモリを節約する。)
一方、素数を小さい順に並べたリストがp[1]~p[s]までしかないとき、これらを使って「nが素数かどうか」を判定できるのはn≦p[s]^2 (つまり n/p[s]≦p[s])の場合に限られます。それより大きいnについては判定ができない。だからプログラムは終了です。これが「n/p[s]>p[s] (つまりn>p[s]^2 )になったらやめる」ということですね。
> ②後、6°続きで、ある電卓で記憶装置を8個( 1個はループを制御するためのインデックス-レジスタ)を使い、l=5したがって5,7,11,13,17の9個を登録してのところがわかりません。
[3](ボケてて見えんので、何言ってんだかわからんですが、おそらく)[2]で説明した「小さい順に何番目の素数までをリストに入れるか」の指定がlなのでしょう。l=5だというのなら「リストに入れるのは5個だけ」と決めてある。すると、7から数えて5つ目の素数は17なので、289(=17^2)以下のnについてならば、それが素数かどうかを調べることができるわけです。
>③最後の文の、piによる商がpi以下になったら打ち切るという判定もなぜ加える必要があるのでしょうか?
[4](これまた、ボケてて見えんので何言ってんだかわからんですが、おそらく)このアルゴリズムは、nが素数かどうかを判定するのに、リストpにある素数全部について割り切れるかどうかのテストをやっているんではないでしょうかね。そうだとすると無駄な計算をやっていて効率が悪い。
割り切れるかどうかをn/p[1], n/p[2], …と試して行って、もしどこかで割り切れたら、それ以上試し続けなくたって「nは素数でない」と判定できます。これは当たり前ですね。
しかし[1]で説明した通り、nが素数かどうかを知るためには、√n よりも大きい素数で割り算してみる必要はない。だから、割り切れるかどうかをn/p[1], n/p[2], …と試して行って、どれでも割り切れないままついにn/p[i]≦p[i](つまりn≦p[i]^2 すなわち √n ≦ p[i] )になったら、それ以上試し続けなくたって、nは素数だと判定できる。このことを「piによる商(つまり n/p[i])がpi以下(つまりn/p[i]≦p[i])になったら打ち切る」と言っているんでしょう。
すみません。2つほど質問してもよろしいでしょうか?①2,3,5は別に作っておく。とはどういうことでしょうか?②7から数えて5つ目の素数はなぜ、19ではないのでしょうか?9個を登録とはどういうことでしょうか?ご教授下さい。
No.7
- 回答日時:
No.5へのコメントについて。
> この3行の解説を
n:= n+2
if flag then n:= n+2
flag := NOT(flag)
という手続きは、flagが真だと
n:=n+2
n:=n+2
flag := 偽
という動作をします。これによって、nは4増えた。そして、次にこの部分を実行する時にはflagが偽になっていますから、
n:=n+2
flag := 真
という動作をします。これによって、nは2増えた。そして、次にこの部分を実行する時にはflagが真になっています。
すみません。①3°で、n/ps≦psならnを出力(素数)、n/ps>psとなったらやめる。とはどういうことでしょうか?②後、6°続きで、ある電卓で記憶装置を8個( 1個はループを制御するためのインデックス-レジスタ)を使い、l=5したがって5,7,11,13,17の9個を登録してのところがわかりません。それと、③最後の文の、piによる商がpi以下になったら打ち切るという判定もなぜ加える必要があるのでしょうか?
以上3点についてご教授下さい。すみませんが。
No.6
- 回答日時:
画像は小さすぎて読む気はしないが、要は「エラストテネスの篩」の、もっと効率的なプログラミングについて興味を持ったということか。
車輪配列を使う方法があるけど、車輪配列とベルトラン・チェビシェフの定理が関係あることをどこかで見たのかな。No.5
- 回答日時:
No.3 に追記。
余計なお世話ですけど:ボケてて読めないのを心眼で読みますと、このページに書いてあるアルゴリズムは、「エラトステネスの篩」をそのままやってるんじゃありません。むしろ「いかにメモリをケチるか」という話をしているんです。
小さい順に素数を並べた表p[1], p[2], ...を作っていく。そのために、p[1]=5とし、n を 7, 11, 13, 17, 19, …と増やしていく(つまり5より大きい((2×3)の倍数)±1を小さい順に発生していく)過程で、「nは素数かどうか(すなわち、nが素数p[1], p[2], ... (ただしp[m]>n/p[m]になったら終わり)のどれでも割り切れないかどうか)」をテストし、素数だとわかったら表pにnを追加し、ついでにnをプリントする。
ここで、p[m]>n/p[m]をテストするためには、最初に表pがカラッポでは困る。なので、あらかじめp[1]=5が入れてある。そんなわけで、初めてプリントされるのは7ってことになります。
なお、「nを11, 13, 17, 19, …と増や」すということを、フラグを使って
n:= n+2
if flag then n:= n+2
flag := NOT(flag)
とやっている。つまり「nを4増やしたら次は2増やして、nを2増やしたら次は4増やす」ってことです。
ところで、30年以上前の本だということですけど、いや30年前でもすでにこれ、かなり古臭い書きようですね。40年前より「ふるい」感じです。
n:= n+2
if flag then n:= n+2
flag := NOT(flag)
がなぜ、「nを4増やしたら次は2増やして、nを2増やしたら次は4増やす」という意味になるのでしょうか?この3行の解説をご教授下さい。すみませんが。
No.4
- 回答日時:
7 からは珍しいかなあ。
PC でやるときに、表のメモリー容量を減らすために
最初から 2 と 3 の倍数は除いておいて
表のマスを割り当てない... というのは、よく行われるけど。
5 の倍数まで除外しとくのは、初めて聞いたかと思う。
除外する素数の個数をあまり増やすと、
表へのアクセスが不規則になって
そこで時間の無駄が発生するから。
No.2
- 回答日時:
> エラトステネスの篩で、7から始まる素数表というのは、あるのでしょうか?
相変わらず意味不明な日本語だなwwwwwwwww
エラトステネスの篩は自然数から素数を拾い出すアルゴリズムだが、それと
「7から始まる素数表」
なるものと何か特別な関係でもあるのかwwwwwwwww
! エラトステネスの篩(十進BASIC)
LET n = 100
DIM s(n)
MAT s = ZER ! 配列 s の全要素に 0(zero) を代入 ※s = 0 ではダメ
LET k = 0
FOR i = 2 TO n
IF s(i) = 0 THEN
PRINT USING "####":i;
LET k = k + 1
IF MOD(k,10) = 0 THEN
END IF
FOR j = i^2 TO N STEP i
LET s(j) = 1
NEXT j
END IF
NEXT i
END
n = 100の実行結果
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
7からの素数を表示したかったら
IF i > 5 THEN PRINT USING "####":i;
IF i > 5 THEN LET k = k + 1
とすればよいwwwwwwwww
7 11 13 17 19 23 29 31 37 41
43 47 53 59 61 67 71 73 79 83
89 97
あ~、早朝からバカバカしいwwwwwwwwwwwww
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ガーデニング・家庭菜園 庭に作った畑の土を洗い小石を取り除く 3 2022/10/26 19:46
- ガーデニング・家庭菜園 畑土について 2 2022/06/26 09:59
- ガーデニング・家庭菜園 畑の土の改良用の牛糞堆肥について 1 2022/08/03 14:16
- ダイエット・食事制限 ダイエットについて 痩せるどころか太り続けています。。 改善点を教えて頂きたく、質問させてください! 12 2022/10/14 11:11
- 結婚・離婚 政治家はどうして無能? 11 2022/08/20 09:01
- 飛行機・空港 女性客室乗務員(CA)にまで厳しいアルコール基準を設ける必要性 6 2022/09/03 21:11
- 介護 在宅酸素療法患者による身障者介護と勤務 1 2023/06/03 11:58
- ストレッチ・体操・エアロビクス 運動後の足の痛みについて 4 2023/07/13 15:16
- その他(学校・勉強) 緊急やねん!おらへんのか?親身にご回答頂ける方!! 職業訓練いってます 朝9時10分にショートホーム 4 2022/05/18 23:50
- その他(悩み相談・人生相談) あなたのご意見お聞かせください!! 職業訓練いってます 朝9時10分にショートホームルームが始まりま 6 2022/05/18 23:33
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
8÷0=
-
2の6乗の答えと計算方法
-
2500を3対2でわける計算式おし...
-
累乗の逆(対数?)の計算方法を教...
-
「逆数」って、何のためにある...
-
4^0.5乗の答え
-
AとBの比というのはA/Bの...
-
数学IIIの増減表について質問が...
-
掛け算と割り算の混じった問題
-
スマホで累乗の指数や、ルート...
-
πが入った時の回答
-
累乗
-
素因数分解で最小公倍数・最大...
-
数3です! lim(n→∞)(-2)^n -2^2...
-
300÷1.5=200の計算方法
-
0.75乗
-
a,bは整数とする。 aを7で割る...
-
パーセントの計算がまったく出...
-
算数
-
a+aの答えがこんがらがってし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2の6乗の答えと計算方法
-
2500を3対2でわける計算式おし...
-
素因数分解で最小公倍数・最大...
-
累乗の逆(対数?)の計算方法を教...
-
パーセントの計算がまったく出...
-
8÷0=
-
「逆数」って、何のためにある...
-
AとBの比というのはA/Bの...
-
代数和ってなんでしょう
-
Excel関数で、Nの1/3乗という...
-
~の~乗を計算機を使わずに簡...
-
割り算の説明
-
数学Aの合同式について質問です...
-
算術記号で、 ∧ はなんとよむ...
-
掛け算と割り算の混じった問題
-
4^0.5乗の答え
-
スマホで累乗の指数や、ルート...
-
累乗の計算の仕方
-
割引の計算がよく説明と理解が...
-
常用対数を使うと何が便利なん...
おすすめ情報
これの画像の解説お願いできますか?
拡大した写真を以下のURLに貼ったので、見ていただけると幸いです。
https://6900.teacup.com/cgu135/bbs/953
私のUPした画像で 1°のところに書かれていると思うのですが。ご教授下さい。すみませんが。
すみません。なぜ素数Pの次の素数(P+ 2)∧2 ー 1で、P+ 2=Qとして、Q∧ 2ー 1で、なぜ、− 1するのでしょうか?ご教授下さい。すみませんが。なぜ、(P+ 2)∧ 2ー 1はどうやって出てくるのでしょうか?ご教授下さい。すみません。
sが6以上になることもないのでしょうか?l=5の時です。ご教授下さい。すみませんが。