当前位置: 首页 > news >正文

之前翻硬币问题胡思乱想的完善

题目背景
小明正在玩一个“翻硬币”的游戏。

题目描述
桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零),比如可能情形是 **oo***oooo,如果同时翻转左边的两个硬币,则变为 oooo***oooo。现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?

输入格式
两行等长字符串,分别表示初始状态和要达到的目标状态,每行长度小于 10001000。

数据保证一定存在至少一种方案可以从初始状态和要达到的目标状态。

输出格式
一个整数,表示最小操作步数。

输入输出样例
输入 #1复制

**********
o****o****
输出 

5
输入 

*o**o***o***
*o***o**o***
输出 #2复制

1

在做这道题目的时候我这样评价这个解法答案的唯一性是因为——

另外,应当明确的一个事实就是我们写算法就是为了让计算机的for循环结构和while结构帮我们自动处理同一的大量的执行。还有一点就是它们必须都是满足某种规律的,然而有的题目就比如翻硬币是没有规律的(我指的是明显的使得程序直接按照最朴素的想法直接进行的),这时for和while(虽然不一定但依然是在for和while的基础上进行转化的)肯定还是要用到的。所以我们只能按部就班的直接翻硬币。这时往往是要从另外一个角度来看待这一个问题的。我们可以毫不怀疑的说就是这个直接从开头开始翻转了。因为像数学一样转化这个问题就说明它是有规律的,但是请注意到那些看可以被重写(重述)的问题是在基本的问题上进行改进的(因为这就和数学里面的“范畴论”一样,不同的问题之间之所以可以一步一步的转化就是因为它转化后的,如代数转几何是因为几何就是代数建立的基础)而算法的简化问题就是在之前的问题的认识之下(不是穷举)一一对应的结果(即使人们并未意识到),所以我们可以丝毫不怀疑的说就是要这样解决的。

  但是用已有的去重构那些复杂的是很累的,所以数学中才会用那些高级的理论来解决成了那些基础数学很难解决的问题(高级理论放大了基础的一些特性,更高又在更高级的上面构造,(高级又有“自己的”特点,又可以深挖))。对应到同样是逻辑为基础的计算机里就是——高级算法和数据结构了。这样子我们就看清楚了哪些问题是值得我们去用算法和数据结构的。

然而其实可以解释得更加清楚的。

启发我的是我对格皇的不可模仿性的思考。可以说尽管我已经意识到了这一点,但是我还是不能完全说服自己。在清明假期回家的路上我反思了自己的所学和所见,了一些结果。

我在B站上面看到一个UP主,他教授的是他自己在高中数学竞赛学习过程中悟出来的“自由度”分析。我当时就觉得和格皇在《收获与播种》里面说因为知道三条边可以确定一个三角形所以就去找到了边表示面积的方法。UP主是北大数院的,他的实力在我之上但是他依然不可能做到像格洛滕迪克那样,自己发现勒贝格积分和测度论。他反而是利用高级的知识来揭示高中知识的本质(尽管自由度的刻画几乎只对线性方程有解决问题的时候看清楚道路的作用),这给了我很大的启发,这次想起我觉得虽然不能到达格的水平亦可以用苏苏的方法来学习新思想,达成自己的小目的。

在知乎上面看数学有关的帖子的时候突然刷到了希尔伯特纲领中对符号证明的推崇——也就想起来了自己学习数学的经历(对偏导数导数和向量函数导数的一些玩乐)。

从导数的数学定义进而推导出的导数运算法则。运用拉格朗日中值定理得到偏导数公式。一个思想贯彻其中。这使得我去猜测这样一个在希尔伯特纲领里称为形式化的东西。

1.导函数只能是两个元素之间的,也就是只能是自由度为1的时候微积分才存在

2.偏导数相当于是,一个变量先动,然后另外一个变量后动。转化成数学语言就是把时间的先后给拍扁成为隐藏的操作 f(x + delt x, y + delt y)- f(x,y) = f(x + delt x, y + delt y)- f(x,y + delt y) + f(x ,y + delt y) - f(x,y)(x变化和y变化)

3.无论给出任何数总是存在更小的数字使得函数接近极限

而希尔伯特纲领是这样子的

希尔伯特纲领的核心目标通常可以总结为以下三个关键点:

  1. 形式化:希尔伯特希望将整个数学体系的形式化,即将所有的数学概念和推理过程转化为精确的符号逻辑表达,并基于一套有限的、明确的公理和严密的推理规则构建数学体系。这意味着所有的数学理论都应该能在一种形式语言中得到表达。

  2. 一致性和完备性:希尔伯特计划证明数学公理系统的相容性,即确保在该系统内不可能推导出逻辑矛盾;同时他还追求完备性,即系统内每一个真实的陈述都应该能够在该系统内部通过逻辑推理得到证明。换言之,他希望建立一个既能涵盖所有真命题,又能排除一切内在矛盾的数学体系。

  3. 决定性:希尔伯特试图找到一种通用的方法或算法,对于任何给定的数学命题,都能确切地决定它在所考虑的公理系统中是否可证明。这意味着数学真理的可判定性问题,即是否存在一种机械程序,对于任何数学陈述,都能准确判断其是否为真或者能否被证明。

虽然说这个纲领最后被证明是错误的。但是需要注意到的一点是,这是专业数学家得到的结果。

这说明了

你学到的数学是完全符合希尔伯特纲领的

假设你学到的数学是不符合希尔伯特纲领的,换句话说就是会找到不能用公理体系证明的定理的话那就说明这个纲领一开始就是荒谬的,大数学家没你牛。但是这是不可能的。

事实也确实如此

1.除了哥德尔找到的sub(n,n,17)的这个自相矛盾的命题之外数学家也就只找到了其余的几个。如果你在你学到的那些不高级的数学中找到了这样的定理,那你就会留名数学史。但是这是几乎不可能的。所以,希尔伯特纲领在低级的数学领域是符合的。我们大可放心使用。

2.就算是高级的数学也可把希尔伯特纲领当作假定为真,应为反列少得可怜。找到可以留名史册。没找到可以推进自己的工作,两不输。

所以以上三个性质请大胆地去用。

由此可知我们遇到的数学领域都是可以相互转化的,就是一一对应的。各个数学领域一一对应。几何代数本质上相同。我们也没必要在这上面浪费时间了,除了偶尔转化来玩一下,熟悉一下数学,混个脸熟。

范畴论太复杂了,而且涉及到了高级的知识,我的理解可能不对了。用到希尔伯特纲领就足够解释了。

其实我原来是想要解决算法问题的——判断那些题目是穷举,那些是有存在成立的数学原理的。但是计算机里面有的问题就是纯体力活。比如计算机找素数,这就是纯体力活。应为数学家都没找到一个素数公式去表达所有的素数或者说部分无限多个素数。(欧拉、高斯、黎曼都未曾找到)当然现在也没有。也许有的知识是有规律的,但是我的数学技术还是不够深,所以暂时还是不能知道其中的奥秘(或许穷不穷举都是数学问题?毕竟几乎计算机上有成就的计算机专家都是数学家或者擅长数学的,图灵、冯诺依曼、)我留下这篇文章。希望会对以后有所帮助。

只是暂时归纳到

看似穷举但是没有穷举思路的也许是数学问题

相关文章:

之前翻硬币问题胡思乱想的完善

题目背景 小明正在玩一个“翻硬币”的游戏。 题目描述 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零),比如可能情形是 **oo***oooo,如果同时翻转左边的两个硬币&#x…...

前端与后端协同:实现Excel导入导出功能

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…...

Docker:探索容器化技术,重塑云计算时代应用交付与管理

一,引言 在云计算时代,随着开发者逐步将应用迁移至云端以减轻硬件管理负担,软件配置与环境一致性问题日益凸显。Docker的横空出世,恰好为软件开发者带来了全新的解决方案,它革新了软件的打包、分发和管理方式&#xff…...

畅捷通T+ KeyInfoList.aspx SQL漏洞复现

0x01 产品简介 畅捷通 T+ 是一款灵动,智慧,时尚的基于互联网时代开发的管理软件,主要针对中小型工贸与商贸企业,尤其适合有异地多组织机构(多工厂,多仓库,多办事处,多经销商)的企业,涵盖了财务,业务,生产等领域的应用,产品应用功能包括:采购管理、库存管理、销售…...

【面经】interrupt()、interrupted()和isInterrupted()的区别与使用

📝个人主页:五敷有你 🔥系列专栏:面经 ⛺️稳中求进,晒太阳 interrupt方法 如果打断线程正在sleep,wait,join会导致被打断的线程抛出InterruptedException,并清除打断标记。如…...

了解这些技术:Flutter应用顺利登陆iOS平台的步骤与方法

引言 🚀 Flutter作为一种跨平台的移动应用程序开发框架,为开发者提供了便利,使他们能够通过单一的代码库构建出高性能、高保真度的应用程序,同时支持Android和iOS两个平台。然而,完成Flutter应用程序的开发只是第一步…...

经济学 劳动市场 医疗经济学

目录 劳动市场 医疗经济学 劳动市场 自愿交换 劳动力的供给,取决于能够胜任这个工作的人的数量,雇主提供的工资必须要能覆盖他的机会成本,他失去的自由世界和他做其他事情能够挣到钱 派生需求:劳动力的需求,取决于…...

vue + koa + Sequelize + 阿里云部署 + 宝塔:宝塔数据库连接

之前文章已经介绍了宝塔上传前后端代码并部署,不清楚的请看这篇文章: vue koa 阿里云部署 宝塔:宝塔前后端部署 下面是宝塔创建数据库: 我用的 koa Sequelize 连接的数据库,Sequelize 非常适合前端使用&#xf…...

华为昇腾认证考试内容有哪些

华为昇腾认证考试的内容主要包括理论知识和实践操作两部分。 在理论知识部分,考生需要掌握昇腾计算的基础知识,包括昇腾计算平台的架构、性能特点、应用场景等。此外,还需要深入理解昇腾AI框架、算子开发、模型优化等相关技术原理和应用方法…...

Spring Boot接收从前端传过来的数据常用方式以及处理的技巧

一、params 传参 参数是会拼接到url后面的请求 场景规范&#xff1a;url后面的key值<3个参数的时候&#xff0c;使用params 传参 支持的请求方式&#xff1a;get&#xff08;正规的是get方式&#xff09;、post 都行 例如&#xff1a; http://localhost:8080/simpleParam?…...

EFCore通用数据操作类

public class ServiceBase : IServiceBase {protected DbContext Context { get; private set; }public ServiceBase(IEFContext eFContext){Context eFContext.CreateDBContext();}public void Commit(){this.Context.SaveChanges(); // 直接保存就行了}public void Delete&l…...

java Web 辅助学习管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 java Web 辅助学习管理系统是一套完善的信息管理系统&#xff0c;结合java 开发技术和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 前段主要技术 bootstr…...

使用Python实现K近邻算法

K近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;是一种简单而有效的分类和回归算法&#xff0c;它通过比较新样本与训练样本的距离来进行预测。在本文中&#xff0c;我们将使用Python来实现一个基本的K近邻算法&#xff0c;并介绍其原理和实现过程。 什…...

Celery的任务流

Celery的任务流 在之前调用任务的时候只是使用delay()和apply_async()方法。但是有时我们并不想简单的执行单个异步任务&#xff0c;比如说需要将某个异步任务的结果作为另一个异步任务的参数或者需要将多个异步任务并行执行&#xff0c;返回一组返回值&#xff0c;为了实现此…...

使用Arcpy进行数据批处理-批量裁剪

时空大数据使我们面临前所未有的机遇和挑战&#xff0c;尤其在地学、遥感或空间技术等专业领域&#xff0c;无疑是一个全新的时代。 伴随着时空大数据的到来&#xff0c;海量数据的处理是一个所有科研工作者都无法忽视的重要问题。传统的数据&#xff08;主要指空间数据&#x…...

【攻防世界】ics-05

php://filter 伪协议查看源码 preg_replace 函数漏洞 1.获取网页源代码。多点点界面&#xff0c;发现点云平台设备维护中心时&#xff0c;页面发生变化。 /?pageindex 输入什么显示什么&#xff0c;有回显。 用php://filter读取网页源代码 ?pagephp://filter/readconvert.…...

VTK的交互器

VTK中鼠标消息是在交互类型对象&#xff08;interactorstyle&#xff09;中响应&#xff0c;因此通过为交互类型对象&#xff08;interactorstyle&#xff09;添加观察者&#xff08;observer&#xff09;来监听相应的消息&#xff0c;当消息触发时&#xff0c;由命令模式执行相…...

ChatGPT(3.5版本)开放无需注册:算力背后的数据之战悄然打响

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

python项目练习——14.学生管理系统

这个项目可以让用户管理学生的信息&#xff0c;包括学生的姓名、年龄、成绩等&#xff0c;并提供添加、编辑、删除、查询等功能。这个项目涉及到数据库操作、用户界面设计、数据验证等方面的技术。 代码示例&#xff1a; import tkinter as tk # 导入 Tkinter 库 import sqli…...

基于SpringBoot的公益慈善平台

一、项目背景介绍&#xff1a; 基于SpringBoot的公益慈善平台是一款致力于为社会所有人带来便利服务的B/S架构的应用程序。随着网络技术的发展&#xff0c;公益慈善网站已经逐渐成为公益行动的主要信息载体。在这个平台上&#xff0c;主要有管理员、捐赠者和志愿者三种角色&…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...