首页 > 编程语言 >C++数学

C++数学

时间:2024-11-11 16:46:29浏览次数:3  
标签:距离 y1 数学 C++ x2 y2

前言

C++算法与数据结构
打开打包代码的方法兼述单元测试
数论:质数、最大公约数、菲蜀定理
组合数学汇总

计算几何

博弈论

曼哈顿距离与切比雪夫距离

在这里插入图片描述
红线是哈曼顿距离,绿线是切比雪夫距离。

二维曼哈顿距离转切比雪夫距离

曼哈顿距离:|x1-x2|+|y1-y2|。典型应用:某个棋子只能向4联通移动(上下左右),哈曼顿距离就是就是两点间的移动次数。
切比雪夫距离:max(|x1-x2|,|y1-y2|)。典型应用:某个棋子只能向8联通移动(上下左右及四角),切比雪夫距离就是就是两点间的移动次数。
利用f(x,y)=(x+y,x-y)将点1(x1,y1)点2(x2,y2)转成点3(x3,y3)和点4(x4,y4)后,点1到点2的哈曼顿距离等于点3到点4的切比雪夫距离。下面来证明:
哈曼顿距离:max(x1-x2,x2-x1)+max(y1-y2,y2-y1) = max(x1-x2+y1-y2,x1-x2+y2-y1,x2-x1+y1-y2,x2-x1+y2-y1)
= max(x3-x4,y3-y4,y4-y3,x4-x3)
= max(|x3-x4|,|y3-y4|)即点3到点4的切比雪夫距离。
切比雪夫距离转哈曼顿距离:解2元一次方程组。

多维哈顿曼距离转切比雪夫距离

n维哈曼顿距离可以转化成2n-1维哈曼顿距离:
三维:(x,y,z) → \rightarrow → (x+y+z,-x+y+z,x-y+z,x+y-z)。
思维及以上是我的估计,不一定正确:
a+b+c+d,a+b+c-d,a+b-c+d,a+b-c-d,a-b+c+d,a-b+c-d,a-b-c+d,a-b-c-d。
即:a只取正号,其它(n-1)维,全部取正负,共2n-1种可能。

题解2024年11月9

难度分
【C++ 数学】1823. 找出游戏的获胜者1412
【动态规划 数学】2745. 构造最长的新字符串1607
【C++数学 负进制】1017. 负二进制转换1697
【C++ 基础数学 】2121. 2615相同元素的间隔之和1760
【数学】1526: 形成目标数组的子数组最少增加次数1872
【数学】【C++算法】780. 到达终点1897
【C++完全背包 动态规划 数学】1449. 数位成本和为目标值的最大数字1927
【动态规划】【数学】【折半搜索】805 数组的均值分割1982
【数学】927. 三等分1994
3027人员站位的方案数2020
2857. 统计距离为 k 的点对2081
【数学】 【分数】 【字符串】972. 相等的有理数2121
【数学】【计算几何】1453. 圆形靶内的最大飞镖数量2201
3068最大节点价值之和2267
【数学】【位运算】LeetCoce810. 黑板异或游戏2341
【动态规划】【数学】【C++算法】818赛车2394
【动态规划】【数学】1388 3n 块披萨2409
【数学】【网格】【状态压缩】782 变为棋盘2429
【C++ 数学】1330. 翻转子数组得到最大的数组值2481
【分类讨论】【解析几何】【 数学】【推荐】1330. 翻转子数组得到最大的数组值2481
【C++数学】3197. 包含所有 1 的最小矩形面积 II2549
3139. 使数组中所有元素相等的最小开销2666
【设计】 【数学】1622 奇妙序列2476
2019. 解出数学表达式的学生分数2583
【数学】【记忆化搜索 】【动态规划】964. 表示数字的最少运算符2594
【动态规划】【 数学】C++算法:514自由之路无难度分
【动态规划 数学归纳法 二项式定理】C++ 算法458:可怜的小猪无难度分

曼哈顿距离

难度分
【C++ 曼哈顿距离 数学】1131. 绝对值表达式的最大值2059
【C++数学 曼哈顿距离】3102. 最小化曼哈顿距离2215
【键值皆有序map 线段树 数学 】3102. 最小化曼哈顿距离2215

博弈论

难度分
【C++博弈论 动态规划】1510. 石子游戏 IV1786
【C++博弈论 动态规划】1690. 石子游戏 VII1951
【贪心 临项交换 博弈论】1686. 石子游戏 VI2000
【C++ 博弈论 数学】1927. 求和游戏2004
【 C++ 博弈论 动态规划】1406. 石子游戏 III2026
【C++前缀和 动态规划 博弈】1140. 石子游戏 II2034
【博弈】843. 猜猜这个单词2077
【C++ 博弈论 动态规划】1563 石子游戏 V2087

扩展阅读

我想对大家说的话
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛
失败+反思=成功 成功+反思=成功

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。

标签:距离,y1,数学,C++,x2,y2
From: https://blog.csdn.net/he_zhidan/article/details/143057305

相关文章

  • C++ 的“活动范围”:变量的作用域和生命周期,一次搞懂!
    在C++里,变量就像是临时开的小仓库,可以用来存放各种数据。可是,不是所有变量都可以随便在哪儿都被访问到。它们都有自己的活动范围,也就是只有在特定区域才能被找到和使用。这种活动范围叫做作用域。而生命周期则是指这些变量“活着”的时间段,等生命周期结束,变量就会被自动清......
  • C++ 数据结构详解
    目录C++数据结构详解引言1.数组(Array)示例代码2.向量(Vector)示例代码3.链表(List)示例代码4.栈(Stack)示例代码5.队列(Queue)示例代码6.集合(Set)示例代码7.映射(Map)示例代码C++数据结构详解引言数据结构是计算机科学中的一个重要概念......
  • 各个语言的标准输入输出(C++,Python,Go,MATLAB)
    标准输入和输出C/C++cin,cout,getline()进行输入输出#include<bits/stdc++.h>usingnamespacestd;intmain(){//输入`1231231` inta,b,c; cin>>a>>b>>c; cout<<a<<b<<c<<endl;//输出1231231并换行(endl代表换行) //输入`......
  • C++公司人员管理系统-毕业设计源码34001
    摘  要随着信息技术的快速发展和企业规模的持续扩大,传统的手工管理方式已经无法满足现代企业对员工信息管理的需求。因此,开发一套高效、稳定且易于维护的公司人员管理系统成为了企业信息化的重要任务之一。C++作为一种成熟、高效的编程语言,以其强大的面向对象特性和广泛的......
  • 初中数学考试质量分析(原因分析和改进措施)
    一、考试原因分析(一)学生因素1.学生入学时的基础很差,缺乏基本的运算能力和数学思维;2.学生缺乏学习的主动性和积极性,部分学生课堂上精力不集中;3.理解能力不足,如一些相关概念不能理解它的意义和作用;4.课后不及时复习巩固,学过就忘,做笔记杂乱无章,没有复习依据;(一)教师因素1.个别......
  • 【编程语言】理解C/C++当中的指针
    指针是C/C++语言中一个非常强大且重要的概念,也是编写高效程序的基础之一。对于没有编程背景的初学者来说,理解指针可能有些难度,但通过本篇文章的介绍,相信你会对指针有一个清晰的认识。本文将从指针的基本概念、作用、代码示例、注意事项等方面,带你一步步了解指针的世界。什......
  • [C++]类和对象(上篇)
    类和对象类①类的声明与定义②成员变量的规范化1.成员变量为声明③计算类的大小1.对齐数的意义2.错题展示④成员函数的位置以及传参细节1.成员函数的位置2.传参细节this指针⑤类的6个默认成员函数1.构造函数概念特性无参构造函数与全缺省构造函数不能同时出现默......
  • 【C/C++】5.字节对齐和字节填充
    字节对齐(alignment)和字节填充(padding)是优化内存访问效率和确保数据结构正确存储的重要机制。了解字节对齐和填充的原理可以帮助我们更好地设计数据结构,并且减少因不合理的内存布局引起的性能问题或程序错误。1.字节对齐(Alignment)字节对齐是指在内存中存储数据时,将数据......
  • c++实验三
    task1:代码:button.hpp:1#pragmaonce23#include<iostream>4#include<string>56usingstd::string;7usingstd::cout;89//按钮类10classButton{11public:12Button(conststring&text);13stringget_label()......
  • 实验3 c++
    任务一:button.hpp:#pragmaonce#include"button.hpp"#include<vector>#include<iostream>usingstd::vector;usingstd::cout;usingstd::endl;//窗口类classWindow{public: Window(conststring&win_title); voiddisplay()const......