如何写一个 Javascript 骰子程式
发布网友
发布时间:2022-04-24 08:11
我来回答
共3个回答
热心网友
时间:2022-04-24 09:40
下面这个函数kkk,参数:
m: 几个骰子
n: 是投多少计统计
f: 多少面的骰子
返回的是数组:从小到大记录了,各点子出现的数量,
kkk=function(m=2,n=5000,f=6){
var i,j,t,no,to=[];
no=m*f-m+1;
for(i=0;i<no;i++){
to[i]=0;
}
for(i=0;i<n;i++){
t=0;
for(j=0;j<m;j++){
t+=Math.floor(Math.random()*f);
}
to[t]+=1;
}
for(i=0;i<no;i++){
console.log(m+'个骰子投'+n+'次,点数为'+(i+m)+'出现的次数为:'+to[i]+',出现概率为:'+(to[i]/n));
}
return to;
}
热心网友
时间:2022-04-24 10:58
<html>
<head>
<script>
//掷骰子
function getN(){return Math.round(5*Math.random()+1);}
//连续掷2个骰子n次,返回储存每次骰子的和的数组
function getNs(n){
var rst = [];
var a = 0, b = 0;
for(var i=0;i<n;i++){
a = getN();
b = getN();
rst.push(a+b);
}
return rst;
}
//统计数组中某个数的出现次数
function getNc(n,arr){
var times = 0;
for(var i=0;i<arr.length;i++){
if(arr[i]==n){
times++;
}
}
return times;
}
//分析掷骰子的结果数组,统计骰子和出现次数,按从小到大排列,并保存成一个二维数组
function getC(arr){
var c = [];
for(var i=2;i<=12;i++){
c.push([i,getNc(i,arr)]);
}
c.sort(function cop(a,b){return a[1]-b[1];});
return c;
}
//输出n个字符char
function printChar(n,char){
var c = [];
for(var i=0;i<n;i++){
c.push(char);
}
return c.join('');
}
//输出统计数组
function printC(arrc,charmax,char){
//var minc = arrc[0][1];
var maxc = arrc[arrc.length-1][1];
var charn = maxc/charmax;
var str = '';
for(var i=0;i<arrc.length;i++){
str += arrc[i][0]+'----'+arrc[i][1]+'----'+printChar(Math.round(arrc[i][1]/charn),char)+'<br>';
}
return str;
}
</script>
</head>
<body>
<script>
var arr = getNs(5000);
var c = getC(arr);
var str = printC(c,40,'*');
document.write(str);
</script>
</body>
</html>
热心网友
时间:2022-04-24 12:33
挽尊