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

网盘资源共享群吧网站seo计划书

网盘资源共享群吧,网站seo计划书,软件排名优化,随州抖音seo收费标准题目:写一个随机抽奖的算法,有100个数字,每次抽两次,其中1-到10必须中一个。使用java写一个算法出来。 备注:drawLotteryAdvanced方法更为灵活可以设置抽奖次数,简单的测试可以使用drawLottery方法 import …

题目:写一个随机抽奖的算法,有100个数字,每次抽两次,其中1-到10必须中一个。使用java写一个算法出来。

备注:drawLotteryAdvanced方法更为灵活可以设置抽奖次数,简单的测试可以使用drawLottery方法

import java.util.*;public class LuckyDraw {/*** 随机抽奖算法* 从1-100中抽取2个数字,且必须包含1-10中的至少一个数字* @return 包含两个抽中数字的列表*/public static List<Integer> drawLottery() {Random random = new Random();List<Integer> result = new ArrayList<>();// 确保至少有一个数字来自1-10int firstNumber = random.nextInt(10) + 1; // 1-10之间的随机数result.add(firstNumber);// 第二个数字可以是1-100中的任意数字(包括已抽中的数字)int secondNumber = random.nextInt(100) + 1; // 1-100之间的随机数result.add(secondNumber);// 如果第二个数字和第一个重复,重新抽取第二个数字while (secondNumber == firstNumber) {secondNumber = random.nextInt(100) + 1;result.set(1, secondNumber); // 更新第二个数字}// 随机打乱顺序(可选,让结果看起来更随机)Collections.shuffle(result);return result;}/*** 抽奖算法(优化版)- 避免重复且确保1-10至少一个* @return 包含两个不同数字的列表*/public static List<Integer> drawLotteryOptimized() {Random random = new Random();Set<Integer> resultSet = new HashSet<>();// 确保至少有一个数字来自1-10int guaranteedNumber = random.nextInt(10) + 1;resultSet.add(guaranteedNumber);// 第二个数字可以是1-100中的任意不同数字int secondNumber;do {secondNumber = random.nextInt(100) + 1;} while (resultSet.contains(secondNumber));resultSet.add(secondNumber);return new ArrayList<>(resultSet);}/*** 抽奖算法(通用版)- 可以指定抽奖次数* @param totalNumbers 总数字范围* @param drawCount 抽奖次数* @param guaranteedRange 必须包含的范围* @return 抽中的数字列表*/public static List<Integer> drawLotteryAdvanced(int totalNumbers, int drawCount, int[] guaranteedRange) {if (drawCount <= 0 || totalNumbers <= 0 || guaranteedRange == null || guaranteedRange.length < 2) {throw new IllegalArgumentException("参数错误");}Random random = new Random();Set<Integer> result = new HashSet<>();// 确保至少有一个数字在指定范围内int min = guaranteedRange[0];int max = guaranteedRange[1];int guaranteedNumber = random.nextInt(max - min + 1) + min;result.add(guaranteedNumber);// 抽取剩余的数字while (result.size() < drawCount) {int nextNumber = random.nextInt(totalNumbers) + 1;result.add(nextNumber);}return new ArrayList<>(result);}/*** 测试抽奖算法*/public static void testDraw(int testCount) {System.out.println("测试 " + testCount + " 次抽奖结果:");System.out.println("==================================");Map<Integer, Integer> frequencyMap = new HashMap<>();int validCount = 0;for (int i = 0; i < testCount; i++) {List<Integer> result = drawLotteryOptimized();// 检查是否包含1-10的数字boolean containsRequired = false;for (int num : result) {if (num >= 1 && num <= 10) {containsRequired = true;break;}}if (containsRequired) {validCount++;}// 统计频率for (int num : result) {frequencyMap.put(num, frequencyMap.getOrDefault(num, 0) + 1);}if (i < 10) { // 只显示前10次结果System.out.println("第 " + (i + 1) + " 次: " + result + (containsRequired ? " ✓" : " ✗"));}}System.out.println("==================================");System.out.println("有效抽奖次数: " + validCount + "/" + testCount + " (" + (validCount * 100.0 / testCount) + "%)");System.out.println("1-10数字出现频率统计:");// 输出1-10数字的出现频率for (int i = 1; i <= 10; i++) {int count = frequencyMap.getOrDefault(i, 0);System.out.printf("数字 %2d: %4d 次 (%.2f%%)%n", i, count, count * 100.0 / (testCount * 2));}}public static void main(String[] args) {// 测试基本功能System.out.println("=== 基本抽奖测试 ===");for (int i = 0; i < 5; i++) {List<Integer> result = drawLottery();System.out.println("抽奖结果 " + (i + 1) + ": " + result);}System.out.println("\n=== 优化版抽奖测试 ===");for (int i = 0; i < 5; i++) {List<Integer> result = drawLotteryOptimized();System.out.println("抽奖结果 " + (i + 1) + ": " + result);}System.out.println("\n=== 通用版抽奖测试 ===");for (int i = 0; i < 5; i++) {List<Integer> result = drawLotteryAdvanced(100, 2, new int[]{1, 10});System.out.println("抽奖结果 " + (i + 1) + ": " + result);}// 大规模测试System.out.println("\n=== 大规模测试 ===");testDraw(1000);}
}

在这里插入图片描述

http://www.dtcms.com/a/535310.html

相关文章:

  • 做网站公司职员工资海南门户网站开发公司
  • 太原论坛建站模板wordpress系统语言设置中文
  • 英文网站怎么做做网站网站代理的犯法么
  • 做电影网站如何赚钱无锡网站建设收费
  • asp.net 网站压缩找工程项目上哪个平台好呢
  • 网站开发里程碑acm网站免费做
  • 昆山网站制作哪家强全网推广怎么做
  • 海外网站空间怎样在网站做两份简历
  • html网站登陆页面模板wordpress模板商业
  • 怎么做优惠券网站怎么在淘宝上做网站
  • 网站快速排名优化报价学网站建设培训机构
  • 做网站要提供营业执照吗国家工商官网查询
  • 代刷网站推广全网最便宜wordpress 拼团插件
  • 电子商务网站建设视频app推广项目从哪接一手
  • 延吉网站开发云开发数据库
  • 如何做网站的外链建设工程部网站
  • 做百度网站需要钱吗网站流量超限什么意思
  • 制作网站的固定成本西安seo网站公司
  • 网站推广的基本方法是海淀区seo搜索优化
  • 华为网站哪个公司做的百度网址收录入口
  • 俄罗斯在线 网站制作哈尔滨网站建设乙薇
  • 手机购物网站 设计竟标网站源码
  • 网站搭建 成都苏州吴中区保洁公司
  • 企业网站seo营销网页无法访问怎么解决
  • PHP网站开发与管理设计心得做网站要懂什么编程
  • 深圳网站建设推广优化seo依安县建设网站
  • 网站开发 如何备案网站安全证书过期怎么处理
  • 垂直类门户网站wordpress提速插件
  • 西宁市网站建设高端关于网站建设的调研报告
  • 新闻写作网站dw网站开发流程