Java 随机数生成的方法实现与应用-random

static void setSeed(long seed) 设置随机生成器的种子
/******************************
随机数中用到。每次的Seed不同,random就不同了。
在进行随机时,随机算法的起源数字称为种子数(seed),
在种子数的基础上进行一定的变换,从而产生需要的随机数字。
*******************************/

static double random() 0到1之间的实数
static int uniform(int N) 0到N-1之间的整数
static int uniform (int lo,int hi) lo到hi之间的整数
static double uniform(double lo, double hi) lo到hi之间的实数
static bollean bernoulli(double p) 返回真的概率是p
static double gaussian() 正态分布,期望值为0,标准差为1
static double gaussian(double m,double s) 正态分布,期望值为m,标准差为s
static int iscrete(double [] a) 返回i的概率为a[i]
static void shuffle(double [] a) 将数组a随机排序

-

使用random实现一些数据

随机返回[a,b)之间的一个double值 return a+StdRandom.random()*(b-a);
随机返回[0…..N]之间的一个int值 return (int)StdRandom.random()*N;
随机返回[lo,hi) 之间的一个int值 returned lo+StdRandom.uniform(hi-lo);
根据离散概率随机返回int 的值

 //a[]中个元素之和必须的呢关于1
 double r=StdRandom.random();
 double sum=0.0;
 for(int i=0;i<a.length;i++){
 sum=sum+a[i];
 if(sum>=r) return i;
 }
 return -1;
 }

随机将double 数组中的元素排序

int N=a.length;
for(int i=0;i<N;i++){
int r=i+rStdRandom.uniform(N-i);
double temp=a[i];
a[i]=a[r];
a[r]=temp;
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值