7-Java-C(骰子游戏)
题目描述:
我们来玩一个游戏。
同时掷出3个普通骰子(6个面上的数字分别是1~6)。
如果其中一个骰子上的数字等于另外两个的和,你就赢了。
下面的程序计算出你能获胜的精确概率(以既约分数表示)
public class Main
{
public static int gcd(int a, int b)
{
if(b==0) return a;
return gcd(b,a%b);
} public static void main(String[] args)
{
int n = 0;
for(int i=0; i<6; i++)
for(int j=0; j<6; j++)
for(int k=0; k<6; k++){
if(________________________________) n++; //填空位置
} int m = gcd(n,6*6*6);
System.out.println(n/m + "/" + 6*6*6/m);
}
}
仔细阅读代码,填写划线部分缺少的内容。
注意:不要填写任何已有内容或说明性文字。
正确算法:
此题的答案是:i + j+2 == k+1 || i + k+2 == j+1 || k + j+2 == i+1,许多人都将答案写成了"i
+ j == k || i + k == j || k + j == i"。
既约分数就是最简分数的意思,分析可得:“能获胜的精确概率=获胜的情况总数
/ 总情况数”,同时掷出3个骰子一共会有6*6*6种情况,根据“int m = gcd(n,6*6*6);”可以得出n就是“获胜的情况总数”,gcd()该方法是为了求出它们的最大公约数,然后写出既约分数。三层for循环就代表了骰子的点数,但是这里有一个“陷阱”,就是for循环表示出来的骰子点数为0~5,但是真实的骰子点数为1~6,两者算出来的结果是截然不同的!所以我们需要将i、k、j分别加1。
7-Java-C(骰子游戏)的更多相关文章
- java实现第七届蓝桥杯骰子游戏
骰子游戏 PS: 骰子哪有从0开始的只能是1-6,而他i j k的范围都是0-5,所以都要加1 题目描述 我们来玩一个游戏. 同时掷出3个普通骰子(6个面上的数字分别是1~6). 如果其中一个骰子上的 ...
- 课后作业机票,赌骰子游戏,switch的使用实例
一,课后第三题机票 package com.bd22; import java.util.Scanner; public class AirTicket { public static void ma ...
- ch2_8_4求解投骰子游戏问题
思路:递推.到第n步可以从第0步走n步到第n步,从第1步走n-1步到第n步... ...依次类推,=> f(n)=f(0)+f(1)+...+f(n-1) import java.util.Sc ...
- 2015-2016-2 《Java程序设计》 游戏化
2015-2016-2 <Java程序设计> 游戏化 实践「<程序设计教学法--以Java程序设计为例>」中的「游戏化(Gamification)理论」,根据 2015-201 ...
- 实验三 Java猜数字游戏开发
课程:Java实验 班级:201352 姓名:程涵 学号:20135210 成绩: 指导教师:娄佳鹏 实验日期:15.06.03 实验密级: ...
- 【整理】HTML5游戏开发学习笔记(1)- 骰子游戏
<HTML5游戏开发>,该书出版于2011年,似乎有些老,可对于我这样没有开发过游戏的人来说,却比较有吸引力,选择自己感兴趣的方向来学习html5,css3,相信会事半功倍.不过值得注意的 ...
- 相当牛X的java版星际游戏
分享一款牛人用java写的经典游戏,目录结构如下: 虽然只能算一个Demo,但是用到了很多Java基础技术和算法: Java2D,双缓冲,A星寻路,粒子系统,动画效果,处理图片,Swing ui ,U ...
- Java太阳系小游戏分析和源代码
Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...
- 通过创建一个简单的骰子游戏来探究 Python
在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏.这次,我将展示如何使用 Python 模块 Pygame 来创建一个图形化游戏.它将需要几篇文章才 ...
- python学习之掷骰子游戏
""" 通过学习的python知识,写一个简单的python小游戏 游戏名字:掷骰子比大小 游戏规则: 1.玩家可以选择玩掷几个骰子游戏(默认3个) 2.玩家可以设置双方 ...
随机推荐
- bzoj2878 [Noi2012]迷失游乐园——概率期望DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2878 这个博客写得很好:https://www.cnblogs.com/qt666/p/72 ...
- Code:log4
ylbtech-Code:log4 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. http://logging.apache.org/log4net/ 0 ...
- 国产免费的visio替代品edraw mind map,用来话流程图够用了
最新版Edraw Mind Map可以创建基本的思维导图.气泡图和基本流程图,提供了强大的设计功能,包括丰富设计素材.全面的页面布局定义.预置的符号库与绘图工具等.创建的图形,可以导出为常用图像格式. ...
- 怎么在notepad里面,将字符串替换成换行
用Notepad++可以,利用查找和替换功能,选择正则表达式,查找目标框里输入你想要替换的字符串,替换为框里输入\r,点击替换即可.这是个 很强大的功能,利用还它可以批量替换任何字符串,比如你链接是& ...
- 编程 MD(d)、MT(d)编译选项的区别
转:http://blog.csdn.net/nodeathphoenix/article/details/7550546 1.各个选项代表的含义 编译选项 包含 静态链接的lib 说明 /MD _M ...
- $(function() {}),即$(document).ready(function(),什么时候执行?以此为准
$(function() { //执行操作 }); $(function() {}) 是$(document).ready(function()的简写. 这个函数什么时候执行的呢? 答案:DOM加载完 ...
- mysql数据库基本操作(五)
表纪录之查(单表查询)2 上一篇讲了4类查询的方式,现在接着上一篇继续看还有哪些方式. group by 分组查询 顾名思义,分组查询要分组,因为mysql5.7之后默认不支持group by语句,需 ...
- Gradle系列之一 Groovy语法精讲
Gradle技术之一 Groovy语法精讲 gradle脚本是基于groovy语言开发的,想要学好gradle必须先要对groovy有一个基本的认识 1. Groovy特点 groovy是一种DSL语 ...
- 20170407-ms
invoke v调用 dismiss v解雇 exclusive adj. 专用的; 高级的; 排外的; 单独的; n. 独家新闻; 专有物; 独家经营的产品(或项目.设计等); 排外者; ex ...
- poj3050【dfs】
题意: 5*5的矩阵里,某个点能够上下左右走,走5步,然后路径会形成一个串,问你,这个5*5里面能够形成多少个不同个串. 思路: 直接暴搜,然后对于一个串塞到set里去,然后输出set里的个数就好了 ...