A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hanxing 中级黑马   /  2014-11-7 18:03  /  1360 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hanxing 于 2014-11-9 12:01 编辑

刚刚又碰到一个问题,怎么随机出现0或者1或者-1这三个数字中的一个呢,且概率相等

11 个回复

倒序浏览
我想到了一个方法,可以将0,1,-1,三个数,存入一个数组中。
然后通过Random,获取随机数(0,1,2)这三个数,作为索引来查找数组中的数。
回复 使用道具 举报
姜浩 发表于 2014-11-7 18:13
我想到了一个方法,可以将0,1,-1,三个数,存入一个数组中。
然后通过Random,获取随机数(0,1,2)这三 ...

真是妙哉!!!
回复 使用道具 举报
这样?
  1. import java.util.Random;
  2. public class Test {
  3.         public static void main(String[] args)
  4.         {
  5.                 Random r=new Random();
  6.                 System.out.print(r.nextInt(3)-1);
  7.         }
  8. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
板凳的方法很直接啊,很不错,数组都不用了。
回复 使用道具 举报

也对,我想歪了,老是想用Math.random()和Mth.round()解决,结果连续打印50个有30来个是0的
回复 使用道具 举报
楼上的都不全对吧,random()方法产生的是伪随机数啊
回复 使用道具 举报
我过去也是用集合索引的方法把一个集合中有序排列的数全部打乱,乱排序的,和二楼差不多
回复 使用道具 举报
多线程啊.只要优先级相同,概率应该都是相等的.
回复 使用道具 举报
zxbzxb333 发表于 2014-11-8 07:12
楼上的都不全对吧,random()方法产生的是伪随机数啊

但是概率几乎相等,我还特意计算了100000次,0和-1和1的次数都是33300多点
目前咱们不是只学过伪随机数吗,只能那么用了.
回复 使用道具 举报
qq8921310 发表于 2014-11-8 10:33
多线程啊.只要优先级相同,概率应该都是相等的.

有点走弯路的感觉,还的特意去继承Thread类或者实现runnable接口,我的目的就是简单,高效
回复 使用道具 举报
姜浩 发表于 2014-11-7 18:50
板凳的方法很直接啊,很不错,数组都不用了。

对的,能少定义一个就少定义一个,能少导一个包就少导一个包.

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马