扩展欧几里得算法 有限域上多项式求逆

本文深入探讨了扩展欧几里得算法在有限域中的应用,详细阐述如何利用该算法解决有限域上多项式的逆问题。通过实例解析算法过程,帮助读者理解这一在数论和密码学中重要的数学工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今年网络安全的一个小作业,简单用C++实现了下 有些粗糙 先放这儿吧 ^_^

 

算法描述 考完试再附上
ExEuclid简单实现/*
* 文件名称:myecu.cpp
* 摘 要:Extend Euclid Algorithm
* 作者:ld
* 完成日期:25th June,2010
*/

#include "stdafx.h"
#include 
#include 
#include 
#include 
#include 

using namespace std;

typedef struct polyNode//多项式节点项
{
	int coef;
	int power;
}polyNode;

void CreatePoly(vector&poly);//构造多项式
void SortPolyByPower(vector&poly);//对多项式排序,按照降幂
vector PolyAdd(vectorp1,vectorp2);//多项式加法
vector PolySub(vectorp1,vectorp2);//多项式减法
vector PolyMultiply(vectorp1,vectorp2);//多项式乘法
vector PolyDiv(vector&p1,vectorp2);//多项式除法
vector Eculid(vector&p1,vector&p2);//扩展欧几里得算法


void SortPolyByPower(vector&poly)//OK
{
	vector::iterator iter,tmpIter;
	iter = poly.begin();
	for (; iter != poly.end(); iter++)//按照幂数高低排序
	{
		tmpIter = iter + 1;
		int maxPower = (*iter).power;
		for (; tmpIter != poly.end(); tmpIter++)
		{
			if ((*tmpIter).power > (*iter).power)
			{
				iter_swap(iter,tmpIter);
			}
		}	
	}

}

void CreatePoly(vector&poly)//OK
{
	static int
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值