第十四届蓝桥杯国赛:2023次方的思考(指数塔,数论)

在这里插入图片描述

首先我们要知道,正常计算的话,指数优先级最高,因此得先计算指数,比如:
2 3 2 = 512 2^{3^2}=512 232=512
欧拉定理的关键在于,它允许我们通过减少计算的指数大小来简化模运算。

经过仔细研究(看题解的思路),蓝桥杯这个题应该是出错了,这个题的指数叫作:广义高阶幂塔,应当递归求解,而使用欧拉函数的方法不适用,所以现将题目改成:
对 ( ⋅ ⋅ ⋅ ( ( 2 3 ) 4 ) 5 ⋅ ⋅ ⋅ ) 2023 的值对 2023 取模的结果。 对(···((2^3)^4)^5···)^{2023}的值对2023取模的结果。 (⋅⋅⋅((23)4)5⋅⋅⋅)2023的值对2023取模的结果。

1、无脑的想法:

指数模+快速幂(错的)

#include <iostream>
using namespace std;
int main()
{int result = 2023;//result 存储 指数for(int i = 2022;i >= 2; --i){//遍历底数int b = result;int a = i;int ans = 1;while(b){if((b & 1) == 1){ans = (ans * a) % 2023;}a = (a * a) % 2023;b >>= 1;}result = ans;}cout << result;//1259return 0;
}

指数并不能直接取模!取模只在四则运算里面好用,在指数里面就不太能直接用了。
2 10 m o d 9 = 1024 m o d 9 = 7 2^{10} mod\ 9 = 1024\ mod\ 9 = 7 210mod 9=1024 mod 9=7 2 10 m o d 9 ≠ 2 m o d 9 = 2 2^{10} mod\ 9\ ≠2\ mod\ 9=2 210mod 9 =2 mod 9=2
可以证明指数不能随便取模。

普通的取模运算只能运用于加减乘除(四则运算) 下面是这些基本算术操作在模运算下的特性:

  1. 加法(Addition):

    • ( a + b ) m o d n = [ ( a m o d n ) + ( b m o d n ) ] m o d n (a + b) \mod n = [(a \mod n) + (b \mod n)] \mod n (a+b)modn=[(amodn)+(bmodn)]modn
    • 加法的模运算遵循分配律。
  2. 减法(Subtraction):

    • ( a − b ) m o d n = [ ( a m o d n ) − ( b m o d n ) + n ] m o d n (a - b) \mod n = [(a \mod n) - (b \mod n) + n] \mod n (ab)modn=[(amodn)(bmodn)+n]modn
    • 减法也遵循类似的规则,但要注意结果保持非负
  3. 乘法(Multiplication):

    • ( a × b ) m o d n = [ ( a m o d n ) × ( b m o d n ) ] m o d n (a \times b) \mod n = [(a \mod n) \times (b \mod n)] \mod n (a×b)modn=[(amodn)×(bmodn)]modn
    • 乘法在模运算中同样遵守分配律。
  4. 除法(Division):

    • 除法在模运算中比较复杂。不能直接应用常规除法运算,需要用到乘法逆元。如果存在, a a a 在模 n n n 下的乘法逆元 a − 1 a^{-1} a1 满足 a a − 1 ≡ 1 m o d n aa^{-1} \equiv 1 \mod n aa11modn。然后, a / b m o d n a / b \mod n a/bmodn 可以表示为 a × b − 1 m o d n a \times b^{-1} \mod n a×b1modn

在处理幂运算(如 a b m o d n a^b \mod n abmodn)时,不能直接对指数 b b b 应用普通的模运算,除非考虑到适当的数论属性(如欧拉函数 ϕ ( n ) \phi(n) ϕ(n)),这是因为幂运算涉及重复的乘法过程,指数的大小直接影响最终结果。因此,在涉及到幂运算时,需要谨慎处理指数的模运算,通常基于 ϕ ( n ) \phi(n) ϕ(n) 来简化指数大小。


2、有脑但不够的想法

费马小定理(错的)

  • 费马小定理:
    费马小定理: a p − 1 ≡ 1 ( m o d p ) p 是质数 , g c d ( a , p ) = 1 费马小定理:a^{p-1} ≡ 1(mod\ p)\ \ \ \ p是质数,gcd(a,p)=1 费马小定理:ap11(mod p)    p是质数,gcd(a,p)=1

如果 2023 是质数,则 a 2022 ≡ 1 ( m o d 2023 ) 如果2023是质数,则a^{2022} ≡ 1(mod\ 2023) 如果2023是质数,则a20221(mod 2023)
如果 2023 是质数,则 a 2023 ≡ a ( m o d 2023 ) 如果2023是质数,则a^{2023} ≡ a (mod\ 2023) 如果2023是质数,则a2023a(mod 2023)
由于 a = b 2022 ,且 b 2022 ≡ 1 ( m o d 2023 ) 由于a = b^{2022},且b^{2022} ≡ 1(mod\ 2023) 由于a=b2022,且b20221(mod 2023)
则有, a 2023 ≡ a ≡ 1 ( m o d 2023 ) ,其中 a = 2 3 4 ( ⋅ ⋅ ⋅ ) 2022 则有,a^{2023} ≡ a ≡ 1\ (mod\ 2023),其中a = 2^{3^{4^{(···)^{2022}}}} 则有,a2023a1 (mod 2023),其中a=234(⋅⋅⋅)2022
因此得结果为 1 。 因此得结果为1。 因此得结果为1

错误!因为2023压根不是质数
不过我们需要注意的是,如果是按原题来理解:
而且这样做还存在一个问题,你把a看成一个整体考虑问题了,因为你把底数包裹起来了,然后看最顶层的指数,这就相当于 2 3 2 2^{3^2} 232,把 2 3 2^{3} 23看成一个整体了,这很显然与指数计算的方式相违背!

#include <iostream>
#include <cmath>
using namespace std;
int main()
{int f = sqrt(2023);for(int i = 2;i <= f;++i){if(2023 % i == 0){cout << i << " * " << 2023 / i << " = 2023"<<endl;}}return 0;
}

输出:

7 * 289 = 2023
17 * 119 = 2023

3、正解

欧拉定理 : 数论基础

  • 欧拉定理:
    a ϕ ( n ) ≡ 1 ( m o d n ) , g c d ( a , n ) = 1 a^{\phi(n)} ≡\ 1(mod\ n),gcd(a,n)=1 aϕ(n) 1(mod n),gcd(a,n)=1
    b = c ϕ ( n ) + d ,则 a b ≡ a c ϕ ( n ) + d ≡ a d ( m o d n ) b\ =\ c\phi(n)+d,则a^{b} ≡\ a^{c\phi(n)+d}≡\ a^d(mod\ n) b = cϕ(n)+d,则ab acϕ(n)+d ad(mod n)
    因此 a b ≡ a b m o d ϕ ( n ) ( m o d n ) a^{b} ≡\ a^{b\ mod\ \phi(n)}(mod\ n) ab ab mod ϕ(n)(mod n)

因此使用欧拉定理可以“模”去一部分指数。

因此由于本题的底数是 2 2 2 2 2 2的任意次幂都和 2023 2023 2023互质,所以满足欧拉定理。本题最外层可以认为是 x 2023 ≡ x 2023 m o d ϕ ( 2023 ) ( m o d 2023 ) x^{2023}≡\ x^{2023\ mod\ \phi(2023)}(mod\ 2023) x2023 x2023 mod ϕ(2023)(mod 2023)

  • 欧拉函数的计算方式:
    在这里插入图片描述
    其中 p i p_i pi n n n的所有质因数,计算方式应该是 ϕ ( n ) = n × ∏ i = 1 S ( p i − 1 p i ) \phi(n)=n×\prod_{i=1}^{S}(\frac{p_i-1}{p_i}) ϕ(n)=n×i=1S(pipi1)

根据上述不过我们需要注意的是,如果是按原题来理解:
令计算的指数塔是 2 a m o d 2023 2^a\ mod\ 2023 2a mod 2023,则结果为 2 a m o d ϕ ( 2023 ) m o d 2023 2^{a\ mod\ \phi(2023)} mod 2023 2a mod ϕ(2023)mod2023,也就是 2 a m o d 1632 m o d 2023 2^{a\ mod\ 1632}\ mod\ 2023 2a mod 1632 mod 2023,那么接下来需要知道 a m o d 1632 a\ mod\ 1632 a mod 1632的大小,但指数塔 a = 3 b a = 3^b a=3b,此时计算的指数塔是 3 b m o d 1632 3^b\ mod\ 1632 3b mod 1632,接下来 b m o d ϕ ( 1632 ) b\ mod\ \phi(1632) b mod ϕ(1632)

好好好,这样不一定互质了,所以问题太大了。

正确的解法:

#include<bits/stdc++.h>
using namespace std;
#define int long long//欧拉函数 
int get_eular(int n){int phi=n;for(int i=2;i<=n/i;i++){if(n%i)    continue;while(n%i==0)    n/=i;phi=phi/i*(i-1);}if(n>1)    phi=phi/n*(n-1);return phi;
} //快速幂
int quick(int base, int x, int mod){int res=1;while(x){if(x&1)    res=res*base%mod;base=base*base%mod;x>>=1;}return res;
} signed main(){int a=get_eular(2023); int t=2023; for(int i=2022;i>=3;i--){t=quick(i,t,a);};t=quick(2,t,2023);cout<<t<<endl;    return 0;
}

究其原因,我是真没想清楚。

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

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

相关文章

品牌百度百科词条需要什么资料?

品牌百度百科词条是一个品牌的数字化名片&#xff0c;更是品牌历史、文化、实力的全面展现。 作为一个相当拿得出手的镀金名片&#xff0c;品牌百度百科词条创建需要什么资料&#xff0c;今天伯乐网络传媒就来给大家讲解一下。 一、品牌基本信息&#xff1a;品牌身份的明确 品…

kotlinDSL控制的安卓项目导入已存在的模块后sync报错

原因很明显&#xff0c;但是我还找了好久 因为在import时并没有选择groove还是kotlin控制&#xff0c; 所以默认为groovy控制的&#xff0c;然而主项目是由kotlin dsl控制的grale行为。 原因清楚之后&#xff0c;就可以去检查一下&#xff0c;项目里是否包含了settings.gradle和…

掌握JavaScript面向对象编程核心密码:深入解析JavaScript面向对象机制对象基础、原型模式与继承策略全面指南,高效创建高质量、可维护代码

ECMAScript&#xff08;简称ES&#xff0c;是JavaScript的标准规范&#xff09;支持面向对象编程&#xff0c;通过构造函数模拟类&#xff0c;原型链实现继承&#xff0c;以及ES6引入的class语法糖简化面向对象开发。对象可通过构造函数创建&#xff0c;使用原型链共享方法和属…

vue+elementUI实现点击左右箭头切换按钮功能

原本是可以用el-tabs做的,就像下面的样式,但是领导说不行 最后用button和element里面的el-carousel(走马灯)结合了一下 长这样 感觉还不错 可以自己改样式 代码如下: <div class"drawer-carousel"><el-carousel arrow"always" :loop"false…

基于SSM的文物管理系统(含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的文物管理系统拥有俩种角色 管理员&#xff1a;个人信息管理、用户管理、分类管理、文物信息管理、文物外借管理、文物维修管理、留言板管理等 用户&#xff1a;登录注册、分类…

Hybrid Homomorphic Encryption:SE + HE

参考文献&#xff1a; [NLV11] Naehrig M, Lauter K, Vaikuntanathan V. Can homomorphic encryption be practical?[C]//Proceedings of the 3rd ACM workshop on Cloud computing security workshop. 2011: 113-124.[MJS16] Maux P, Journault A, Standaert F X, et al. To…

LLaMA3(Meta)微调SFT实战Meta-Llama-3-8B-Instruct

LlaMA3-SFT LlaMA3-SFT, Meta-Llama-3-8B/Meta-Llama-3-8B-Instruct微调(transformers)/LORA(peft)/推理 项目地址 https://github.com/yongzhuo/LLaMA3-SFT默认数据类型为bfloat6 备注 1. 非常重要: weights要用bfloat16/fp32/tf32(第二版大模型基本共识), 不要用fp16, f…

【目标检测】YOLOv7 网络结构(与 YOLOv4,YOLOv5 对比)

YOLOv7 和 YOLOv4 Neck 与 Head 结构对比 其实 YOLOv7 的网络结构网上很多文章已经讲得很清除了&#xff0c;网络结构图也有非常多的版本可供选择&#xff0c;因为 YOLOv7 和 YOLOv4 是一个团队的作品&#xff0c;所以在网络结构方面&#xff0c; YOLOv7 和 YOLOv4 有很多相似…

和鲸科技出席第五届空间数据智能学术会议,执行总裁殷自强受邀发表主题报告

4月26日&#xff0c;由 ACM SIGSPATIAL 中国分会、ACM SIGMOD 中国分会主办的第五届空间数据智能学术会议&#xff08;SpatialDI 2024&#xff0c;下简称“会议”&#xff09;在南京盛大开幕。本次会议特邀李清泉院士、周成虎院士、丛高教授、谢炯博士、张雪英教授等国内外知名…

【web安全】-- 命令执行漏洞详解

本文将从原理开始介绍命令执行漏洞并附有三个实例来供各位客官学习 文章目录 一、什么是命令执行漏洞二、出现的原因三、有可能存在命令执行漏洞的函数&#xff08;php&#xff09;1、利用一些函数来实现命令执行2、直接执行系统命令的函数 四、命令拼接符号1、Windows2、linux…

【06016传感器原理与应用】第4章 磁敏传感器 期末复习自考复习

第4章 磁敏传感器 通常把能讲磁学量信号转换成电信号的器材或装置称为磁敏传感器 一、学习目的与要求 通过本章的学习&#xff0c;熟悉并掌握磁敏传感器的工作原理和硬件组成结构。重点掌握半导体的霍尔器件和霍尔集成电路、磁敏二极管、三极管等的工作机理及其应用电路&…

【分享】如何将word格式文档转化为PDF格式

在日常的办公和学习中&#xff0c;我们经常需要将Word文档转换为PDF格式。PDF作为一种通用的文件格式&#xff0c;具有跨平台、易读性高等优点&#xff0c;因此在许多场合下都更为适用。那么&#xff0c;如何实现Word转PDF呢&#xff1f;本文将介绍几种常用的方法&#xff0c;帮…

border-image-slice详细说明

上一篇文章我们介绍了 border-image的用法&#xff0c;其中border-image-source、border-image-width、 border-image-outset都比较简单好理解&#xff0c;这边文章我们重点学一下border-image-slice 属性&#xff0c;它用于定义边框图像如何被切割并应用到元素的边框上。这个属…

vue3 安装-使用之第一篇

首先需要node版本高于V16.14.1 安装 执行 npm create vitelatest 具体选择按照自己实际需要的来 Project name:项目名称 Select a framework:选择用哪种框架 &#xff08;我选择vue&#xff09; Select a variant: 选择用JS还是TS&#xff08;我选择JS&#xff09;找到项目&…

架设WebSocket的最后一环,如何设置好nginx反向代理

WebScoket都已经完工快一个月&#xff0c;经过一段时间的测试&#xff0c;公司还是准备把服务器换到鹅厂&#xff0c;用EO来解决CDN内容分发和DDOS防护问题&#xff0c;由于EO并不支持URL 路径转发&#xff0c;只支持转发到一个站点的80或则443端口&#xff0c;如果想做路径分发…

前端框架技术调研

目前程序员使用前端框架最多的是哪一个&#xff1f;

BiLSTM-KDE的双向长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)

BiLSTM-KDE的双向长短期记忆神经网络结合核密度估计多变量回归区间预测&#xff08;Matlab&#xff09; 目录 BiLSTM-KDE的双向长短期记忆神经网络结合核密度估计多变量回归区间预测&#xff08;Matlab&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.BiLS…

【JavaWeb】Day61.SpringBootWeb案例——配置文件

配置文件 参数配置化 在我们之前编写的程序中进行文件上传时&#xff0c;需要调用AliOSSUtils工具类&#xff0c;将文件上传到阿里云OSS对象存储服务当中。而在调用工具类进行文件上传时&#xff0c;需要一些参数&#xff1a; - endpoint //阿里云OSS域名 - accessKey…

Ubuntu 24.04安装搜狗输入法-解决闪屏问题

问题描述 在Ubuntu 24.04 LTS系统中按照官方安装指导《Ubuntu20.04安装搜狗输入法步骤》安装搜狗输入法后&#xff1a; 会出现屏幕闪烁&#xff0c;无法正常使用的问题&#xff1b;系统搜索框和gnome-text-editor无法使用搜狗输入法&#xff1b; 原因分析 闪屏可能是Ubuntu…

scikit-learn:Python中的机器学习-1

简介&#xff1a;问题设置 什么是机器学习&#xff1f; 机器学习是关于构建具有可调参数的程序&#xff0c;这些参数可以自动调整&#xff0c;以便通过适应先前看到的数据来改善其行为。机器学习可以被认为是人工智能的一个子领域&#xff0c;因为这些算法可以被视为构建模块…