我倒,明明是随机的,搞不懂你在说什么,KKK
解决方案 »
- 滑动显示层总是闪的问题
- 刚开始看JS ,一个JSP文件,点击按钮onclick后,JS代码没有执行! 帮忙看看
- jquery写的模式窗口与表格并带翻页
- JAVASCRIPT子窗口返值回父窗口的问题
- 我一个框架里的某链接点击后出现登录,然后第一个框架中的主体跳到别一个框架中,该怎么做啊?
- 请问本社区的显示和隐藏导航栏是怎么做的?
- 急救!!!日期select...
- 如果把空格转化成 :?
- 在js中,date对象为什么不能正确得到星期几。。。在线等待。。
- 请问怎样转到其它页面而地址栏的值不改变?
- 请问能否在页面内调用该页面内的一个iframe内的函数方法,谢谢
- 急!请教有关屏蔽文本框的方法!!
看看alert(arrt)的结果就知道始终前面出现小的机会大,后面出现大的机会大。
当我改成下面的,执行结果就完全符合我的意愿function Array.prototype.mysort(func)
{
for(var j=this.length-1;j>0;j--)
{
for(var i=0;i<j;i++)
{
if(func(this[i],this[i+1]))
{
var t=this[i];
this[i]=this[i+1];
this[i+1]=t;
}
}
}
return this;
}
function Array.prototype.random()
{
var len=this.length;
var arrt=new Array(len);
for(var i=0;i<len;i++)
arrt[i]={i:i,r:Math.random()};
arrt.mysort(function(a,b){return a.r>b.r});
var arrr=new Array(len);
for(var i=0;i<len;i++)
arrr[i]=this[arrt[i].i];
return arrr;
}
//test:var arr=new Array(36);
for(var i=0;i<arr.length;i++)
arr[i]=i+1;//alert(arr.random());var arrt=new Array(arr.length);
for(var i=0;i<arrt.length;i++)
arrt[i]=0;
var count=200;
while(count--)
{
var arrr=arr.random();
for(var i=0;i<arrt.length;i++)
arrt[i]+=arrr[i];
}
alert(arrt);
当我改成下面的,执行结果就完全符合我的意愿function Array.prototype.mysort(func)
{
if(func)
for(var j=this.length-1;j>0;j--)
{
for(var i=0;i<j;i++)
{
if(func(this[i],this[i+1]))
{
var t=this[i];
this[i]=this[i+1];
this[i+1]=t;
}
}
}
else
for(var j=this.length-1;j>0;j--)
{
for(var i=0;i<j;i++)
{
if(this[i]>this[i+1])
{
var t=this[i];
this[i]=this[i+1];
this[i+1]=t;
}
}
}
return this;
}
function Array.prototype.random()
{
var len=this.length;
var arrt=new Array(len);
for(var i=0;i<len;i++)
arrt[i]={i:i,r:Math.random()};
arrt.mysort(function(a,b){return a.r>b.r});
var arrr=new Array(len);
for(var i=0;i<len;i++)
arrr[i]=this[arrt[i].i];
return arrr;
}
//test:var arr=new Array(36);
for(var i=0;i<arr.length;i++)
arr[i]=i+1;//alert(arr.random());var arrt=new Array(arr.length);
for(var i=0;i<arrt.length;i++)
arrt[i]=0;
var count=256;
while(count--)
{
var arrr=arr.random();
for(var i=0;i<arrt.length;i++)
arrt[i]+=arrr[i];
}
alert(arrt);