1025. 除数博弈(动态规划)

从力扣1025题“除数博弈”解析博弈论与动态规划解题思路 博弈论是研究决策主体间策略互动的数学理论,在公平组合游戏中,胜负往往由初始状态决定。其核心原理在于分析每个状态的必胜态与必败态,通过状态转移判断最终结果。这一理论在算法竞赛和工程实践中具有重要价值,能够将复杂的交互问题转化为可计算模型。在应用场景上,博弈论思想广泛用于资源分配、游戏AI和并发控制等领域。以力扣第1025题“除数博弈”为例,该问题可通过动态规划方法,从小规模状态递推求解,最终发现奇偶性规律:偶数先手必胜,奇数先手必败。理解这一过程有助于掌握将游戏规则抽象为状态转移的通用框架,提升解决类似问题的 阅读详情
/**
 * 1025. 除数博弈
 * @author wsq
 * @date 2020/10/15
	 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。
	最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:
	选出任一 x,满足 0 < x < N 且 N % x == 0 。
	用 N - x 替换黑板上的数字 N 。
	如果玩家无法执行这些操作,就会输掉游戏。
	只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 False。假设两个玩家都以最佳状态参与游戏。
	
	示例 1:
	输入:2
	输出:true
	解释:爱丽丝选择 1,鲍勃无法进行操作。
	
	链接:https://leetcode-cn.com/problems/divisor-game
 */
package com.wsq.dp;

public class DivisorGame {
	/**
	 *	给定数字N,判断先手 必胜 或 必败
	 *	1. 确定状态
	 *		最后一步:存在0<x<N, N-x时先手必败,对应下一步f[N]必胜
	 *		子问题:计算f[N-x]的状态
	 *	2.确定转移方程
	 *		N % j == 0
	 *		f[N] = !f[N-j]
	 *	3.初始条件与边界问题
	 *		f[1] = false;
	 *		f[0] = false;
	 *	4.计算顺序
	 * @param N
	 * @return
	 */
	public boolean divisorGame(int N) {
        if(N < 2){
            return false;
        }
        // 开数组
        // f[N] 表示爱丽丝的获胜情况
        // f[N] = !f[N-x]
        boolean[] f = new boolean[N + 1];
        
        for(int i = 2; i <= N; i++){
            for(int j = 1; j < i; j++){
                if(i % j == 0 && !f[i - j]){
                    f[i] = true;
                    break;
                }
            }
        }
        return f[N];
    }
}

【LeetCode 简单 动态规划 python3】1025. 除数博弈 想要看更加舒服的排版、更加准时的推送 关注公众号“不太灵光的程序员” 每日八点有干货推送,微信随时解答你的疑问 1025. 除数博弈 python3 简单 数学 动态规划 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 Tr. 阅读详情

相关推荐

A B C三个气象站的小波分析结果解读

在小波分析的过程中,信号的不同频率分量会在不同的尺度上显现,而纵轴上的数值表示信号在相应尺度上的强度或能量。2. **小波方差的横轴(水平轴)**:横轴上的尺度表示用于分析的小波函数的尺度。1. **共同趋势:** 在所有三个点的小波方差图中,随着尺度的增加,方差逐渐增大,尤其是在较大的时间尺度上。3. **尺度30的特殊性:** 在所有点的小波方差图中,尺度30似乎是一个特殊的点,对应着一个较长的时间尺度上的波动或变化。2. **方差的大小:** 方差的大小反映了在相应尺度下信号的波动强度。

weixin_44259522的博客 860

LeetCode1025:除数博弈(归纳-动态规划)

LeetCode1025:除数博弈(归纳-动态规划) 方法一:归纳法: 前人栽树,后人乘凉。 1、数字N如果是奇数,它的约数必然都是奇数;若为偶数,则其约数可奇可偶。 2、无论N初始为多大的值,游戏最终只会进行到N=2时结束,那么谁轮到N=2时谁就会赢。 3、因为爱丽丝先手,N初始若为偶数,爱丽丝则只需一直选1,使鲍勃一直面临N为奇数的情况,这样爱丽丝稳赢; N初始若为奇数,那么爱丽丝第一次选完之后N必为偶数,那么鲍勃只需一直选1就会稳赢。 4、综述,判断N是奇数还是偶数,即可得出最终结果! 复杂度分

cui1004的博客 396

FOC电机控制中电流采样延迟补偿的原理和方法

摘要: FOC电机控制中,电流采样、计算与PWM更新存在固有延迟(约1.5个PWM周期),导致相位滞后,限制电流环带宽。主流补偿方法包括: 一阶前向预测法:基于历史电流值预测未来电流,抵消延迟,工程应用广泛; 相位超前补偿:通过s/z域校正器设计实现等效预测; 状态观测器法(如龙伯格观测器):通过电机模型闭环估计状态,兼具噪声抑制和参数辨识能力,但复杂度高。实际需注意参数敏感性、离散化精度及延迟时间校准,避免过补偿风险。一阶预测法因平衡效果与复杂度成为工业首选。

jifengzhiling的博客 2233

动态规划系列 1025.除数博弈

package test; /** * 动态规划系列 * 1025.除数博弈 * 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 * * 最初,黑板上有一个数字N。在每个玩家的回合,玩家需要执行以下操作: * * 选出任一x,满足0 < x < N 且N % x == 0。 * 用 N - x替换黑板上的数字 N 。 * 如果玩家无法执行这些...

m0_37648645的博客 442

QuestaSim使用Xilinx库的设置

安装QuestaSim

miracle_eicont的专栏 3409

浙大数值分析lab2

最可怕的一道题,题目是这样的 Root of a Polynomial A polynomial of degree nnn has the common form as p(x)=cnxn+cn−1xn−1+⋯+c1x+c0p(x)=c_n x^n + c_{n-1} x^{n-1} + \cdots + c_1 x + c_0p(x)=c​n​​x​n​​+c​n−1​​x​

yao_zou的博客 4797

LeetCode 1025 除数博弈:从动态规划到数学归纳的一行代码解

在算法问题求解中,动态规划是解决博弈类问题的通用技术,通过定义状态(如必胜态与必败态)和状态转移方程,可以系统地分析双方最优决策下的胜负。其核心价值在于将复杂问题分解为重叠子问题,并通过记忆化或自底向上递推高效求解,广泛应用于资源分配、游戏策略等场景。然而,深入观察特定问题的输入规律,有时能发现更本质的数学特性,从而实现从O(N²)到O(1)的复杂度跃升。本文以LeetCode 1025 ‘除数博弈’为例,揭示了在暴力递归和动态规划基础上,通过奇偶性分析归纳出数学规律的过程,展示了识别问题核心、避免过度设计

weixin_33563728的博客 289

深入解析 ReDoc:从零构建高性能 API 文档的终极指南

ReDoc 是一个强大的开源工具,用于将 OpenAPI 规范转换为高质量、响应式的 API 文档。本文详细介绍了如何使用 ReDoc 构建和自定义 API 文档,包括如何编写支持 OpenAPI 的 API 注解、配置 HTML 页面以加载文档,以及如何利用 ReDoc 的高级功能进行定制。通过实例代码,您将学会如何灵活地展示 API 文档,提升用户体验。无论是初学者还是经验丰富的开发者,都能从本文中获得实用的技巧与方案,帮助快速搭建符合需求的 API 文档界面。

楠搏万的博客 4634

动态规划 1025除数博弈

1025 除数博弈 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N且 N % x == 0。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回True,否则返回 false。假设两个玩家都以最佳状...

codedenisty的博客 226

Synopsys AXI VIP 从环境搭建到首个验证场景运行

本文详细介绍了Synopsys AXI VIP从环境搭建到首个验证场景运行的全过程,包括VIP安装、示例工程生成、验证环境解析、仿真调试技巧及进阶优化。特别针对AXI协议验证中的常见问题提供了实用解决方案,帮助工程师快速掌握这一SoC验证必备工具。

weixin_29185493的博客 346

激光打标轴坐标计算分析

‌:基于坐标差的平方和开方运算,勾股定理将几何关系转化为代数计算,从而实现了从坐标到距离的精确转换‌12。直角三角形的应用从上图可以看到A,B,P三个点连起来就是一个直角三角形了。用勾股定理计算距离 C#有相关的方法直接传参数就可以了。很方便。

StevenChen的博客 312

1025. 除数博弈---动态规划解法

爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。...

yhy1315的博客 840

如何提高电路的抗干扰能力

本内容详细介绍了电源传导干扰处理,包括滤波、Feedthrough电容器、磁环、磁珠、屏蔽的使用与选型,EMC电磁兼容测试项目简介与要求,单片机与电源抗干扰处理等。

让你爱上电路设计 8603

LeetCode 1025 除数博弈:从动态规划到奇偶性数学解法的深度解析

动态规划是解决重叠子问题和最优子结构问题的核心算法思想,通过将复杂问题分解为简单子问题并存储中间结果,能有效提升计算效率。其技术价值在于为许多看似复杂的博弈、优化和搜索问题提供了系统性的解决框架。在算法面试和工程实践中,动态规划常被用于解决路径规划、资源分配和游戏策略等场景。本文以LeetCode 1025“除数博弈”为例,深入剖析如何从暴力递归、记忆化搜索逐步优化到动态规划,并最终揭示其背后基于奇偶性的数学规律。通过结合数学归纳法和因数遍历优化,不仅解决了具体问题,更展示了从工程实现到数学洞察的通用分析思

weixin_34005090的博客 224

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

动态规划——1025.除数博弈

关于小羊仔的刷题记录题目描述解答(动态规划)另解(归纳法)总结 题目描述 难度easy 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 False。假设两个玩家都以最佳状态参与游戏。 解答(动态规划) cla

东川路肖恩 342

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

动态规划 - 1025. 除数博弈

【代码】动态规划 - 1025. 除数博弈。

BreezeChasingDrizzle 362

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LeetCode #1025 除数博弈(记一道动态规划标签下的数学题)

题目链接: https://leetcode-cn.com/problems/divisor-game/ 题目描述: #1025 除数博弈 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个

Code_Yilia的博客 416

0动态规划简单 LeetCode1025. 除数博弈

1025. 除数博弈 描述 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 n 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < n 且 n % x == 0 。 用 n - x 替换黑板上的数字 n 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 true 。假设两个玩家都以最佳状态参与游戏 分析 在1~n-1之间遍历,若存在一个数x是N的因子并且n-x的结果一定是失败,则爱丽丝一定胜利,否则失败

31楼下小黑的博客 2868

LeetCode 1025. 除数博弈(动态规划)

1. 题目 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。 假设两个玩家都以最...

Michael是个半路程序员 3053

【力扣】1025. 除数博弈 --- 动态规划

1025 除数博弈 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/divisor-game 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返..

qq_42281215的博客 241

【动态规划-简单】1025. 除数博弈

【题目】 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 False。假设两个玩家都以最佳状态参与游戏。 示例 1: 输入:2 输出:true 解释:爱丽丝选择 1,鲍勃无法进行操作。 示例 2: 输入:3

... 1948

leetcode-动态规划-1025、除数博弈

文章目录题目解题思路题解 题目 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假...

weixin_38367817的博客 351

动态规划 1025.除数博弈

力扣 动态规划1025 除数博弈

Mu_yongheng的博客 479

LeetCode :1025. 除数博弈(归纳法与动态规划)

开始做动态规划的题,之前在做栈,但越是做到后面,就越发现栈中的题同时也需要动态规划,dynamic programing dp动态规划是现在很重要的算法,遗憾的是在我的算法书里居然没有讲到这些东西,所以我也只能从0还是学习 1025. 除数博弈 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法

stackempty2的博客 372

开学回归力扣:第九题——1025. 除数博弈(动态规划解决博弈问题)

1025. 除数博弈 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 False。假设两个玩家都以最佳状态参与游戏。 示例 1: 输入:2 输出:true 解释:爱丽丝选择 1,鲍勃无法进行操作。 示例 2

xiangguang_fight的博客 1014

数学法 | 动态规划:力扣1025. 除数博弈

1、题目描述: 2、题解: 方法1:数学法 思路1: 1、数字N如果是奇数,它的约数必然都是奇数;若为偶数,则其约数可奇可偶。 2、无论N初始为多大的值,游戏最终只会进行到N=2时结束,那么谁轮到N=2时谁就会赢。 3、因为爱丽丝先手,N初始若为偶数,爱丽丝则只需一直选1,使鲍勃一直面临N为奇数的情况,这样爱丽丝稳赢; N初始若为奇数,那么爱丽丝第一次选完之后N必为偶数,那么鲍勃只需一直选1就会稳赢。 综述,判断N是奇数还是偶数,即可得出最终结果! 思路2: 当然也可以找规律: N = 1 的时候,

weixin_42042056的博客 218
上一篇: 剑指 Offer 10- II. 青蛙跳台阶问题(动态规划)
下一篇: 746. 使用最小花费爬楼梯
Lazy mode
博客等级 码龄10年 13粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值