2021-07-12

该博客讨论了一种策略优化问题,Alice在与Bob玩石头剪刀布游戏时如何通过知晓Bob的出牌来最大化她的胜利次数。文章提供了Alice的策略,根据Bob的牌面分布来决定自己的出牌,以确保在石头、剪刀和布的三种情况下尽可能获胜。代码实现了一个简单的计算Alice最多可能胜利次数的函数。
摘要由CSDN通过智能技术生成

Alice和Bob打牌,每人都有n张牌 Alice的牌里有p1张石头牌,q1张剪刀牌,m1张布牌。 Bob的牌里有p2张石头牌,q2张剪刀牌,m2张布牌。 Alice知道Bob每次要出什么牌,请你安排策略,使Alice获胜次数最多。 输出获胜次数。

石头 剪刀 布
Alice 3 -p1 2- q1 1-m1
Bob 1 -p2 2 -q2 3 -m2
石头三种情况:
1、If(p1==q2)
Sum1 = p1;
2、If(p1>q2)
Sum 1= q2;
3、If(p1<q2)
Sum1 = p1;
剪刀三种情况:
布三种情况:

石头剪刀
Alice3 --p12 --q11–m1
Bob1 --p22 --q23 --m2
import java.util.*;
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * ​请返回Alice能赢的最多局数
     * @param n int 
     * @param p1 int 
     * @param q1 int 
     * @param m1 int 
     * @param p2 int 
     * @param q2 int 
     * @param m2 int 
     * @return int
     */
    public int Mostvictories (int n, int p1, int q1, int m1, int p2, int q2, int m2) {
        // write code here
        int ans1=0;
        int ans2=0;
        int ans3=0;
        int sum=0;
        if(p1>=q2){
            ans1=q2;
        }
        if(p1<q2){
            ans1=p1;
        }
        if(q1>=m2){
            ans2 = m2;
        }
        if(q1<m2){
            ans2 = q1;
        }
        if(m1>=p2){
            ans3 = p2;
        }
        if(m1<p2){
            ans3 = m1;
        }
        sum = ans1+ans2+ans3;
        return sum;

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值