怎么用js求出6个1至100的随机数,并且求出奇数和?

JavaScript07

怎么用js求出6个1至100的随机数,并且求出奇数和?,第1张

<script>

document.write("<p>6个1-100的随机数为:")

for(var i=0,s=0i<6i++){

   var n=parseInt(Math.random()*100)+1

   if(i>0)document.write("、")

   document.write(n)

   if(n%2==1)s+=n

}

document.write("</p><p>其中的奇数和为 "+s+"</p>")

</script>

var getRandomArray = function() {

var i = 0,

s = '',

sp = ',',

next

while (i <100) {

// 产生1-100的随机数

next = Math.random() * 100 + 1

// 判断产生的数是否在随机数字符串里

if (s.indexOf(next) === -1) {

// 不存在

// 则加上这条

s += next + sp

// 并且记数器加1

i++

}

// 否则记数器不加1,继续循环

}

// 最后得到的是xx,xx,形式的字符串

// 因为split函数会保留最后一个分隔符后的数

// 所以通过slice(0,-1)去掉最后一个字符(也就是,号)

// 这样99个分隔符拼成的字符串就会被,号分割

// 成100个随机数组了

return s.slice(0, -1).split(',')

}

alert(getRandomArray())

就是生成无重复随机数了。我跟你说下原理,代码的话你自己就明白了。

每次生成一个随机数,再判断生成的随机数,是否存在于已经生成的随机数群组中,如果存在,则重复执行生成随机数这个动作。

这样就可以保证生成的随机数没有重复。而且位置也没有一定的规律。

我查了下手册,还有一个更简单的方法就是使用函数:shuffle( array &array )

该函数的作用是随机打乱一个数组。

这样就简单了,你先生成一个数组(1-100),然后使用此函数将数组随机打乱,这样就生成了无重复的随机数组。

以下代码亲测可行。

<?php

$numbers = range(1,100)//生成1-100之间的数组。

srand((float)microtime()*1000000)//建立随机种子

shuffle($numbers)//打乱数组

$i=0//换行标记

foreach ($numbers as $number) {//遍历数组

$i++//标记自增

echo "$number "//输出数值

if($i %10==0) echo "<br>"//如果输出10个则换行。

}

?>

MD写完了,发现你问的是JS的,我回答的是PHP的,不过方法1是通用的。JS中不知道有没有这样的函数。