一道笔试题,抛骰子8次,和为多少最大,对于笔试题可以这样考虑,两个骰子和为 7的概率最大,8次的话最大为28.
下面编程给出说明,result[i][j] 代表抛i次时,和为j 的次数。对于第i+1 次可使用前面的结果来计算,如计算 result[i+1][48] 可以 把result[i][48-1], result[i][48-2],result[i][48-3],result[i][48-4],result[i][48-5],result[i][48-6] 的值加起来,这样的话就可以自底向上的推出任意次抛骰子的和的结果。
算法如下:
public static void rollDice(int cnt){ int result[][] = new int[cnt+1][cnt*6+1]; result[1][1]=1; result[1][2]=1; result[1][3]=1; result[1][4]=1; result[1][5]=1; result[1][6]=1; for(int i=2; i <= cnt;i++){ for(int j=i;j<=i*6;j++){ for(int k=1;k<=6;k++){ if(k<j){ result[i][j] +=result[i-1][j-k]; } } } } for(int i=cnt;i<=cnt*6;i++){ System.out.println("sum "+i+"\tcnt: "+result[cnt][i]); } } public static void main(String[] args) { rollDice(8); } //result sum 8 cnt: 1 sum 9 cnt: 8 sum 10 cnt: 36 sum 11 cnt: 120 sum 12 cnt: 330 sum 13 cnt: 792 sum 14 cnt: 1708 sum 15 cnt: 3368 sum 16 cnt: 6147 sum 17 cnt: 10480 sum 18 cnt: 16808 sum 19 cnt: 25488 sum 20 cnt: 36688 sum 21 cnt: 50288 sum 22 cnt: 65808 sum 23 cnt: 82384 sum 24 cnt: 98813 sum 25 cnt: 113688 sum 26 cnt: 125588 sum 27 cnt: 133288 sum 28 cnt: 135954 sum 29 cnt: 133288 sum 30 cnt: 125588 sum 31 cnt: 113688 sum 32 cnt: 98813 sum 33 cnt: 82384 sum 34 cnt: 65808 sum 35 cnt: 50288 sum 36 cnt: 36688 sum 37 cnt: 25488 sum 38 cnt: 16808 sum 39 cnt: 10480 sum 40 cnt: 6147 sum 41 cnt: 3368 sum 42 cnt: 1708 sum 43 cnt: 792 sum 44 cnt: 330 sum 45 cnt: 120 sum 46 cnt: 36 sum 47 cnt: 8 sum 48 cnt: 1
相关推荐
面试是求职过程中的关键环节,尤其对于技术岗位,面试题往往具有挑战性和创新性。微软作为全球知名的科技公司,其面试题不仅考察候选人的专业技能,还涉及逻辑思维、问题解决和创新能力。以下是对部分微软面试题的...
【Java程序员面试题解析】 Java面试题广泛涵盖了基础语法、数据结构、算法、设计模式、框架、并发编程、数据库、网络、操作系统等多个方面。以下是一些常见面试题的解析: **第一组** 1. **烧绳计时问题**:这是一...
这些题目是典型的微软面试题,涵盖了逻辑思维、数学、概率、物理、工程设计等多个领域,旨在测试应聘者的创新能力、问题解决能力和逻辑推理能力。以下是对这些题目的详细解析: 第一组: 1. 计时一小时十五分钟:...
17. **N个骰子出现和为m的概率**:可以用动态规划计算,dp[i]表示i个骰子掷出总和为m的概率。 18. **海量数据问题**:通常涉及数据压缩、分布式存储、MapReduce等技术,优化算法和数据结构以减少I/O操作。 19. **...
### 微软面试题解析 #### 第一组 **1. 烧绳计时问题** 题目描述:有若干条材质相同但燃烧不均匀的绳子,如何通过这些绳子组合来精确计时一个小时十五分钟? 解答思路:首先,我们需要了解单根绳子燃烧的特性。...
### 微软面试题经典知识点解析 #### 第一组知识点解析 **1. 使用烧绳计时** - **问题描述**:假设有一根不均匀的绳子,从头烧到尾需要1小时。如何利用这种绳子来精确计时1小时15分钟? - **解析**: - 首先,取...
再来看一个赌博问题:赌徒在掷两次骰子,点数之和大于3则赢,赔率1.1。这是概率论的应用。计算所有可能的点数组合,发现赢的概率大于50%,因此值得尝试。 第四题是著名的“蒙提霍尔问题”:选择门后是否应该改变...
### Java面试趣味题目解析 #### 第一组题目解析 **1. 如何利用烧绳方法计时一个小时十五分钟?** 解答:对于这个问题,首先要明白一根不均匀的绳子从头燃烧到尾需要一个小时的时间。要实现计时一个小时十五分钟,...
【微软面试题解析】 这些题目看似简单,实则蕴含了丰富的逻辑思维、数学知识和问题解决技巧,是微软等科技公司面试中常见的智力挑战。让我们逐一解析: **第一组** 1. **计时问题**:这是一道典型的逻辑题,需要...
7. 两个骰子可以设置为1和2,表示月份,其他面设置1-31表示日期。 **第四组** 1. 海盗问题:1号提出99、0、0、1、0的方案,2号、3号、4号会投票通过,因为他们如果不接受会被丢弃。 2. 飞机加油问题:至少需要2架...
【微软面试题解析】 这些题目主要考察面试者的逻辑思维、问题解决能力、创新思维和对基本概念的理解。让我们逐一分析: 第一组: 1. 计时一个小时十五分钟:使用两根绳子,第一根绳子对折后点燃,烧完是半小时;...
这些题目是微软面试中的一些经典问题,旨在考察应聘者的逻辑思维、问题解决能力、创新思考和应变技巧。下面对这些问题进行详细解答: **第一组** 1. 要计时1小时15分钟,可以烧两根绳子,第一根绳子先点燃一端,另...
6. 最大概率选中红球:将所有红球放入一个罐子,蓝球放入另一个,这样每次选中红球的概率是50%。 7. 6面骰子日期设计:一个骰子表示月份,一个表示日期,可以覆盖1月到12月,1号到31号。 **第四组** 1. 海盗分宝石...
这些题目是微软面试中可能遇到的问题,涵盖了逻辑推理、数学、概率、问题解决等多个领域,旨在测试应聘者的思维能力和创新能力。下面对这些题目进行详细解答: 1. 烧绳计时:要计时1小时15分钟,可以点燃两根绳子,...
【微软面试题】是软件行业中常见的一种评估求职者思维能力、逻辑推理和问题解决技巧的方式。以下是对这些题目中涉及的知识点的详细解析: **第一组** 1. 烧绳计时问题考察的是时间管理和逻辑思考。解决方法是:先...
这些题目主要考察的是应聘者的逻辑思维能力、问题解决技巧、创新思维和决策能力,这些都是IT行业尤其是软件开发和系统分析领域非常重要的素质。下面我们逐一解析这些题目中的知识点: 1. **烧绳计时**:这道题目的...
这些题目主要测试的是应聘者的逻辑思维能力、问题解决技巧以及创新思考。让我们逐一解析这些题目背后的逻辑和...这些题目展示了面试中可能遇到的开放性问题,旨在考察应聘者在压力下的思考、问题解决和创新思维能力。