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

练习:随机点名器5

题目:

TxT文件中事先准备好一些学生信息,每个学生的信息独占一行。,要求1:每次被点到的学生,再次被点到的概率在原先的基础上降低一半。

举例:80个学生,点名5次,每次都点到小A,概率变化情况如下:,第一次每人概率:1.25%。,第二次小A概率:0.625%。,其他学生概率:1.2579%,第三次小A概率:0.3125%。,其他学生概率:1.261867%,第四次小A概率:0.15625%。,其他学生概率:1.2638449%,第五次小A概率:0.078125%。,其他学生概率:1.26483386%,

提示:本题的核心就是带权重的随机

代码:

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;public class Demo07 {public static void main(String[] args) throws IOException {BufferedReader bufferedReader = new BufferedReader(new FileReader("D:\\javaSE\\java\\src\\IO\\Text\\b.txt"));String len;ArrayList<Students> list = new ArrayList<>();while ((len=bufferedReader.readLine())!=null) {String[] split = len.split("-");Students students = new Students(split[0],split[1],Integer.parseInt(split[2]),Double.parseDouble(split[3]));list.add(students);}bufferedReader.close();//计算权重的总和double weight=0;for (Students students : list) {weight=weight+students.getNumber();}System.out.println(weight);//计算出每个人的权重double[] doubles = new double[list.size()];for (Students students : list) {for (int i1 = 0; i1 < doubles.length; i1++) {doubles[i1]=students.getNumber()/weight;}}//计算每一人的权重占比for (int i1 = 1; i1 < doubles.length; i1++) {doubles[i1]=doubles[i1]+doubles[i1-1];}double random = Math.random();int i1 = -Arrays.binarySearch(doubles, random)-1;Students students = list.get(i1);//随机到的数//减少概率double v = students.getNumber() / 2;students.setNumber(v);BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\javaSE\\java\\src\\IO\\Text\\b.txt"));for (Students students1 : list) {bufferedWriter.write(students1.toString());bufferedWriter.newLine();}bufferedWriter.close();}
}

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 数据结构与算法基础-学习-37-平衡二叉树(Avl树)之删除节点
  • 各向异性含水层中地下水三维流基本微分方程的推导(二)
  • @Autowired 和 @Resource 区别的补充说明与示例
  • Datadomain存储上的文件大小,linux环境建议使用du -sh --apparent-size或ll -sh来查看
  • 【JAVA入门】Day15 - 接口
  • 实现前端用户密码重置功能(有源码)
  • 【C语言】 —— 预处理详解(下)
  • ubuntu 换源
  • #VERDI# 关于如何查看FSM状态机的方法
  • 【EasyExcel】根据单元格内容自动调整列宽
  • 第九章 面向对象
  • samout 结构再优化 收敛速度再加快
  • 【Unity】处理碰撞体(Collider)
  • 前端高頻面試題(一)
  • 数据结构第20节 快速排序以及优化
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Gradle 5.0 正式版发布
  • HTTP那些事
  • isset在php5.6-和php7.0+的一些差异
  • Java读取Properties文件的六种方法
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Koa2 之文件上传下载
  • Octave 入门
  • Promise面试题,控制异步流程
  • python 装饰器(一)
  • react 代码优化(一) ——事件处理
  • SQLServer之创建数据库快照
  • VuePress 静态网站生成
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 我从编程教室毕业
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 阿里云ACE认证学习知识点梳理
  • ​520就是要宠粉,你的心头书我买单
  • ​比特币大跌的 2 个原因
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # Kafka_深入探秘者(2):kafka 生产者
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (3)nginx 配置(nginx.conf)
  • (5)STL算法之复制
  • (55)MOS管专题--->(10)MOS管的封装
  • (HAL库版)freeRTOS移植STMF103
  • (javascript)再说document.body.scrollTop的使用问题
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)linux使用docker容器运行mysql
  • (二十四)Flask之flask-session组件
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models