如何利用for循环在Math.random中获取10个整数

如何利用for循环在Math.random中获取10个整数

如下代码

如何利用for循环在下列代码中获取一个长度为10并且数组中的数值各不相同的数组?

下面的题目该怎么做?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Math.random()</title>
</head>
<body>
<script>
    function a(n,m){
        var ce=m-n+1;
        return Math.floor(Math.random()*ce+n);
    }
    var random1=a(1,100);
    document.write(random);//补充代码
</script>
</body>
</html>

对for循环非常苦手,看过视频后也不太理解他,该怎么办?

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

for 循环是您在希望创建循环时常会用到的工具。

下面是 for 循环的语法:

for (语句 1; 语句 2; 语句 3)
  {
  被执行的代码块
  }

语句 1 在循环(代码块)开始前执行

语句 2 定义运行循环(代码块)的条件

语句 3 在循环(代码块)已被执行之后执行

语句 1

通常我们会使用语句 1 初始化循环中所用的变量 (var i=0)。

语句 1 是可选的,也就是说不使用语句 1 也可以。

您可以在语句 1 中初始化任意(或者多个)值:

实例

for (var i=0,len=cars.length;i<len; i++)
{
document.write(cars[i] + "<br>");
}

循环整数示例代码:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>Math.random()</title>
	</head>

	<body>
		<script>
			document.write(parseInt(10 * Math.random())); //输出0~10之间的随机整数
			document.write(Math.floor(Math.random() * 10 + 1)); //输出1~10之间的随机整数
			function RndNum(n) {
				var rnd = "";
				for(var i = 0; i < n; i++)
					rnd += Math.floor(Math.random() * 10);
				return rnd;
			}
			document.write(RndNum(4)); //输出指定位数的随机数的随机整数
//			引用部分:
//			1. 从1开始 至 任意值parseInt(Math.random() * 上限 + 1);
//			2. 从任意值开始 至 任意值parseInt(Math.random() * (上限 - 下限 + 1) + 下限);

			function fRandomBy(under, over) {
				switch(arguments.length) {
					case 1:
						return parseInt(Math.random() * under + 1);
					case 2:
						return parseInt(Math.random() * (over - under + 1) + under);
					default:
						return 0;
				}
			}
			document.write(fRandomBy(1, 100)); //输出指定范围内的随机数的随机整数
		</script>
	</body>

</html>

实现思路不止一种,建议亲不要照抄代码,要自己研究一下哦

  • 老师写得真是漂亮!
    2017-04-02 20:58:57
  • zz胖胖 提问者 #2
    非常感谢!
    2017-04-02 21:43:21
  • 老师document.write(parseInt(10 * Math.random())); //输出0~10之间的随机整数,能输出10吗?最大不是才到9吗
    2017-05-16 13:51:54
ZoeHom 2017-04-18 14:59:42

<script>
    function Rad(n,m){
       var arr=[];
   
        for(var i=0;i<10;i++){
             var x=(m-n)+1;
            var r= Math.floor(Math.random()*x+n);
            arr.push(r);
        }
        return arr;
    }
   
    var newArr=Rad(0,100);
   
      var max=Math.max.apply(null,newArr);
      var min=Math.min.apply(null,newArr);
   
    document.write("随机数组如下"+newArr+"</br></br>");
    document.write("数组中的最大值是:"+max+",数组中的最小值是:"+min);
 
  
</script>

ZoeHom 2017-04-18 14:58:47

老师为什么不讲讲Math.max.apply(null,arr);这样的话会简单太多,我查找了很久再找到这个办法,因为Math.max(这里面根本就不能放数组),搞得我纠结了很久

  • 每一种效果实现 的方法都不是唯一的,老师只是给大家提供了一种较为容易理解的方式,但是不限制大家使用其他的方法实现,学习知识本身就需要举一反三,而不是只学“一加一”,亲能够自主的学习新的方法,这一点做的是非常好的~
    2017-05-17 11:05:37
BaconNUDT 2017-04-02 21:02:13
<script>
    //获取整数
    function getInt(){
        var nums = [];
        var num;
        var jump;
        num = Math.floor(Math.random()*101);
        nums.push(num);
        while(nums.length<10){//生成长度为10的数组
            num = Math.floor(Math.random()*101);
            for(var i=0;i<nums.length;i++){
                if(num[i]==num) {
                    jump = true;
                }
            }
            if(jump) continue;//如果新生成的数与之前存在的相等,则跳过重新进行生成
            nums.push(num);
        }
        return nums.sort(function(a,b){return b-a;});//返回已经排序的数组
    }
    //获取最大值
    function arrMax(arr){
        var max = 0;
        for(var i=0;i<arr.length;i++){
            if(arr[i]>max){
                max = arr[i];
            }
        }
        return max;
    }
    //获取最小值
    function arrMin(arr){
        var min = 100;
        for(var i=0;i<arr.length;i++){
            if(arr[i]<min){
                min = arr[i];
            }
        }
        return min;
    }
    var newArr = getInt();
    document.write(newArr + "<br />");
    document.write("这组数中最大的值是:" + arrMax(newArr) + ",最小的是" + arrMin(newArr));
    //或者直接输出newArr[0]和newArr[9],即
    //document.write("这组数中最大的值是:" + newArr[0] + ",最小的是" + newArr[9]);
    //另外还有一种reduce方法,我注释掉了,你可以试一下
    //document.write("这组数中最大的值是:" + newArr.reduce(function(a,b){return Math.max(a,b);}) + ",最小的是" + newArr.reduce(function(a,b){return Math.min(a,b);}));
</script>

给你看一下我的,我觉得可能是生成不同的随机数中的不同,把你难住了,尝试看一下我的,然后写一下自己的,助教老师写得非常好,建议参考老师的。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师