| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1013 人关注过本帖
标题:一个随机数算法
只看楼主 加入收藏
xlwt2113
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2004-10-14
收藏
 问题点数:0 回复次数:2 
一个随机数算法
这几天做程序遇到一个问题。要求每次读数据库的数据时,显示在页面上的时候必须每次的顺序都不相同。也就是说每条记录都是随机取出来的,并且要求把所有数据全部显示出来。于是写了这样一个算法。但是感觉不是很好,数据量小的时候没什么影响,当数据量大的时候系统速度就会慢的要死了!:( 以下是程序代码: 要求:指定显示一定数目的数字,如显示1到12这些数字,要求数字随机排列并全部显示出来。每次运行程序后这些数字的顺序都不相同!

import java.lang.*; import java.util.*;

public class MakeRandomNum { public void getRandom()throws Exception { String [] a=new String[12]; Random rndTemp = new Random(); int flag=1; String rnum=new String("w");//先付一个初始值 for(int i=0;i<12;i++) { do { flag=1; Float num=new Float(rndTemp.nextFloat()*12+1); rnum=num.toString(); rnum=rnum.substring(0,rnum.indexOf(".")); for(int j=0;j<i;j++) { if(a[j].equals(rnum)) { flag=0; // System.out.print("t"); } } }while(flag==0); a[i]=rnum; System.out.println(a[i]); } } public static void main(String args[]) { try{ MakeRandomNum my=new MakeRandomNum(); my.getRandom(); }catch(Exception e) { System.out.print(e); } } }

运行结果:不知道怎么贴图,只有运行结果大家自己运行程序的时候自己看把!呵呵

可能算法不是很优化,在数字为千个以内速度很快,试了个50000的,运行了好几分钟!差点死机! :( 大家来一起看看有没有更好的算法啊?!

搜索更多相关主题的帖子: 数据库 随机 数字 java import 
2005-09-22 11:22
xlwt2113
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2004-10-14
收藏
得分:0 
刚才发错地方了,弄到javascript那个栏目里面了,呵呵

2005-09-22 11:23
zishan
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2005-8-6
收藏
得分:0 

你的程序我稍微改了一点 import java.lang.*; import java.util.*;

public class MakeRandomNum { public void getRandom()throws Exception { String [] a=new String[12]; Random rndTemp = new Random(); int flag=1; String rnum=""; for(int i=0;i<12;i++) { if(flag==1){ Float num=new Float(rndTemp.nextFloat()*12+1); rnum=num.toString(); rnum=rnum.substring(0,rnum.indexOf(".")); } if(flag==0); a[i] = rnum; System.out.println(a[i]); } } public static void main(String args[]) { try{ MakeRandomNum my=new MakeRandomNum(); my.getRandom(); }catch(Exception e){ System.out.print(e); } } } 你看看这里还有没有其他的漏洞


2005-09-23 17:24
快速回复:一个随机数算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041840 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved