算法-->随机值
来源:互联网 发布:小乖淘宝店 编辑:程序博客网 时间:2024/06/07 14:01
package 随机数;import java.util.Random;/** * 这是一个典型的产生随机数的算法 * * @author 朱珍珍 * */public class A { public static void main(String[] args) { A a = new A(); int i, j;// 申明变量 Random r = new Random(10);// 随机数 种子 for (j = 0; j < 10; j++) { for (i = 0; i < 10; i++) { System.out.printf("%11d ", r.nextInt()); } System.out.print("\n"); } }}
package 随机数;import java.util.Random;/** * 采用一定的技巧 * * @author 朱珍珍 * */public class B { public static void main(String[] args) { int i, j; Random random = new Random();// 随机种子 for (j = 0; j < 10; j++) { for (i = 0; i < 10; i++) { System.out.printf("%3d ", random.nextInt(100));// 输出0-100的随机整数 } System.out.println("\n"); } }}
package 随机数;/** * 随机数的生成算法 * * @author 朱珍珍 【0-1】之间均匀的分布的随机算法 */public class C { /** * 首先:此处的取膜运算是针对浮点数的,而c语言中的取膜运算符,不能营运于浮点型数据的操作 。这样,就需要程序员自己来编写取膜的程序 * 其次:r(i)是随着递推而每次跟新的,因此,该算法编写成方法,则必须考虑是参数是传值还是传地址 的问题 */ static double ran(double[] r) { double base, u, v, p, temp1, temp2, temp3; base = 256.0;// 基数 u = 17.0; v = 139.0; temp1 = u * (r[0]) + v;// 计算总值 temp2 = (int) (temp1 / base);// 计算商 temp3 = temp1 - temp2 * base;// 计算余数 r[0] = temp3;// 更新随机数种子,为下一次的使用 p = r[0] / base;// 随机数 return p; } public static void main(String[] args) { int i; double[] r = { 5.0 }; System.out.printf("产生10个【0,1】之间的随机数:\n"); for (i = 0; i < 10; i++) {// 循环调用 System.out.printf("%10.5f\n", ran(r)); } System.out.printf("\n"); }}
package 随机数;/** * 产生任意范围的随机数 * * @author 朱珍珍 方法:m+(n-m)*ran(r) */public class D { static double ran2(double[] r) { double base, u, v, p, temp1, temp2, temp3; base = 256.0;// 基数 u = 17.0; v = 139.0; temp1 = u * (r[0]) + v;// 计算 总值 temp2 = (int) (temp1 / base);// 计算余数 temp3 = temp1 - temp2 * base;// 计算商 r[0] = temp3;// 更新随机种子。为下一次的使用 p = r[0] / base;// 随机数 return p; } public static void main(String[] args) { int i; double n, m; double[] r = { 5.0 }; m = 10.0; n = 20.0; System.out.print("产生10个[10.0,20.0]之间的浮点随机数:\n"); for (i = 0; i < 10; i++) {// 循环的调用 System.out.printf("%10.5f\n", m + (n + m) * ran2(r)); } System.out.print("\n"); }}
package 随机数;/** * 【m,n]之间均匀分布的随机整数算法 * * @author 朱珍珍 方法:m+(int)(n-m)*ran(r)) */public class E { static double ran3(double[] r) { double base, u, v, p, temp1, temp2, temp3; base = 256.0;// 基数 u = 17.0; v = 139.0; temp1 = u * (r[0]) + v;// 计算 总值 temp2 = (int) (temp1 / base);// 计算余数 temp3 = temp1 - temp2 * base;// 计算商 r[0] = temp3;// 更新随机种子。为下一次的使用 p = r[0] / base;// 随机数 return p; } public static void main(String[] args) { int i, m, n; double[] r = { 5.0 }; m = 100; n = 200; System.out.print("产生10个[100,200]之间的随机数整数:\n"); for (i = 0; i < 10; i++) { System.out.printf("%d\n", m + (int) ((n - m) * ran3(r))); } System.out.print("\n"); }}
阅读全文
0 0
- 算法-->随机值
- 随机算法
- 随机算法
- 随机算法
- 随机算法
- 随机算法
- 随机算法
- 随机算法
- 随机算法
- 随机算法
- 随机算法
- 随机算法
- Swing/随机取值/洗牌算法
- 随机算法之随机选择
- 算法_9:随机算法
- [算法] 洗牌算法&随机算法
- 随机洗牌算法和随机选择算法
- 随机组卷算法
- Unity中的单例模式基类
- UITableView添加头部视图,并解决添加后无法滑动的问题
- mysql + apache +php 项目的搭建
- Android TV 关于gridview的焦点问题
- [Java并发包学习七]解密ThreadLocal
- 算法-->随机值
- 使用Android.mk文件导入Exoplayer包
- 1053. Path of Equal Weight (30)
- 四大行与BATJ的互联网金融
- 网页基础学习--网络结构和HTML(未完待续)
- 关于oracle的dual
- ORACLE Scheduler特性(6)设置Repeat Interval参数
- myeclipse自动生成相应对象接收返回值
- CodeForces