急!急! js中产生不一样的随机数!

H_Gragon 2012-09-27 09:55:16
如1-30之间,我想产生10个随机整数,但这10个(或15个)个数必须不一样,求高手解答~
...全文
593 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
H_Gragon 2012-09-27
  • 打赏
  • 举报
回复
谢谢了,我要结贴了……
H_Gragon 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
HTML code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTE……
[/Quote]
太感谢你了,个数也对,也不重复
桃园闲人 2012-09-27
  • 打赏
  • 举报
回复
编程要学会灵活多变,主要主干部分出来了,细节部分很容易修改的。
H_Gragon 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用 4 楼 的回复:

引用 2 楼 的回复:
HTML code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<MET……
[/Quote]
哪求求你把代码补全吧,实现我要的功能(要求的个数,而且不能重复),感激不尽……
桃园闲人 2012-09-27
  • 打赏
  • 举报
回复

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
function getNumb(){
var num = new Array();
for(var i = 0; i < 10; i++){
var val = Math.ceil(Math.random() * 30);
var isEqu = false;
for(var idx in num){
if(num[idx] == val){isEqu = true; break;}
}
if(isEqu)
i--;
else
num[num.length] = val;
}
return num;
}

function test(){
alert(getNumb());
}
//-->
</SCRIPT>
</HEAD>

<BODY onload="test()">

</BODY>
</HTML>



个数不可能少的!你在看看上面的,去掉相同的。
桃园闲人 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 2 楼 的回复:
HTML code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Autho……
[/Quote]
这只是核心代码,去掉重复可以在for循环中添加判断
H_Gragon 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
JScript code

<script type="text/javascript">
var r=parseInt(Math.random()*30);
var array=[];
for(var i=0;i<11;i++)
{
var flag=0;
do
{
for(var j=0;j<array.length;j++)
{
if(array[……
[/Quote]
你的方法也试了,倒是不产生相同的随机数,但个数不对啊(要求是10个,你有时候9个有时候8个),你是不是把重复的随机数去了,但你得重新再生产随机数,把个数补全啊
H_Gragon 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
HTML code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTE……
[/Quote]
你的方法试了,还是有重复的随机数……
桃园闲人 2012-09-27
  • 打赏
  • 举报
回复
看错需求了,你只要10个数,把那个for循环中的 i < 30 修改为 i < 10
桃园闲人 2012-09-27
  • 打赏
  • 举报
回复

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
function getNumb(){
var num = new Array();
for(var i = 0; i < 30; i++){
num[num.length] = Math.ceil(Math.random() * 30);
}
return num;
}

function inital(){
alert(getNumb());
}
//-->
</SCRIPT>
</HEAD>

<BODY onload="inital()">

</BODY>
</HTML>
  • 打赏
  • 举报
回复

<script type="text/javascript">
var r=parseInt(Math.random()*30);
var array=[];
for(var i=0;i<11;i++)
{
var flag=0;
do
{
for(var j=0;j<array.length;j++)
{
if(array[j]==r) {flag=1;break;}
}
if(!flag)
{
array[array.length]=r;
}
else
{
r=parseInt(Math.random()*30);
}
}while(!flag);
}
for(var j=0;j<array.length;j++)
document.write(array[j]+" ");
</script>

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧