leecode172 | 阶乘后的零 | 傻瓜GPT

题意

给定一个整数 n ,返回 n! 结果中尾随零的数量。提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1
//题解
class Solution {
public:int trailingZeroes(int n) {
// ...*(1*5)*...*(x*5)*...*(1*5*5)*...*(x*5*5)*...*n 然后倒过来    	//...∗(1∗5)∗...∗(1∗5∗5∗5)∗...∗(2∗5∗5∗5)∗...∗(3∗5∗5∗5)∗...∗nreturn n == 0 ? 0 : n / 5 + trailingZeroes(n / 5);}
};
已经有热线网友 给了白话 题解过程
我们先以n=7举个例子,看一下7!7!7!末尾有几个0。我们把7!7!7!展开来看下:7!=1∗2∗3∗4∗5∗6∗77! = 1 * 2 * 3 * 4 * 5 * 6 * 7
7!=1∗2∗3∗4∗5∗6∗7
我们知道,只有2∗52*52∗5才可以得到一个000,那我们只需要看7!7!7!可以分解为多少个2∗52*52∗5就可以。222出现的频率肯定是高于555的,因为:每隔 2 个数就会包含因子222,比如2,4,6,..2,4,6,..2,4,6,..,
而每个 5 个数才会出现一个包含因子555的数,比如5,10,15,..5,10,15,..5,10,15,..
那我们的题目就可以转换为,n!n!n!最多可以分解出多少个因子555。对于n!n!n!,5 的因子一定是每隔 5 个数出现一次,也就是下边的样子。n!=1∗2∗3∗4∗(1∗5)...∗(2∗5)...∗(3∗5)...∗nn! = 1 * 2 * 3 * 4 * (1 * 5) * ... * (2 * 5) * ... * (3 * 5) *... * n
n!=1∗2∗3∗4∗(1∗5)...∗(2∗5)...∗(3∗5)...∗n
但我们还会发现,每隔 25(5*5) 个数字,出现的是 25,如下:...∗(1∗5)...∗(1∗5∗5)...∗(2∗5∗5)...∗(3∗5∗5)...∗n... * (1 * 5) * ... * (1 * 5 * 5) * ... * (2 * 5 * 5) * ... * (3 * 5 * 5) * ... * n
...∗(1∗5)...∗(1∗5∗5)...∗(2∗5∗5)...∗(3∗5∗5)...∗n
比如1∗5∗51*5*51∗5∗5,2∗5∗52*5*52∗5∗5,里面包含了 25。同理,每隔 125(5*5*5)个数字,出现的是 35,如下:...∗(1∗5)...∗(1∗5∗5∗5)...∗(2∗5∗5∗5)...∗(3∗5∗5∗5)...∗n... * (1 * 5) * ... * (1 * 5 * 5 * 5) * ... * (2 * 5 * 5 * 5) * ... * (3 * 5 * 5 * 5) * ... * n
...∗(1∗5)...∗(1∗5∗5∗5)...∗(2∗5∗5∗5)...∗(3∗5∗5∗5)...∗n
那么,我们要计算n!中一共有多少个因子5的话,计算方法方式就应该是:每隔5个数出现一次的因子5的次数+每隔25个数出现一次的因子5的次数+...每隔5个数出现一次的因子5的次数 + 每隔25个数出现一次的因子5的次数 + ...
每隔5个数出现一次的因子5的次数+每隔25个数出现一次的因子5的次数+...
也就是:n/5+n/(5∗5)+n/(5∗5∗5)+...n/5 + n/(5*5) + n/(5*5*5) + ...
n/5+n/(5∗5)+n/(5∗5∗5)+...

在这里插入图片描述

碰到一个很有意思的事情
在这里插入图片描述
我问GPT ,然后GPT立马就找出阶乘的相关原题
但我在想500 = (25)(2*5)*5
如果不是500阶乘的话,那就只有两个5和仅有的两个2配对,那500的末尾零应该是2

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
事实上,如果直接上结果,而不给出正确的推导过程,GPT会一直无脑给结果,只有当你给出正确的逻辑推导之后,他会顺着你的思路走,然后形成结果,当你再去测试,这回他变聪明了。

当然测试怎么能忘了百度
然后就在文心一言上测试
在这里插入图片描述

在这里插入图片描述
当给出 正确的逻辑过程,百度也学聪明了
在这里插入图片描述
后面,再忽悠他,也忽悠不住
在这里插入图片描述
总结来说,当只是主观给出一个结论,然后GPT也会给一个主观回复(也就是胡说八道)当,你喂一些正确的逻辑推导过程,他就立马学以致用,然后再去忽悠,也就忽悠不住了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/455510.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑文件msvcr120.dll丢失怎样修复?一键修复msvcr120.dll的方法

近期发现众多用户向小编询问关于“msvcr120.dll文件应该放置在何处”的问题,这可能暗示着该文件丢失的情况变得普遍。面对这种情况,小编认为有必要向大家提供一个详尽的指导,帮助解决 msvcr120.dll 文件丢失的难题。接下来,让我们…

Vivado-IP核

Vivado-IP核 主程序 timescale 1ns / 1ps ////module ip_clk_wiz(input sys_clk,input sys_rst_n,output clk_out1,output clk_out2,output clk_out3,output clk_out4,output locked);clk_wiz_0 instance_name(// Clock out ports.clk_out1(clk_out1), // output clk_out…

ElasticSearch-SpringBoot整合ElasticSearch

六、SpringBoot整合ElasticSearch 1、浏览官方文档 1、查找跟ES客户端相关的文档 使用Java REST Client 选择Java Hight Level REST Client 2、创建项目的准备 1.找到原生的依赖 2.找到对象 3.分析这个类里面的方法 3、正式创建项目 1.创建工程 2.导入依赖 注意依赖版本…

华为视频监控接入到视频监控平台 (华为网路监控摄像机IPC和华为视频节点设备VCN)

目 录 一、设备介绍 1.1 华为VCN介绍 1.2 AS-V1000视频监控平台介绍 1.3 平台服务器配置说明 二、安装、配置HW_IVS软件 2.1下载安装HW_IVS软件 2.2登录HW_IVS 2.3共享到外域 三、配置华为外域参数 3.1 PCG模块设置 3.2通信协议GBT28181配置 3.3传…

OpenCV 图像处理六(傅里叶变换、模板匹配与霍夫变换)

文章目录 一、傅里叶变换1.1 NumPy实现和逆实现1.1.1 NumPy实现傅里叶变换Demo 1.1.2 NumPy实现逆傅里叶变换Demo 1.2 OpenCV实现和逆实现1.2.1 OpenCV实现傅里叶变换Demo 1.2.2 OpenCV实现逆傅里叶变换Demo 1.3 频域滤波1.3.1低频、高频1.3.2 高通滤波器构造高通滤波器Demo 1.…

[嵌入式AI从0开始到入土]13_orangepi aipro开箱测评

[嵌入式AI从0开始到入土]嵌入式AI系列教程 注:等我摸完鱼再把链接补上 可以关注我的B站号工具人呵呵的个人空间,后期会考虑出视频教程,务必催更,以防我变身鸽王。 第1期 昇腾Altas 200 DK上手 第2期 下载昇腾案例并运行 第3期 官…

【算法设计与分析】最小覆盖字串

📝个人主页:五敷有你 🔥系列专栏:算法分析与设计 ⛺️稳中求进,晒太阳 题目 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回…

支持534种语言,开源大语言模型MaLA-500

无论是开源的LLaMA 2还是闭源的GPT系列模型,功能虽然很强大,但对语言的支持和扩展比较差,例如,二者都是以英语为主的大模型。 为了提升大模型语言的多元化,慕尼黑大学、赫尔辛基大学等研究人员联合开源了,…

python创建pdf文件

目录 一:使用reportlab库 二:使用使pdf库 在Python中生成PDF文件可以使用多种库,其中最常用的是reportlab和fpdf。以下是使用这两个库生成PDF文件的示例代码: 一:使用reportlab库 1:写入文字信息 from r…

【深度学习理论】持续更新

文章目录 1.统计学习理论 1.统计学习理论 统计学习理论,一款适合零成本搞深度学习的大冤种的方向 从人类学习到机器学习的对比(学习的过程分为归纳和演绎 ),引出泛化和过拟合的概念。 如何表示归纳的函数规律呢?以监督…

XAI:探索AI决策透明化的前沿与展望

文章目录 📑前言一、XAI的重要性二、为什么需要可解释人工智能三、XAI的研究与应用四、XAI的挑战与展望 📑前言 随着人工智能技术的快速发展,它已经深入到了我们生活的方方面面,从智能手机、自动驾驶汽车到医疗诊断和金融投资&…

【Linux驱动】块设备驱动(二)—— 块设备读写(使用请求队列)

块设备的操作函数并没有类似于字符驱动中的read 和write函数,要实现读写操作,只能在请求处理函数中实现。这就分为两种,是否要使用请求队列,请求队列的主要作用是管理和调度IO请求。在以下情况中,一般需要用到请求队队…