【QED】等式构造

文章目录

  • 题目
    • 题目描述
    • 输入输出格式
    • 数据范围
    • 测试样例
  • 思路
  • 代码
  • 复杂度分析
    • 时间复杂度
    • 空间复杂度

题目

题目链接🔗

题目描述

有关 「上述等式为何正确」 的问题解决了,然而 「如何构造出上述那种让人啼笑皆非的正确等式」 成为了一个新的问题。

我们认为这个问题太难了,因此我们把解决这个问题的任务交给了你,相信你可以完成这个任务:给出一个整数 n n n,求出一组整数 x x x y y y z z z,满足 x − y ÷ z = n ! x-y÷z=n! xy÷z=n! ( x − y ) ÷ z = n (x-y)÷z=n (xy)÷z=n

注意, z z z 应为正数。如果有多种可能的答案,输出任意⼀种即可。

输入输出格式

【输入格式】

输入共一行一个整数 n n n

【输出格式】

输出共一行三个整数 x x x y y y z z z,代表满足 x − y ÷ z = n ! x-y÷z=n! xy÷z=n! ( x − y ) ÷ z = n (x-y)÷z=n (xy)÷z=n 的一组整数( z z z为正整数)。三者两两之间以一个空格隔开。

数据范围

0 < n ≤ 11 0 < n \le 11 0<n11 − 1 0 9 ≤ x -10^9 \le x 109x y ≤ 1 0 9 y \le 10^9 y109 1 ≤ z ≤ 1 0 9 1 \le z \le 10^9 1z109

测试样例

input1:

5

output1:

230 220 2

input2:

1

output2:

2 1 1

思路

题目要求满足:
x − y ÷ z = n ! x-y÷z=n! xy÷z=n! ( x − y ) ÷ z = n (x-y)÷z=n (xy)÷z=n y = k ⋅ z y=k·z y=kz k k k 为整数,上面两个式子联立后消去 ,可得: n ! + h = k ⋅ z + n ⋅ 2 n!+h=k·z+n·2 n!+h=kz+n2 z = n ! + k n + k z=\frac{n!+k}{n+k} z=n+kn!+k分子变形加上一个 n n n 再减去一个 n n n 得: z = n + k + n ! − n n + k = 1 + n ! − n n + k z=\frac{n+k+n!-n}{n+k}=1+\frac{n!-n}{n+k} z=n+kn+k+n!n=1+n+kn!n由于 k为整数,此外没有太多其他约束,而考虑到 z ≥ 1 z\geq1 z1 旦对于此式我们只需要求出一组特解即可满足题意,我们可以注意到当 n ! − n n + k = 1 \frac{n!-n}{n+k}=1 n+kn!n=1 时等式成立。这一步是构造的关键。当然我们也可以寻求其他特解,如考虑到 n ! − n n + k \frac{n!-n}{n+k} n+kn!n的分子可以被 n n n整除,我们直接令分母中的 k = 0 k=0 k=0,此时 z = ( n − 1 ) ! z=(n-1)! z=(n1)!也为整数使用 n ! − n n + k = 1 \frac{n!-n}{n+k}=1 n+kn!n=1的特解,可得: k = n ! − 2 n k=n!-2n k=n!2n k k k代入上述方程得: x = 2 n ! − 2 n x=2n!-2n x=2n!2n y = 2 n ! − 4 n y=2n!-4n y=2n!4n z = 2 z=2 z=2
(思路来源于《2024年广东工业大学揭阳校区ACM新生程序设计竞赛题解》)

代码

#include <iostream>
using namespace std;// 计算阶乘的函数
long long fact(long long x) {long long res = 1;for (long long i = 1; i <= x; i++)res *= i;return res;
}int main() {long long n;cin >> n;// 计算 x 和 y 的值long long x = 2 * (fact(n) - n);long long y = 2 * (fact(n) - 2 * n);// 输出结果cout << x << ' ' << y << ' ' << 2;return 0;
}

复杂度分析

时间复杂度

计算阶乘的时间复杂度为 O ( n ) O(n) O(n)

空间复杂度

使用了常数个额外变量,空间复杂度为 O ( 1 ) O(1) O(1)

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

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

相关文章

day26 文件io

函数接口 1 .open和close 文件描述符&#xff1a;系统为用open打开的文件分配的标识符 非负的整形数据 0-1023 最小未被使用原则 使用完时及时释放&#xff0c;避免文件描述符溢出 文件描述溢出就是文件使用完没有及时关闭文件 int open(const char *pathname, int flags); /…

mysql索引的理解

1、索引是什么&#xff1f; 索引&#xff1a;简单理解就是我们字典的目录&#xff0c;一个索引可以找得到多个记录。 作用加快我们数据库的查询速度。索引本身较大&#xff0c;往往存储在磁盘的文件里。可能存储在单独的索引文件中&#xff0c;也可能和数据一起存储在数据文件…

Leetcode打卡:查询数组中元素出现的位置

执行结果&#xff1a;通过 题目 3159 查询数组中元素出现的位置 给你一个整数数组 nums &#xff0c;一个整数数组 queries 和一个整数 x 。 对于每个查询 queries[i] &#xff0c;你需要找到 nums 中第 queries[i] 个 x 的位置&#xff0c;并返回它的下标。如果数组中 x 的出…

Overleaf中设置表格中的字体为Times New Roman

在Overleaf中设置表格中的字体为Times New Roman 需要有这个字体包 使用 \usepackage{times} 宏包 在文档的导言区添加 \usepackage{times} 宏包,这将把整个文档的字体设置为Times New Roman,包括表格中的字体。例如:\documentclass{article} \usepackage{times} \begin{…

如何理解 CNN 中的 RGB 图像和通道?

本文为合集收录&#xff0c;欢迎查看合集/专栏链接进行全部合集的系统学习。 合集完整版请参考这里。 在灰度图一节的最后&#xff0c;给出了一个由彩色图片转成灰度图的示例&#xff0c;并且通过 color_image.mode获取了图片的格式&#xff1a;彩色图片获取到的格式为 RGBA&a…

可灵1.6正式上线,图生视频再创新视界

大家最近有刷到过这几个视频吗&#xff1f; “一觉醒来&#xff0c;罗马斗兽场塌了”&#xff0c;可达鸭睡塌了罗马斗兽场&#xff01; 【视频来源于网络&#xff0c;侵删】 “卡比兽把一碗雪倒扣在富士山上&#xff0c;富士山瞬间被雪覆盖” 【图片来源于网络&#xff0c;侵删…

微积分复习(微分方程)

1,一阶微分方程 可分离的微分方程: 可以把x和y分列等号两边,然后求积分可以解决 齐次方程和准齐次方程 要求是 :yf(y/x),也就是没有单独的x项,我们可以通过设ty/x来统一变量方便我们运算 准齐次方程就是常数项不统一,我们可以将Xxa,Yyb来消灭常数项进而转化为齐次形式…

【火猫DOTA2】VP一号位透露队伍不会保留原阵容

1、最近VP战队的一号位选手Kiritych在直播中透露,VP战队的阵容将会有新的变动,原有的阵容将不再保留。 【目前VP战队阵容名单如下】 一号位:Kiritych 二号位:squad1x 三号位:Noticed 四号位:Antares 五号位:待定 2、Spirit的战队经理Korb3n在直播时谈到了越来越多的职业选…

两分钟解决:vscode卡在设置SSH主机,VS Code-正在本地初始化VSCode服务器

问题原因 remote-ssh还是有一些bug的&#xff0c;在跟新之后可能会一直加载初始化SSH主机解决方案 1.打开终端2.登录链接vscode的账号&#xff0c;到家目录下3.找到 .vscode-server文件,删掉这个文件4.重启 vscode 就没问题了

[银河麒麟] Geogebra

Geogebra 几何作图工具 是一款跨平台的几何作图工具软件&#xff0c; 目前已经覆盖了&#xff0c; windows&#xff0c;android&#xff0c; mac, linux 等操作系统。 Geogebra 官网 Geogebra 官网提供了 Geogebra 5.0 版本下载包, Linux Portable 双击 geogebra-portable…

一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类

机器学习实战通常是将理论与实践结合&#xff0c;通过实际的项目或案例&#xff0c;帮助你理解并应用各种机器学习算法。下面是一个简单的机器学习实战例程&#xff0c;使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集&#xff08;Iris Dataset&#xff09;**的…

浅谈下雪花算法的原理,及在项目中使用需要注意哪些事项

目录 背景 雪花算法原理 算法特点 注意事项 总结 背景 雪花算法是一种分布式ID生成算法&#xff0c;由Twitter提出&#xff0c;用于在分布式系统中生成全局唯一的ID。该算法通过将64位的长整型数字分为符号位、时间戳、工作机器ID和序列号四个部分&#xff0c;确保了ID的…

Kubernetes 安装 Nginx以及配置自动补全

部署 Nginx &#xff1a; [rootk8s-master ~]# kubectl create deployment nginx --imagenginx:1.14-alpine deployment.apps/nginx created暴露端口&#xff1a; [rootk8s-master ~]# kubectl expose deployment nginx --port80 --typeNodePort service/nginx exposed查看服…

C#使用Tesseract C++ API过程记录

Tesseract Tesseract 是一个开源的光学字符识别&#xff08;OCR&#xff09;引擎&#xff0c;最初由 Hewlett-Packard&#xff08;惠普&#xff09;实验室开发&#xff0c;后来由 Google 收购并继续维护和开源贡献。Tesseract 可以识别多种语言的文字&#xff0c;广泛应用于将…

在交叉编译中,常见的ELF(elf)到底是什么意思?

ELF 是 Executable and Linkable Format 的缩写&#xff0c;中文翻译为“可执行与可链接格式”。它是一种通用的文件格式&#xff0c;主要用于存储可执行文件、目标文件&#xff08;编译后的中间文件&#xff09;、动态库&#xff08;.so 文件&#xff09;以及内存转储文件&…

使 el-input 内部的内容紧贴左边

<el-inputv-model"form.invitor"placeholder"PC端的自动取当前账号的手机号"readonlyclass"no-border-input" />::v-deep(.no-border-input .el-input__inner) { border: none; box-shadow: none; padding-left: 0; /* 确保内容紧贴左边 *…

国标GB28181-2022平台EasyGBS:安防监控中P2P的穿透方法

在安防监控领域&#xff0c;P2P技术因其去中心化的特性而受到关注&#xff0c;尤其是在远程视频监控和数据传输方面。P2P技术允许设备之间直接通信&#xff0c;无需通过中央服务器&#xff0c;这在提高效率和降低成本方面具有明显优势。然而&#xff0c;P2P技术在实际应用中也面…

前端开发 -- 自动回复机器人【附完整源码】

一&#xff1a;效果展示 本项目实现了一个简单的网页聊天界面&#xff0c;用户可以在输入框中输入消息&#xff0c;并点击发送按钮或按下回车键来发送消息。机器人会根据用户发送的消息内容&#xff0c;通过关键字匹配来生成自动回复。 二&#xff1a;源代码分享 <!DOCTYP…

【速成51单片机】1.已经学过stm32如何快速入门51单片机——软件下载与安装

引言 本系列专题用于已经熟悉stm32单片机的情况下&#xff0c;快速掌握51单片机。背景是我其实大一大二已经进入学校实验室了&#xff0c;已经学习了stm32单片机&#xff0c;但是现在大三期末考51单片机&#xff0c;实际期末复习更应该看老师给的重点和背书上知识点。但我不想…

node-js Express防盗链

什么是防盗连 一个简单的说明&#xff0c;假如在前端img标签想要引用图片网站上的图片&#xff0c;当你将图片地址放到img标签上想要显示的时候你发现&#xff0c;图片显示不了&#xff0c;这说明网站采用了防盗链。 怎么实现的呢 在请求头中一般会有 Referer&#xff0c;它…