アプリ版:「スタンプのみでお礼する」機能のリリースについて

---------------------------
| 2 | 3 | 7 | 4 | 1 || 17 |<横合計>
---------------------------
| 6 | 1 | 2 | 3 | / || // |
---------------------------
| 1 | / | / | / | / || // |
---------------------------
| 2 | / | / | / | / || // |
---------------------------
| 3 | / | / | / | / || // |
---------------------------
---------------------------
| 14 | / | / | / | / || // |<全合計>
---------------------------
<縦合計>

このように表示される。
…という処理がしたいのですがどういう処理を書けば良いのかわかりません。


理解した(1)と(2)の乱数発生の文を書いておきます。

*二次元配列を作成*
a = new Array(5)
for (i = 0; i <= a.length-1; i++){ //1次元
a[i] = new Array(5)
for (j = 0; j <= a[i].length-1; j++){ //2次元
a[i][j] = "["+ i +","+ j +"]"
var g = "";
document.write(a[i][j]);
}
}


*乱数を100回発生*
var z = "";
for(k = 1; k <= 100; k++){
z = Math.round(Math.random()); //発生した乱数をzに代入
}

以上、
よろしくお願いいたします。

A 回答 (3件)

おおむね分かったんですが


あと一点、わからない部分があります。

>(2)乱数を100回発生させて、25マスの何処かに入る様にする。
何処かに入る、とはどういった基準で入れるんでしょうか?
Math.randomは 0~1未満(0.999~9) の乱数値を発生する関数ですが、
発生した値と入れるべきマス目の関係性は??
乱数が25種類(0~24)になるように調整すればいいのでしょうか?
Yesなら→以下を前回のサンプルの 2次元配列作成 の辺りと差し替え

//2次元配列作成(0回で初期化)
a = new Array(5);
for (i = 0; i <= a.length-1; i++){ //1次元
a[i] = new Array(5);
for (j = 0; j <= a[i].length-1; j++){ //2次元
a[i][j]=0;
}
}
//0~24の乱数を発生させ2次元配列に格納
for(k=0;k<100;k++){
g = parseInt(Math.random() *25);//乱数(0~24)
x = parseInt(g/5);// g÷5(余りは切り捨て)
y = g%5;// g÷5の余り
a[x][y]++;//該当するマス目の発生回数をカウントアップ
}
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ありません。

steel_grayさんのおかげで、したかった処理が出来ました。
説明が言葉足らずで分かりにくかったとは思いますが、ずっと付き合って考えていただいて本当にありがとうございました!

お礼日時:2007/06/03 14:56

#1です。


>「乱数発生回数の合計」ではなく「乱数の合計」を出しているようです。
まさしく乱数の合計を出すサンプルを作りました。

途中までのコードや、
表の「/」や「//」が何を表わしているとか
なんだか分からなかったもんで。


サンプルが参考になって正解が出ればよいのですが、
もし引き続きお困りでしたら
「乱数発生回数の合計」というのが何の事だかもう少し詳しく補足していただければまた何かアドバイスできるかもしれません。

この回答への補足

大切な説明部分が抜けておりました!
申し訳ありません!

箇条書きで失礼します。

(1)縦に5マス、横に5マス、合計25マスの器を作る。
(2)乱数を100回発生させて、25マスの何処かに入る様にする。
(3)各マスの乱数発生回数を表示する。
(4)結果表示の際、縦、横の合計欄を追加する。

---------------------
| 2 | 3 | 7 | 4 | 1 |
---------------------
↑この数は、このマスに何回乱数が入ったか、という数になります。

お手数おかけします。
お願いいたします。

補足日時:2007/05/23 21:55
    • good
    • 0

もーひとつ、どうしたいのかがわからないのですが、一応サンプルを。



<html>
<head>
<style type="text/css">
<!--
td,th{
border:1px solid gray;
}
td{
text-align:right;/*数値なので右寄せに*/
font-family:monospace;/*数値なので等幅フォントに*/
}
-->
</style>

</head>
<body>

<table id="T">
<tr><th></th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>計</th></tr>
<tr><th>1</th><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><th>2</th><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><th>3</th><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><th>4</th><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><th>5</th><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><th>計</th><td></td><td></td><td></td><td></td><td></td><td></td></tr>
</table>


<script type="text/javascript">
<!--
var T = document.getElementById('T');

//2次元配列作成
a = new Array(5);
for (i = 0; i <= a.length-1; i++){ //1次元
a[i] = new Array(5)
for (j = 0; j <= a[i].length-1; j++){ //2次元
a[i][j] = parseInt(Math.random() *100) ;//0~99の乱数
}
}


//2次元配列をテーブルに設定(&計の算出)
ttate = [0,0,0,0,0];//縦欄の計の配列(0で初期化)
total=0;//総合計
for (i = 0; i <= a.length-1; i++){
tyoko = 0;//横の計
for (j = 0; j <= a[i].length-1; j++){
T.rows[i+1].cells[j+1].appendChild(document.createTextNode(a[i][j]));
tyoko += a[i][j];
ttate[j]+=a[i][j];
}
T.rows[i+1].cells[j+1].appendChild(document.createTextNode(tyoko));
}
for (j = 0; j <= a[0].length-1; j++){
T.rows[i+1].cells[j+1].appendChild(document.createTextNode(ttate[j]));
total+=ttate[j];
}
T.rows[i+1].cells[j+1].appendChild(document.createTextNode(total));
//-->
</script>

</body>
</html>

この回答への補足

すばやい回答ありがとうございます。

教えていただいてとても言い難いのですが、
「乱数発生回数の合計」ではなく「乱数の合計」を出しているようです。
教えていただいた処理を参考に考えてみたいと思います。

補足日時:2007/05/23 17:19
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!