同余式,乘法逆元,费马小定理

news2024/11/17 17:37:10

同余式

余式是 数论 的基本概念之一,设m是给定的一个正整数,a、b是整数,若满足m| (a-b),则称a与b对模m 同余 ,记为a≡b (mod m),或记为a≡b (m)。 这个式子称为模m的同余式,若m∤ (a-b),则称a、b对模m不同余

同余概念又常表达为: 1.a=b+km (k∈Z); 2.a和b被m除时有相同的 余数 

乘法逆元

乘法逆元的定义:在数学领域,对于群G中的任意一个元素a,总存在G中的一个唯一元素a',使得a×a'=a'×a=e,其中e是群G的单位元。这个元素a'被称为a的乘法逆元。在模运算中,如果ab≡1(mod m),那么b就被称为a关于模m的乘法逆元

费马小定理

推导

由费马小定理+乘法逆元可知,a^(mod-2)就是a取模mod的乘法逆元 

例题

 

题意:就是说给你一个数,然后问你这个数n这个数被连接n次,然后取模 998244353,所得到的结果是什么,例如样例这个5,5被连接五次就是55555,取模998244353还是55555,所以要输55555

思路,我们发现在连接的过程中,每一项都是后一项的w倍(w是给出的n的倍数,有一位,w就要乘上10,比如说上面这个样例的w就是10)

最终结果是sum=n+w^1*n+w^2*n+......+w^n-1*n;

我们发现每一项都是等比数列,我们可以用等比数列的公式计算出最终结果为n*(w^n-1)/w-1

由取模公式可知,除法取模不能直接取模,我们要借助费马小定理进行逆元,然后得到的

w-1的乘法逆元为(w-1)^(mod-2)

最终结果就变成了n*(w^n-1)*(w-1)^(mod-2),然后在计算过程中对每一步都进行取余数就OK了

当然了,计算这种指数也有方法,用快速幂算法logN的数据绝对不会爆

#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
int w=1;//统计位数
int mod=998244353; 
int sum=0;
//快速幂公式
int fast(int a, int b) 
{
    long long result = 1;
    long long base = a;
    while (b > 0) 
	{
        if (b % 2 == 1) 
		{
            result = (result * base) % mod;
        }
        base = (base * base) % mod;
        b /= 2;
    }
    return result;
}

signed main()
{
	cin>>n;
	int flag=n;
	while(flag)
	{
		flag/=10;
		w*=10;
		w%=mod;
	}
	sum=((n%mod*(fast(w,n)-1)%mod)%mod*fast(w-1,mod-2)%mod)%mod;
	cout<<sum;
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习-支持向量机

目录 一支持向量机 1.支持向量机SVM 2构建svm目标函数 3.拉格朗日乘法&#xff0c;kkt条件 拉格朗日乘法&#xff1a; kkt条件 对偶问题 4.最小化SVM目标函数 kkt条件&#xff1a; 对偶转换&#xff1a; 5软间隔及优化 优化svm目标函数 构造拉格朗日函数 对偶转换关系…

orbslam2代码解读(4):loopclosing回环检测线程

书接上回&#xff0c;介绍完了局部建图线程&#xff0c;局部建图线程在进行局部BA之后&#xff0c;也会将新的关键帧mpLoopCloser放进回环线程的mlpLoopKeyFrameQueue容器中。所以这时候回环检测线程就根据这个新的关键帧来进行回环检测的操作。 回环检测的主要程序 // 线程主…

177.二叉树:从前序与中序遍历序列构造二叉树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

176.二叉树:从中序与后序遍历序列构造二叉树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

OpenGauss常操作

OpenGauss官网已经有很详细的说明了,但是对于新手而言还有一些需要注意的地方; 安装 yum一键安装; yum -y install libaio-devel yum -y install readline-devel yum -y install libnsl 单独创建用户和组; groupadd dbgroup useradd -g dbgroup omm passwd omm 取消打开文…

DriveWorld:一个预训练模型大幅提升检测+地图+跟踪+运动预测+Occ多个任务性能

1. 写在前面 以视觉为中心的自动驾驶技术近期因其较低的成本而引起了广泛关注&#xff0c;而预训练对于提取通用表示至关重要。然而&#xff0c;当前的以视觉为中心的预训练通常依赖于2D或3D预训练任务&#xff0c;忽视了自动驾驶作为4D场景理解任务的时序特征。这里通过引入一…

中国最受欢迎起名大师,国内顶级的姓名学大师是谁

唐王古镇龙泉边&#xff0c; 端午邀约凤凰山&#xff0c; 举国共享康宁日&#xff0c; 泉星福瑞天下安… 颜廷利敬献---福祐安康 中国最受欢迎起名大师&#xff0c;国内顶级的姓名学大师是谁&#xff1f;在齐鲁的心脏&#xff0c;济南的历史悠长的唐王古镇边&#xff0c;龙泉大…

香港优才是不是智商税?搞懂香港身份不后悔

很多中产家庭和明星通过不同方式获得香港身份&#xff0c;以享受其诸多优势&#xff0c;如子女教育和事业发展。明星如孙俪/邓超夫妇、汤唯、朗朗、章子怡和黄晓明等都获得了香港身份。 一、香港身份「优才计划」是什么&#xff1f;是否值得追求&#xff1f; 香港身份&#xf…

知识管理与集体创新——从企业到新型研发机构的实践与思考︱PMO大会

全国PMO专业人士年度盛会 鹏城实验室人力资源处人才发展主管&#xff0c;原华为供应链管理部知识管理负责人王万翎女士受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“知识管理与集体创新——从企业到新型研发机构的实践与思考”。大会将于6月29-…

springboot在线雅思学习平台 -计算机毕业设计源码44566

目 录 摘要 1 绪论 1.1系统背景 1.2课题背景及目的 2 1.3系统开发技术的特色 3 1.4 springboot框架介绍 3 1.5论文结构与章节安排 4 2 在线雅思学习平台系统分析 5 2.1 可行性分析 5 2.2 系统流程分析 5 2.2.1数据增加流程 5 2.2.2数据修改流程 6 2.2.3数据删除流程 6 2.3 …

Autoware 定位之EKF 滤波定位(四)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务&#xff0c;并且需要GPU资源&#xff0c;可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收费每卡2.6元&#xff0c;月卡只需要1.7元每小时&…

网络抓取的最佳用户代理 2024 | 避免在抓取时被禁止使用 UA

你是经常进行网页抓取的人吗&#xff1f;你对你的隐私非常小心吗&#xff1f;那么你一定多次听说过“用户代理”。你知道什么是用户代理吗&#xff1f;它如何影响我们的在线生活呢&#xff1f; 请开始阅读&#xff0c;你会对这篇博客中的一切感兴趣&#xff01; 什么是用户代…

经典文献阅读之--FlashOcc(快速且内存高效的占用预测模块)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务&#xff0c;并且需要GPU资源&#xff0c;可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收费每卡2.6元&#xff0c;月卡只需要1.7元每小时&…

调用华为API实现语音合成

目录 1.作者介绍2.华为云语音合成2.1 语音合成介绍2.2 华为语音合成服务2.3 应用场景 3. 实验过程以及结果3.1 获取API密钥3.2 调用语音合成算法API3.3 实验代码3.4 运行结果 1.作者介绍 袁斌&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2023级研究生 研究…

哥斯拉v4.01webshell实验

1、工具使用 生成有效载荷 选择载荷和加密器 放到对应web目录下&#xff0c;然后就可以添加管理 2 、JAVA_AES_RAW-JSPX/JSP 流量 第一组&#xff1a;请求34880&#xff0c;响应0 第二组&#xff1a;请求48&#xff0c;响应32 第三组&#xff1a;请求64&#xff0c;响应2576…

Navicat访问宝塔中的MySQL

开放数据库权限&#xff1a; 开放3306端口&#xff1a; 连接数据库&#xff1a; 对应好用户名与名称&#xff0c;要不会报错1024&#xff1a;

【每日一题】错误的集合

错误的集合 ✨审题&#xff1a;在一个1-n的数组中&#xff0c;会有一个元素重复&#xff0c;一个元素丢失&#xff1b;&#x1f449;目标;找到重复的元素和丢失的元素并放入一个数组中返还回去 ✨有没有想到单身狗问题的进阶版那个思路&#xff0c;找2个单身狗&#xff0c;一个…

升级和维护老旧LabVIEW程序

在升级老旧LabVIEW程序至64位环境时&#xff0c;需要解决兼容性、性能和稳定性等问题。本文从软件升级、硬件兼容性、程序优化、故障修复等多个角度详细分析。具体包括64位迁移注意事项、修复页面跳转崩溃、解决关闭程序后残留进程的问题&#xff0c;确保程序在新环境中的平稳运…

C++学习日记 | Lecture 7 函数进阶

资料来源&#xff1a;南科大 余仕琪 C/C Program Design LINK&#xff1a; CPP/week07 at main ShiqiYu/CPP GitHub7.1-default-arguments_哔哩哔哩_bilibili7.2-function-overloading_哔哩哔哩_bilibili7.3-function-templates_哔哩哔哩_bilibili7.4-function-pointers-an…

【课程总结】Day7:深度学习概述

前言 本篇文章&#xff0c;我们将通过示例来逐步学习理解导数、求函数最小值、深度学习的本质、以及使用numpy和pytorch实操深度学习训练过程。 线性回归 线性回归内容回顾 在《【课程总结】Day5(下)&#xff1a;PCA降维、SVD分解、聚类算法和集成学习》中&#xff0c;我们…