【笔记】枚举

news/2024/9/19 3:37:44 标签: 笔记, python, 算法

文章目录

    • 枚举的概念
    • 枚举步骤
    • 例题:百鸡百钱
      • 方案1
      • 方案二
      • 方案三
    • 例题

枚举的概念

枚举:逐个尝试所有可能的方案。

先把问题划分成一系列离散的状态,然后遍历这些状态来求解问题。

比如求3x+5y=10的正整数解有多少,把x∈[0,10],y∈[0,10]逐个列举就能找到所有解。

枚举步骤

  1. 确定解的空间(几元?一维的还是二维的?)
  2. 确定空间边界(min,max,step)
  3. 估算时间复杂度(别超了)
  4. 如果步骤3的时间复杂度超了,那么想办法减少枚举空间、变换枚举顺序……

例题:百鸡百钱

百鸡百钱是我国古代数学家张丘建在《算经》一书中提出的数学问题:“鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”

假设公鸡买了x,母鸡买了y,小鸡买了z。

列方程如下:

5 x + 3 y + 1 3 z = 100 x + y + z = 100 5x+3y+\frac{1}{3}z=100\\ x+y+z=100 5x+3y+31z=100x+y+z=100

方案1

枚举x,枚举y,枚举z,再加上两个上面的约束方程。

解空间是三维的。

方案二

枚举x,枚举y。z可以用上面的方程 z = 100 − x − y z=100-x-y z=100xy表示。

解空间是二维的。

方案三

枚举x。

y、z解二元一次方程组得到x的表达式。

y = 25 − 7 4 x z = 75 + 3 4 x y=25-\frac74x\\ z=75+\frac34x y=2547xz=75+43x

例题

https://blog.csdn.net/m0_73676887/article/details/142313916
https://blog.csdn.net/m0_73676887/article/details/142313873
https://blog.csdn.net/m0_73676887/article/details/142313818
https://blog.csdn.net/m0_73676887/article/details/142313775


http://www.niftyadmin.cn/n/5664916.html

相关文章

esp32-C2 对接火山引擎实现语音转文本(二)

目录 一、 语音转文本初始化 二、 WedStream 事件处理函数 一、 语音转文本初始化 Volcengine_vtt_handle_t Volcengine_Vtt_Init(Volcengine_vtt_config_t *config) {// 管道配置audio_pipeline_cfg_t pipeline_cfg = DEFAULT_AUDIO_PIPELINE_CONFIG();Volcengine_vtt_t *vt…

笔记:简介Drawing是什么,都有哪些,如何使用

一、目的:Drawing简介 在 WPF 中,Drawing 是一个抽象基类,用于表示可绘制的对象。Drawing 类及其派生类提供了一种轻量级的方式来描述图形、图像和视频等内容。Drawing 对象通常用于不需要用户交互的静态内容,例如背景图像、图标和…

C语言 ——— 编写函数,判断一个整数是否是回文整数

目录 题目要求 代码实现 题目要求 编写一个函数,用来判断一个整数是否是回文整数,如果是回文整数就返回 true ,如果不是就返回 false 举例说明: 输入:121 输出:true 输入:1321 输出&#xf…

MySQL系列—12.Undo log

1、概念 DML 操作导致数据变化 , 将变化前的记录写入 Undo 日志。 作用 用于记录更改前的一份 copy ,在操作出错时,可以用于回滚、撤销还原,只将数据库 逻辑地恢复到原来的样子 你 插入一条记录时,至少要把这条记录的主键值记下来…

【自学笔记】支持向量机(2)——核函数

引入 核函数的功能是将一组数据映射到更高维的特征空间,这样可以让在低维无法线性分类的数据能够在高维空间下被分类。   可以证明,如果原始数据是有限的维度,那么一定存在一个高维特征空间使得样本线性可分。 文章内容由《机器学习》相关内…

深度学习-点击率预估-研究论文2024-09-14速读

深度学习-点击率预估-研究论文2024-09-14速读 1. Deep Target Session Interest Network for Click-Through Rate Prediction H Zhong, J Ma, X Duan, S Gu, J Yao - 2024 International Joint Conference on Neural Networks, 2024 深度目标会话兴趣网络用于点击率预测 摘…

JAVA基础:正则表达式,String的intern方法,StringBuilder可变字符串特点与应用,+连接字符串特点

1 String中的常用方法2 1.1 split方法 将字符串按照指定的内容进行分割,将分割成的每一个子部分组成一个数组 分割内容不会出现在数组中 实际上该方法不是按照指定的简单的符号进行分割的,而是按照正则表达式进行分割 1.2 正则表达式 用简单的符号组合…

linux-系统管理与监控-设备管理

Linux 系统管理与监控:设备管理 在 Linux 系统中,设备管理是操作系统管理硬件资源的重要部分。通过设备管理,系统能够与计算机的硬件组件(如存储设备、网络接口、输入输出设备等)进行交互,并提供一个抽象的…