【发布时间】:2014-04-12 22:51:47
【问题描述】:
我有这段代码可以生成从 1 到 12 的 12 个数字,然后排序算法将其排序,同时打印出矩阵中的每个步骤。
一切都很好,但我需要从 1 到 12 不重复的随机数。
知道我该怎么做吗?
var a = new Array(12);
var i,j,k,key;
for (j=0; j<12; j++){
a[j]=Math.floor(Math.random()*(13-1)+1);
}
document.write("Numbers:");
document.write("<TABLE align=center border=0><TR>");
for (j=0; j<12; j++){
document.write("<TD align=right width=20>",a[j],
"</TD>");
}
document.write("</TR></TABLE><CENTER><HR></CENTER>")
for (j=1; j<12; j++){
key = a[j]; i=j-1;
while (i>=0 && a[i]>key){
a[i+1] = a[i]; i--
}
a[i+1] = key;
document.write("<TABLE align=center border=0><TR>");
for (k=0; k<12; k++){
if (i<k && k<=j){
document.write("<TD align=right width=20>",
"<FONT COLOR=#ff3333>",a[k],"</FONT></TD>");}
else{
document.write("<TD align=right width=20>",
a[k],"</TD>");}
}
document.write("</TR></TABLE>")
}
【问题讨论】:
-
你生成一个 1-12 的数字列表,随机播放列表,然后根据需要 pop()。
-
@Blorgbeard:究竟如何在 js 中实现它?
-
@dandavis 在我脑海中浮现,不知道——虽然这不是一个复杂的算法。如果我对 JS 更加熟悉,我会发布一个实际的答案,而不仅仅是评论。
-
FY 算法出现在答案中,这是一个 js 实现:stackoverflow.com/a/2450976/312962
标签: javascript sorting random