当前位置: 首页 > news >正文

由等概率(a,b)生成等概率(c,d)

问题描述:有一个函数,可以等概率的生成x∈(a,b),如何编写函数生成x∈(c,d)
举例f函数可以生成[1,5],生成[1,7]
 1 public static int f() { 2 return (int) (Math.random() * 5) + 1; 3 } 
 
解题思路:
  1. 通过f()改造成等概率的0和1函数f1()
  2. 通过f1()生成f2()∈[0,7],借用二进制思路
  3. 通过f2()生成f3()∈[0,6]
  4. f3()+1即可
 
f1()的实现:
f(x)∈[1, 2, 3, 4, 5]
f1(x) = 0 when x = 1 or 2
f1(x) = 1 when x = 4 or 5 
f1(x)重新计算 when x = 3
 1 public static int f1() {
 2 
 3         int result = f();
 4 
 5         while (result == 3) {
 6             result = f();
 7         }
 8 
 9         if (result == 1 || result == 2) {
10             return 0;
11         } else {
12             return 1;
13         }
14     }
 
通过01二进制实现[0,7]
000 = 0 001 = 1 010 = 2 ... 111 = 7
1 public static int f2() { 2 return (f1() << 2) + (f1() << 1) + f1(); 3 } 
x∈[0,5], f2(x)∈[0,7],当f(x)=7的时候在重新计算,就完成了[0,6]
 public static int f3() {int result = f2();while (result == 7) {result = f2();}return result;}
 
[0,6]+1=[1,7]
 public static int f4() {int result = f3();return result + 1;}
http://www.zskr.cn/news/17812.html

相关文章:

  • 详细介绍:C#练习题——泛型实现单例模式和增删改查
  • 运行Udacity的MPC控制项目指南(project_10)在Ubuntu 18.04环境下
  • 网络流最小割,无向图建图法,求最小割点转换求最小割边
  • 2025/10/9
  • 深度学习概述 - -一叶知秋
  • C#性能优化基础:内存诊断(dump)
  • 2025年企业级LLM内容安全防护指南:鉴冰AI FENCE流式网关技术深度解析
  • 完整教程:FPGA学习笔记——图像处理之亮度调节(Gamma)
  • IObit Uninstaller一款强大的卸载工具!IObit Uninstaller卸载工具,IObit Uninstaller下载安装教程
  • 网络配置不再难:4G/Wi-Fi/以太网/虚拟网卡全指南
  • 一种排查java.lang.OutOfMemoryError: Metaspace的方法
  • MDX Blog Post
  • 本站点即将在2025年改变研究方向和目标
  • 实用指南:12_OkHttp初体验
  • 乒乓球
  • wmctf2025
  • Java基础-Eclipse工具-面向对象(1)
  • Qwen3技术报告
  • 在Ubuntu 22.04系统上安装libimobiledevice的步骤
  • 破解安防整合难题:详解国标GB28181EasyGBS如何实现零插件Web直播
  • leetCod热题100-73、买股票的最佳时期
  • 有限体积法和有限差分法、有限元法的区别。
  • “十五五”战略下,央国企人事系统如何破局增效?T集团数字化转型案例分享
  • ELK—— Elasticsearch Logstash Kibana
  • 关于审批流的记录
  • Linux:线程池 - 指南
  • AI元人文的硅基实现可行性Ai研究报告
  • task4.c
  • 实用指南:【双光相机配准】可见光与红外相机计算Homography
  • P14150 不动鸣神,恒常乐土