欢乐的代码-2
2022/2/27 23:28:34
本文主要是介绍欢乐的代码-2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
/** * 已知一个计算范围内等概率的方法,求另外一个范围的等概率返回。 */ public class CalculateProbability { public static void main(String[] args) { //已知0-5上的概率为fn,求30-39上的概率 // 1 将0-5上的概率包装成0和1等概率返回。如果是p和p-1也是同样的道理,包装成01和10等概率返回,其它继续。 // 30-39可以看成 0-8的概率最后+1 for(int i = 0; i < 50; i++){ System.out.println(getRandomRes()); } } private static int getRandomRes(){ int res = 0; do{ res = (zeroAndOne() << 3) + (zeroAndOne() << 2) + (zeroAndOne() << 1) + zeroAndOne(); }while (res == 9 || res == 10 || res == 11 || res == 12 || res == 13 || res == 14 || res == 15 || res == 16); return res + 1 + 30; } /** * 等概率返回0和1 * @return */ private static int zeroAndOne(){ int res = 0; do{ res = fn(); }while (res == 4); return res % 2; } /** * 0-5上的概率,题目给的函数 * @return */ private static int fn(){ Random ran = new Random(); return ran.nextInt(5); } } /** * 问题描述 * 数轴上从左到右有n各点a[0],a[1],……,a[n -1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。 * 先输入绳子的长度,然后输入数轴上的点,点以逗号分割,数值是有序的。 * * 算法:滑动窗口 */ public class SlidingWindow { public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int len = Integer.parseInt(sc.nextLine()); String[] points = sc.nextLine().split(","); int maxSize = getMaxCoverPointNum(len, points); System.out.println(maxSize); } } private static int getMaxCoverPointNum(int len, String[] points){ int[] sizeArr = new int[points.length]; int size = 0; // 窗口左侧 int l = 0; //窗口右侧 int r = 0; while(r < points.length){ //窗口左边的数 int cur = Integer.parseInt(points[l]); //窗口右边的数 int next = Integer.parseInt(points[r]); //如果下一点能够cover长度的话,那么r右移一位,数量加1.继续 if(len >= (next -cur)){ ++size; ++r; sizeArr[l] = size; continue; }else{ //记录下当前l能cover几个点,l右移动一位,同时r也要充值为l,个数重置为0 sizeArr[l] = size; ++l; r = l; size = 0; } } Arrays.sort(sizeArr); return sizeArr[sizeArr.length-1]; } }
这篇关于欢乐的代码-2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-13怎么通过 JavaScript 或其他编程语言来实现监听屏幕高度变化功能?-icode9专业技术文章分享
- 2024-11-12聊聊我们那些年用过的表达式引擎组件
- 2024-11-12让项目数据更有说服力:五款必备数据可视化管理工具推荐
- 2024-11-12人到一定年纪,要学会远离多巴胺
- 2024-11-12解读:精益生产管理的目的是什么?如何操作?
- 2024-11-12Sku预研作业
- 2024-11-12文心一言API密钥:分步申请指南
- 2024-11-12初学者指南:轻松掌握后台交互
- 2024-11-12从零开始学习:封装基础知识详解
- 2024-11-12JSON对象入门教程:轻松掌握基础用法