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

有一个[1,5]的等概率随机函数fx(),在不改变fx()函数的情况下,利用fx()函数做出一个[1,7]的等概率随机函数。

题目解析

  1. 首先需要将fx函数转化为一个0,1的等概率的心函数
  2. 对要转换的函数的范围分析
  3. 通过0,1等概率函数利用二进制规则转换为所需的函数
// 制作1-5上的随机函数
public static int fx() {  return (int) (Math.random() * 5) + 1;  
}

第一步:将fx函数转化为一个0,1的等概率的心函数

// 将fn转换为0,1等概率随机函数  
public static int fn2() {  int fn = fn();  while (fn == 2) {  fn = fn();  }  return fn < 3 ? 0 : 1;  
}

第二步:对要转换的函数的范围分析

1~7等概率,观察我们制作随机函数,我们也可以先做一个0~6的等概率函数,然后再加一即可得到1~7的等概率函数
第三步:通过0,1等概率函数利用二进制规则转换为所需的函数
这里要做的内容就变为“如何通过等概率发射器生成二进制0~6等概率函数”。
二进制想要表达0~6之间的所有数最小需要四位。只需要连续roll4次等概率发射器即可生成从0~8的随机数,且每次得到的最终结果是等概率的。
但是我们不需要除了0~6以外的数值,所以如果大于6就再从头来一次,直到在范围以内在停止。

public static int fn3() {  int a = 0;  do {  String result = "";  for (int i = 0; i < 4; i++) {  result += fn2();  }  a = Integer.parseInt(result, 2);  }while (a > 6);  return a + 1;  
}
http://www.zskr.cn/news/12496.html

相关文章:

  • 喜讯!狮桥集团成为天津市行政执法监督企业联系点,共筑法治营商新环境!
  • 当不小心误触了一个事件该如何删除呢
  • 跑腿小工具|基于微信小脚本的跑腿平台小程序设计与实现(源码+数据库+文档)
  • 烧录工具使用方法大公开:实用说明文档奉上
  • 【图床】存几张图
  • 什么是 glTF:完整指南
  • WSL2搭建wordpress遇到的一点问题
  • 430亿美元押注英国,Salesforce 加码 AI 投资
  • C# 中 ref 和 out 的学习笔记
  • NXP - 在MCUXpresso IDE中编译调试Smoothieware固件工程 - 思路 - 教程
  • 5G车载市场新格局:国产崛起,从破局者到引领者的升维之战 - 实践
  • 手撕深度学习之CUDA并行规约算法(上篇):硬核揭秘200%性能提升的GPU优化之道,从硬件特性到算法实现的完整进阶指南
  • 详细介绍:八股已死、场景当立(微服务保护篇)
  • 《“悬荡”于理想与现实之间:一份关于人机共生未来的思想实验评估》
  • 区别:RS-232、RS-422、RS-485
  • 【征文计划】深度剖析 Rokid SLAM 算法:从传感器融合到空间重建的完整技术链路 - 实践
  • 登录 Linux 自动展示 CPU/内存/磁盘挂载使用情况等信息(针对于银河麒麟调整的)
  • 解码数据结构线性表之链表
  • 高通QCS8550开发板 + DeepSeek-R1:打造智能化商场导购实践
  • 《对软件工程的初步理解》
  • B3863 [GESP202309 一级] 买文具
  • B2009 计算 (a+b)/c 的值
  • 详细介绍:【杂谈】Godot 4.5下载指南
  • 安全帽检测数据集-YOLO格式建筑工地安全图像数据-个人防护装备(PPE)目标检测算法训练-包含安全帽/无安全帽/等多类别标注-深度学习计算机视觉应用-工业安全监控系统开发-实时预警检测模型
  • WPF ItemsControl implement Select in mvvm via behavior
  • 服务器密码错误被锁定如何解决?
  • 螺纹偏弱
  • 水翼式搅拌机推荐品牌/推荐厂家/优质供应商/哪家强?
  • 100W QPS:亿级用户的社交关系如何设计?
  • 坤驰科技携数据采集解决方案,亮相中国光纤传感大会