No.3ベストアンサー
- 回答日時:
No.4
- 回答日時:
このいかにもな問題と「困り度3」、宿題ですか?
えと、お使いのプログラミング言語は何でしょう?
C/C++? JAVA? BASIC? COBOL? さらにはFORTLAN?
言語が判らないと具体的な回答はムリですが...
N以下の素数の問題は、
ある数Xが素数なら、
Xより小さい整数(1は除く)では割り切れない、という性質を使って、
「1からNまで変数Aを変化させるループ」の中に、
「2からA(ルートAでいいんだけど)まで変数Bを変化させるループ」を作りさらにその中で、
「AはBで割り切れるか?」の条件分岐を作り、
「割り切れれば素数でない」と
「最後(AもしくはルートA)まで割り切れなかったら素数である」の
ふたつの処理を書けばオッケーです。
また配列をご存知ならエラトステネスのふるい式に片付けるってのもテですが、
Nまで、ってなるとちょっと面倒です。
ヒストグラムの方は...
得点をどこから(キーボード、ファイルetc)、いくつ(10個、40個、N個etc)
入力するのか、の記述がないので答えようがありません。
「得点データの分布」は1個じゃ作れないでそれだけは判りますが。
あと、普通のコンソール(DOS上で動く)プログラムでヒストグラム、
ってのはちょっとつらいと思いますよ。(Visual Basicとか言うなら別ですが。)
あと、この質問カテゴリが違うと思います。
理系の学問ではなく、
「コンピュータ&インターネット」の「プログラミング」の中が正解でしょう。
以上。不明な点があれば補足をどうぞ。
No.2
- 回答日時:
学校の授業か何かならC言語での回答を求めておられるのでしょうがC言語は知らないのでfortranで例を述べさせて頂きます。
*program sosuu
integer n,i,j,k /整数の宣言文
read(5,*) n /求めたい数nを読み込む。
write(6,*) 2 /始めの素数を書き出す。
do 10 j=3,n /判定される数jを3からnまでまわす。
do 11 i=2,j-1 /判定する数iを2からj-1までまわす。
k = j - int(j/i)*i /jをiで割った余りを求める。
if(k.eq.0) go to 10 /上記の余りが0ならば10へ飛び、次のjに移る。
11 continue
write(6,*) j /jがj-1まで割り切れなければ素数と
判定し書き出す
10 continue
stop
end
こんな所ですかね。参考程度にしてください。
No.1
- 回答日時:
まず何のプログラム言語を使われるのか分からないし、またプログラム言語で書いてくれと言われても書けませんのでアルゴリズムの説明をします。
素数問題は、よくある問題です。方法は、
1)Nの平方根を求め、近似整数にし、1を加える。この数をMとする。
2)まず2を使って、Mを全部割り、割り切れる数とそうでない数に分ける(というか、正確には、割り切れる数を棄て、割り切れない数だけを残すのです)
3)次に割り切れない数の最初の数で、割り切れないで残った数の集合の数を全部割り、同じように割り切れない数を残す。
4)後は、同じことの繰り返す。Mまで実行する。
以上の1)から4)までの過程は、まず、1からMまでの数を入れた配列を定義し、iという変数(整数)で、配列内の数を全部割り、割り切れない数だけを配列に残すようなサブルーチンをつくる。i=2でスタートさせ、iの値を乱暴には、2,3,4,5,6……Mとして実行してもいいですが、iで配列を処理した後、次のiの値として、iの次に来る配列内の数を選ぶようにすれば、無駄な計算が省けます。
5)以上で、配列のなかには、M以下の素数が残ります。
6)今度は、1からNまでの数が入った配列を定義し、これを、先の割って、割れない数を残すサブルーチンに通し、今度は、iの値を、Mのなかの最初の数から順番に全部の数を使って、このNまでの数の入った配列を処理する。すると残るのは、素数だけです。
これは古いプログラム言語でのプログラムで、いまは、素数を直接出す関数などがあるかも知れません。しかし、上の計算は、エラトステネスのふるいを実行しているのです。
ヒストグラムはそういう図形を描くのですから、図形を描く方法は別に、10点刻みで、0から100点まで(というのは、11個ボックスができるのですが)のボックスに結果を振り分ける方法でしょう。
100は取りあえず省いて、0から99までとします。
1)試験結果がn個あるなら、nの大きさの配列を造り、そこに、データを入力します。
2)10個の配列を定義し、1から10まで名前を付けます(または10次元配列を定義します)。
3)乱暴な方法では、最初の配列の数を呼び出します。それを10で割り、結果が、0以上1未満か1以上2未満か、という風に、十個の条件分岐を造り、どれかの条件を通ったものは、その条件の番号(1から10まであります)に応じて、順次、10個の配列の対応する番号のものに、あるいは10次元配列のどこかの位置に入れて行きます。
4)この処理がn全体で終われば、十個の配列に幾つ数が入っているか数えるサブルーチンを造り、このサブルーチンで、各配列のなかの数字の数を計算して、これをヒストグラムに置き換えます。
なお、100点はどうするか、というと、十一番目の配列を定義して、10で割って10の時、この配列に入れるか、または、最後の十番目の配列に入れる数の選択条件を、9以上10以下とすれば、十番目の配列に勘定されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
ListViewで、非表示列って作れ...
-
VB6 配列を初期化したい
-
VBのFunctionで、配列を引数...
-
2つ以上の変数を比較して最大数...
-
for each の現在の配列ポインタ...
-
モンテカルロ法を用いた積分計...
-
特定のセル範囲で4文字以上入力...
-
エクセルマクロで配列の値から...
-
Excel-VBAで内臓のMINVERSE,MM...
-
VLOOKUP関数で、一番下...
-
Excel VBA 2次元配列...
-
VBA 1次元配列を2次元に追加する
-
配列を任意の数値で埋める方法
-
verilogで配列の任意の8bitを取...
-
エクセルで最小値から0を除く方法
-
VBAで多次元配列のインデックス...
-
subの配列引数をoptionalで使う...
-
配列に同じ値を入れる方法
-
C++のテーブル検索に関する質問...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
VB6 配列を初期化したい
-
特定のセル範囲で4文字以上入力...
-
ListViewで、非表示列って作れ...
-
《エクセル2000》A列・B列の商...
-
配列変数の添字が範囲外ですと...
-
Excel-VBAの配列「Public Const...
-
subの配列引数をoptionalで使う...
-
for each の現在の配列ポインタ...
-
配列を任意の数値で埋める方法
-
Dim は何の略ですか?
-
VBのFunctionで、配列を引数...
-
配列内の内容を全て表示する方法
-
2次元動的配列の第一引数のみを...
-
Excel VBA配列をFunctionに渡す
-
VBA Match関数の限界
-
Array配列の末尾に追加したい。
-
AES暗号にて、AES_set_encrypt_...
おすすめ情報