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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語 1 2022/11/09 13:05
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- その他(プログラミング・Web制作) VBA 1 2023/01/19 16:19
- C言語・C++・C# C言語 3 2022/11/09 13:27
- その他(プログラミング・Web制作) Pythonの問題です。 1 2022/08/02 12:39
- その他(プログラミング・Web制作) Python3プログラムについて 4 2023/05/21 14:55
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# C言語 3 2022/10/04 15:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBのFunctionで、配列を引数...
-
【VBA】配列とWorksheetFunctio...
-
[Excel2000_VBA] 型が一致しま...
-
for each の現在の配列ポインタ...
-
ListViewで、非表示列って作れ...
-
VLOOKUP関数で、一番下...
-
友愛数を探すプログラム
-
VBA 1次元配列を2次元に追加する
-
Array配列の末尾に追加したい。
-
AES暗号にて、AES_set_encrypt_...
-
VBAで近似曲線の係数取得
-
配列変数の添字が範囲外ですと...
-
linest関数に配列を渡す
-
VBAで多次元配列のインデックス...
-
VB2008: CSV を二次元配列に読...
-
2次元動的配列の第一引数のみを...
-
subの配列引数をoptionalで使う...
-
Excel-VBAの配列「Public Const...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
for each の現在の配列ポインタ...
-
VBのFunctionで、配列を引数...
-
subの配列引数をoptionalで使う...
-
VB6 配列を初期化したい
-
ListViewで、非表示列って作れ...
-
配列変数の添字が範囲外ですと...
-
Excel-VBAの配列「Public Const...
-
2次元動的配列の第一引数のみを...
-
VBAで近似曲線の係数取得
-
VLOOKUP関数で、一番下...
-
配列に同じ値を入れる方法
-
エクセルで最小値から0を除く方法
-
linest関数に配列を渡す
-
配列を任意の数値で埋める方法
-
Dim は何の略ですか?
-
配列内の内容を全て表示する方法
おすすめ情報