第二节java课动手动脑

1.纯随机数发生器

问题:

 

 

 

源代码:

package Main;
import java.util.Date;

public class Main {
//初始数值设置
static long a=16807L;
static long m=2147483647L;
static long c=46;


public static void main(String[] args) {
long x=5642L;
for(int i=0;i<1000;i++)
{ x=random(x);
System.out.println(x);
}
}
//random函数
public static long random(long x)
{
x=(a*x+c)%m;
return x;

}
}

程序截图:

 

 设计思路:用x=(a*x+c)mod m,利用前一位x求出后一位x,这样设计虽然会造成结果循环,但m只要足够大循环就会无限大可以不用考虑。m也决定着生成随机数的最大值为2147483647。

2.

 

 

特殊之处:

两个不同的函数公用同一个函数名。属于重载。

 

转载于:https://www.cnblogs.com/sicilya/p/11592850.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值