辗转相除法,秦九韶算法高考考吗

辗转相除法,秦九韶算法高考考吗,第1张

辗转相除法,

又名欧几里德算法(euclidean

algorithm)乃求两个正整数之最大公因子的算法。它是已知最古老的算法,

其可追溯至前300年。它首次出现于欧几里德的《几何原本》(第vii卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。它并不需要把二数作质因子分解。

更相减损术,又称"等值算法"编纂于秦,书成于汉代。

“关于约分问题,实质是如何求分子,分母最大公约数的问题<九章算术>中介绍了这个方法,叫做”更相减损术”,数学家刘徽对此法进行了明确的注解和说明,是一个实用的数学方法,中学生应该掌握它

例1今有九十一分之四十九,问约之得几何

我们用(91,49)表示91和49的最大公约数按刘徽所说,分别列出分子,分母,”以少减多,更相减损,求其等也,以等数约之,等数约之,即除也,其所以相减者皆等数之重叠,故以等数约之”列式如下:

91

49

1

49

42

1

42

7

5

35

7

这里得到的7就叫做”等数”,91和49都是这等数的重叠(即倍数),故7为其公约数而7和7的最大公约数就是7,(7,7)=7,所以

(91,49)=(42,7)=(7,7)=7

更相减损术在现代仍有理论意义和实用价值吴文俊教授说:”在我国,求两数最大公约数即等数,用更相减损之术,将两数以小减大累减以得之,如求24与15的等数,其逐步减损如下表所示:

(24,15)->(9,15)->(9,6)->(3,6)->(3,3)

每次所得两数与前两数有相同的等数,两数之值逐步减少,因而到有限步后必然获得相同的两数,也即所求的等数,其理由不证自明

这个寓理于算不证自明的方法,是完全构造性与机械化的尽可以据此编成程序上机实施”吴先生的话不仅说明了此法的理论价值,而且指明学习和研究的方向

更相减损法很有研究价值,它奠定了我国渐近分数,不定分析,同余式论和大衍求一术的理论基础望能仔细品味

秦九韶是南宋数学家,关于秦九韶算法,直到今天,这种算法仍是多项式求值比较先进的算法

大意是这样的。

从高阶到低阶的系数分别为2,-1,1,5

你就是先弄一下

2x,记为a__________________________就是系数的最高项

然后(a-1)x,再算出来给a ___________这个-1就是第二个系数

然后(a+1)x,再第出来给a____________这个a就是第三个系数

最后a+5

最后算出来的就是结果。你可以仔细地跟几步,就知道怎么回事了。

这种算法可以减少乘法的次数。

高中数学合集百度网盘下载

链接:>pwd=1234

提取码:1234

简介:高中数学优质资料下载,包括:试题试卷、课件、教材、视频、各大名师网校合集。

 

#include <iterator>

#include <iostream>

#include <string>

#include <sstream>

#include <vector>

#include <utility>

#include <exception>

template<typename ValueType = long long >

class PolyEval {

public:

typedef ValueType type;

typedef std::vector<  type  > PolyType;

protected:

PolyType polys;

int polySize = 0;

public:

~PolyEval() { }

PolyEval() { }

template<typename U>

decltype(auto) eval( U && u ) const{

typedef decltype( type(0)+u ) EvalType ;

if (polysempty()) { throw std::exception("empty"); }

EvalType ans = 0;

const EvalType x = u;

if (polyssize() == 1) { return EvalType(polys[0]); }

auto b = polyscrbegin();

auto e = polyscrend();

for (;b!=e;++b) {

ans = x;

ans += b;

}

return ans;

}

friend std::istream & operator>>(std::istream & i, PolyEval & t) {

tpolysclear();

{

std::string line;

std::getline(i, line);

std::stringstream ss( std::move(line) );

ss >> tpolySize;

if (tpolySize <= 0) {

isetstate(ibadbit);

return i;

}

{ tpolysassign(tpolySize, 0); }

}

{

int count_ = 1;

std::pair< type,  int> item;

std::string line;

while ( std::getline( i,line ) ) {

std::stringstream ss( std::move(line) );

ss >> itemfirst;

ss >> itemsecond;

if ( itemsecond <0 || itemsecond >= tpolySize) {

tpolysclear();

return i;

}

tpolys[ itemsecond ] = itemfirst;

if (count_ < tpolySize) {

++count_;

}

else {

break;

}

}

}

return i;

}

};

int main( int ,char  ) {

std::vector<int> s;

double x = 0;

PolyEval< double > pe;

std::cin >> pe ;

std::cout << std::endl;

std::cin >> x;

auto ans = peeval(x);

std::cout << ans << std::endl ;

#ifdef  _MSC_VER

system("pause");

#endif //  _MSC_VER

return 0;

}

以上就是关于辗转相除法,秦九韶算法高考考吗全部的内容,包括:辗转相除法,秦九韶算法高考考吗、用程序框图表示用秦九韶算法求X=3时,2X^3-X^2+X+5的植的算法过程、高中数学人教版a版必修三有什么内容(目录)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9476121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存