人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

乱数(Rnd)を用いて0から100までの数字をランダムに生成しそれらのデータをten(10,10)の1行1列目から10行10列目までに代入し各行の標準偏差を求め0列目に代入し全要素を出力するプログラムを作ってください

●質問者: sina
●カテゴリ:コンピュータ 学習・教育
✍キーワード:データ プログラム ランダム 乱数 数字
○ 状態 :終了
└ 回答数 : 8/8件

▽最新の回答へ

1 ● nansya
●14ポイント

http://www.hatena.ne.jp/

はてな

OSや言語が指定されていませんのでお答えできませんが...、「学習・教育」に投稿されているので、おそらく質問の内容のソフトを宿題か何かで作ろうとしているのでしょうが、「作ってください」というよりは 具体的に分からない箇所を書かれたほうがいいかと思いますよ。


2 ● khayashi
●14ポイント

http://www.okada.jp.org/RWiki/

RjpWiki - RjpWiki

フリー(GNU)の統計パッケージRではこうなります。

> mat<-matrix(floor(runif(100)*101),10,10)

> mat

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]

[1,] 22 44 74 59 63 72 56 65 52 90

[2,] 38 89 95 83 14 30 6 13 64 10

[3,] 75 51 44 14 27 34 49 72 22 34

[4,] 2 37 52 62 43 0 62 63 98 23

[5,] 15 22 17 73 60 90 16 69 40 51

[6,] 2 94 73 7 91 23 42 93 52 25

[7,] 86 90 33 18 22 27 34 27 93 37

[8,] 2 32 54 90 27 45 88 3 30 11

[9,] 70 36 32 74 82 95 56 3 80 99

[10,] 63 48 60 28 21 99 41 67 10 46

> cbind(apply(mat,1,sd),mat)

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]

[1,] 18.42130 22 44 74 59 63 72 56 65 52 90

[2,] 35.33899 38 89 95 83 14 30 6 13 64 10

[3,] 20.16488 75 51 44 14 27 34 49 72 22 34

[4,] 30.14705 2 37 52 62 43 0 62 63 98 23

[5,] 27.33354 15 22 17 73 60 90 16 69 40 51

[6,] 35.85403 2 94 73 7 91 23 42 93 52 25

[7,] 30.21424 86 90 33 18 22 27 34 27 93 37

[8,] 31.58692 2 32 54 90 27 45 88 3 30 11

[9,] 30.69220 70 36 32 74 82 95 56 3 80 99

[10,] 25.72526 63 48 60 28 21 99 41 67 10 46

0から100っていうのが100を含むのかどうかわかりませんが、

100を含まないときには101を100に

整数でなくていいときはfloorの部分を削除してください。

Rだとデフォルトでより高品質な<a href=”

http://www.math.keio.ac.jp/home2/matumoto/public_html/mt.html

” target=_blank>メルセンヌツイスター</a>での乱数です。


3 ● wan2ree
●14ポイント

http://www.fuji.ne.jp/~excelyou/

Excelファンクラブ

URLはダミーです。

全要素とは、10行10列の乱数と各列の標準偏差ですよね?

EXCEL VBAでもよく、かつ、ten(10,10)をEXCELのワークシートとして、そこに値が表示(出力)させるのでよいのであれば、

Sub ten()

Dim i As Integer, j As Integer

For i = 1 To 10

For j = 2 To 11

Cells(i, j) = Int(Rnd() * 100)

Next j

Next i

For i = 1 To 10

Cells(i, 1) = Application.WorksheetFunction.StDev(Range(Cells(i, 2), Cells(i, 11)))

Next i

End Sub

これを標準モジュールにペーストして実行すれば出ます。


4 ● thim
●14ポイント

http://takeno.iee.niit.ac.jp/~shige/math/lecture/excsiee/error/n...

標準偏差

気分転換がてらやっつけで作ったので嘘が混じってるはず。OS,言語指定なしだったので適当にJavaで。

乱数(RND)とあるのでJavaではないんでしょうね。参考に。

次回からは分からないところだけ聞いた方がいいと思いますよ。作ってくださいだとちょっと・・・。

public class Deviation {

private static final int ROW_NUM = 10;

private static final int COLUMN_NUM = 10;

public static void main(String[] args) {

double[][] ten = createTen();

printTen(calcDeviation(ten));

}

private static double[][] createTen() {

double[][] ten = new double[ROW_NUM][COLUMN_NUM + 1];

for (int i = 0; i < ROW_NUM; i++) {

for (int j = 0; j <= COLUMN_NUM; j++) {

ten[i][j] = new Double(Math.random() * 100).intValue();

}

}

return ten;

}

private static double[] calcDeviation(double[] ten) {

for (int i = 0; i < ten.length; i++) {

double averageNum = average(ten[i]);

double[] powArray = new double[ten[i].length - 1];

for (int j = 1; j < ten[i].length; j++) {

powArray[j - 1] = Math.pow(ten[i][j] - averageNum, 2.0);

}

ten[i][0] = root(average(powArray));

}

return ten;

}

private static double sum(double[] array) {

double sum = 0;

for (int i = 0; i < array.length; i++) {

sum += array[i];

}

return sum;

}

private static double average(double[] array) {

return sum(array) / array.length;

}

private static double root(double num) {

return Math.sqrt(num);

}

private static void printTen(double[][] ten) {

for (int i = 0; i < ten.length; i++) {

for (int j = 0; j < ten[i].length; j++) {

System.out.println(”ten[” + i + ”][” + j + ”] = ” + ten[i][j]);

}

}

}

}


5 ● riceflow
●14ポイント

http://www.auemath.aichi-edu.ac.jp/teacher/iijima/web/vbs/sta_04...

平均・分散・標準偏差の計算(3)

0番目と書かれているC言語でしょうか?ということでC言語で書いてみます。ちなみにrndのとこはtime関数を使った方がよいかもしれませんが、使い方を忘れてしまったので調べてみてください。URLは検算用です。

#include<stdio.h>

#include<math.h>

int main(){

int i,j,data;

float ten[10][11],mean[10];

/*tenに数を代入及び平均値の計算*/

for(i=0;i<10;i++){

ten[i][0]=0.0;/*変数の初期化*/

mean[i]=0.0;

for(j=1;j<11;j++){

data=(int)rand();/*ランダム値の生成*/

data=data%101;

ten[i][j]=data;

mean[i]=mean[i]+data;

}

mean[i]=mean[i]/10;

}

/*標準偏差の計算*/

for(i=0;i<10;i++){

for(j=1;j<11;j++){

ten[i][0]=ten[i][0]+pow(ten[i][j]-mean[i],2);/*分散の計算*/

}

ten[i][0]=sqrt(ten[i][0]/10);/*標準偏差の計算*/

}

/*結果の出力*/

for(i=0;i<10;i++){

for(j=0;j<11;j++){

if(j==0)printf(”標準偏差=%f:使用データ ”,ten[i][j]);/*小数部分*/

elseprintf(”%d ”,(int)ten[i][j]);/*整数部分*/

}

printf(”¥n”);/*改行*/

}

}


1-5件表示/8件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ