2024-06-14 09:43:38 | 我爱编程网
import java.util.Random;
import java.io.*;
public class MatchGame {
private Random rnd = new Random ();
private int total;
private boolean yourTurn;
private boolean youWin;
public MatchGame () {
this.total = this.rnd.nextInt(15) + 20;
}
public MatchGame (boolean youFirst) {
this();
this.yourTurn = yourTurn;
}
public void takeAway (boolean yourTurn) {
int n = 0;
if (yourTurn) {
System.out.print("Your turn! How many matches do you want to take? ");
try {
BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
n = Integer.parseInt (br.readLine());
} catch (IOException ioe) {}
if (n < 1 || n > 3) {
System.out.println("You can only take 1~3 matches for each time.");
takeAway (yourTurn);
return;
}
} else {
n = this.rnd.nextInt(3) + 1;
System.out.println("The computer took " + n + " matches.");
}
this.total -= n;
if (this.total <= 0) {
if (yourTurn)
System.out.println("You win!");
else
System.out.println("You lose!");
} else {
takeAway (!yourTurn);
}
}
public static void main (String args[]) {
new MatchGame ().takeAway (true);
}
}
/**
* 四人玩火柴棍游戏,每一次都是三个人赢,一个人输。输的人要按赢者手中的火柴 数进行赔偿,即赢者手中有多少根火柴棍,输者就赔偿多少根。现知道玩过四次后,
* 每人恰好输过一次, 而且每人手中都正好有16根火柴。问此四人做游戏前手中各有 多少根火柴? 编程解决此问题
* 我的理解
* 1.4个人最后的火柴数都为16 则4个人其实并没有太多主体的概念。4个人可以是任何人 要辨别4个人可以假设。
* A 是第四轮输的人 B是第三轮输的人 C是第二轮输的人 D是第一轮输的人
* 2.依据以上判断我们可以反过来理解为 4个的初始状态分别为16 16 16 16 每一次都是三个人输,一个人赢,输的人把自己的一半给赢的一方
*
*/
public class Game {
public static void main(String[] a) {
int n1 = 16, n2 = 16, n3 = 16, n4 = 16;
// 第4轮
n1 += (n2 + n3 + n4) / 2;
n2 /= 2;
n3 /= 2;
n4 /= 2;
// 第3轮
n2 += (n1 + n3 + n4) / 2;
n1 /= 2;
n3 /= 2;
n4 /= 2;
// 第2轮我爱编程网
n3 += (n1 + n2 + n4) / 2;
n1 /= 2;
n2 /= 2;
n4 /= 2;
// 第1轮
n4 += (n1 + n2 + n3) / 2;
n1 /= 2;
n2 /= 2;
n3 /= 2;
System.out.println("四人做游戏前手中各有 a:" + n1 + " b:" + n2 + " c:" + n3 + " d:" + n4);
}
}
我爱编程网(https://www.52biancheng.com)小编还为大家带来程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜(JAVA作业)的相关内容。
“设计这个程序的原理图是什么”是产生20--50根火柴的原理,还是取胜原理?我理解是取胜原理吧!还有“拿到最后一根为胜”是最后拿到一根,还是最后拿完就行?我理解是最后拿到一根为胜,如果最后把三根或二根一起拿了,不行。
按照我的理解,推导如下:
用反推法:欲拿最后一根,必须留2根在那里,欲留2根,必须上一轮留2+3+1=6给对方,(它拿一,你拿三,它拿二,你拿二,它拿三,你拿一。都是留2根)。再向上一轮,就是6+4=10。
取胜原理:把随机产生的火柴数,分解成:2+4的n次方+m,(m≤3),当m=0的时候,后取者胜,当m=1、2、3的时候,先取者胜。先取者取完m,留2+4的n次方给对方,对方不管取多少,你取的数和对方相加等于4,一直到最后,留2根给对方,根据规则,对方只能取一根,留一根给你取胜。
另:取完者胜(含最后一根):最后留4根给对方,不管对方取多少,你都可以一次取完。上一轮同样加4。
取胜原理:把随机产生的火柴数,分解成:4的n次方+m,(m≤3),当m=0的时候,后取者胜,当m=1、2、3的时候,先取者胜。先取者取完m,留4的n次方给对方,对方不管取多少,你取的数和对方相加等于4,一直到最后,留4根给对方。
php如何实现推荐视频不重复,如何实现根据每个人行为标签随机推荐,并且不会重复出现已经推荐过的?不管有好多种方案,你必须处理几个问题点:1、每个人的行为标签,标签是否有侧重点,如人员A,拥有3个标签,a,b,c,三个标签的比重是多少,侧重点是那个标签?2、推荐视频的话,视频对应的特点标签要记录,这个是通过标签筛选视频3、为某人推荐了视频后,要将推荐信息记录下来,后续筛选直接去重
PHP操作时间戳,以及如何拿到各种时间在编程过程中,获取时间是一项常见的需求,特别是在使用PHP语言进行开发时。PHP提供了多种方法来获取各种时间,本文将详细介绍其中的两种:date()函数和time()函数。接下来,我们将逐一了解它们的用法。首先,我们通过date()函数获取时间。该函数的格式为date($format,$timestamp),其中$format用于指定时间格式,$t
我想了解下,学会python一般能找到拿工资多少的工作1、Web开发:python有很多优秀的web开发框架,比如Flask、Django、Bootstar等,可以帮助你快速搭建一个网站。需要一个新功能时,用python只需要几行代码就可以了,受到很多初创公司喜欢。现在像知乎、豆瓣、小米这样大厂,最早网站都是python搭建的,像国外YouTube、Quora、Reddit、Inst
14,783的的立方根?手算:因为25³=15625>14783>24³=13824所以14783的立方根在24到25之间机算:如图使用python输入14783**(1/3)得到24.54261637383651(箭头1)经验算,成立,误差可接受(箭头2)输入10个数,输出对应的立方根python程序>>>
怎么才能拿到phpchina邀请码,有多的给个!!!首先:进入PHPChian的论坛(可以以游客的身份进去),然后进入PHPChina论坛的公告区,找到发布PHPChina官方群的那个帖子,在那几个群里随便找到一个群,然后进入那个群,进去后直接私聊管理员要邀请码就行了。PHPMySQL创建数据库和表菜鸟问题1,die的作用是你所想的那样,输出里面的内容,并结束程序。2,'creat
求一个生成四位随机数的PHP代码最简单的代码:图片:文字:<?phpecho"四位随机代码是:".mt_rand(999,9999);//随机值得范围是999-9999?>在PHP中mt_rand是随机函数,括号中是随机值范围:从最小值到最大值之间随机变换。扩展资料:1、mt_rand定义和用法:mt_rand(PHP
python怎么随机产生一个范围内的数python怎么随机产生一个范围内的数?python生成指定区间内的一个随机数,所用的模块和方法:推荐:《python教程》random.randrage()的基本语法:导入random模块获取区间内随机数,使用random.randrange()保存文件,查看获取的区间内随机数以上就是小编分享的关于python怎么随机产生一
java如何开发手机程序(java开发手机app的流程)一。下载并安装java环境jdk1.4以后版本大于1.4都可以。去sun的官网上下载二。下载并安装sun提供的专门开发手机软件的java微型版,即j2me开发工具,又叫WTK全称(WirelessToolkit)目前版本WTK2.5.2去sun的官网下载如果只用写字板,记事本之类的开发工具的话,现在就可以开发了,运行WTK
2025-02-01 20:24:39
2024-01-05 14:11:24
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01