李敏  
日历
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234
统计
  • 随笔 - 1
  • 文章 - 40
  • 评论 - 4
  • 引用 - 0

导航

常用链接

留言簿(1)

文章分类

文章档案

相册

收藏夹

它山之石

聚贤庄

搜索

  •  

最新评论

 
    昨天晚上想到"以前做过的那个纸牌面试题",其中最重要的一个关键就是随机,偶然突发奇想,自己实现一个。
     "随机"就是一个变化的东西,而什么东西能变化,而且能体现出来,因为没有学过高等数学(低学历-痛),所以就往生活当中去想,发现最明显的就是时间,于是初步是想通过java.util.DatehashCode()来取得一个数,但是在测试的过程中发现结果不理想,然后去看API,这时候在它的构造方法中看到System.currentTimeMillis()这个方法,这个不就是可以最直接的反映时间吗?比hashCode更直观。
     最后感觉这个比较简陋,以后再修改。

import java.util.Date;

public class Random {
    
    
//参数:n - 所返回随机数的范围。必须为正数。 
  
//返回:一个伪随机数,处于 0(包括)和 n(包括)之间均匀分布的 int 值。
    public int nextInt(int n){
          
long num=System.currentTimeMillis();
        
//防止连续调用时,时间重叠。
        try {
      Thread.currentThread().sleep(
15);  //在本机测试15微秒可以避免重叠
    }

    
catch (Exception e) {
      e.printStackTrace();
    }

          
return (int)(num%n);
    }

    
    
public static void main(String[] args) {
        
// TODO: Add your code here

     System.out.println(
new Random().nextInt(10)); //-----
         
     System.out.println(
new Random().nextInt(10)); //-----
         
     System.out.println(
new Random().nextInt(10)); //-----
    }
    
}
posted on 2009-03-17 18:11 李敏 阅读(166) 评论(0)  编辑  收藏 所属分类: 算法

只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © 李敏 Powered by: 博客园 模板提供:沪江博客