❶ 用二分法設計求出a的N次冪
#include <stdio.h>
#include <stdlib.h>
double pow(double a,int N)
{
double ans = 1;
int i;
for(i = 30;i >= 0 && !(N & (1 << i));i--);
for(;i >= 0;i--)
{
ans *= ans;
if(N & (1 << i))
ans *= a;
}
return ans;
}
int main()
{
int N;
double a;
while(scanf("%lf%d",&a,&N) == 2)
printf("%lf\n",pow(a,N));
system("PAUSE");
return 0;
}
❷ 有誰會編程
用C的話,應該是可以實現的!你去找找貪婪演算法吧,如果不懂就去查查書吧!
❸ 遞歸與分治求a的n次方
你想問什麼呢?你的演算法就是遞歸+分治求a的n次方的方法呀。f()函數里有調用了f()函數,就是遞歸,a的n次方被分解成a的n/2次方和a的n-n/2次方的兩個小問題,就是分治。你想問什麼問題呢?
❹ 求助貼 使用Java程序進行二分法計算a的n次冪
double pow(double a, int n) {
if (n == 0) {
return 1.0;
}
double b = pow(a, n / 2);
b *= b;
if (n % 2 == 1) {
b *= a;
}
return b;
}
❺ 計算方法裡面矩陣A的n次方怎麼算
一般有以下幾種方法:
計算A^2,A^3 找規律,然後利用歸納法證明。
2.若r(A)=1,則A=αβ^T,A^n=(β^Tα)^(n-1)A
注:β^Tα =α^Tβ = tr(αβ^T)
3.分拆法:A=B+C,BC=CB,用二項式公式展開
適用於 B^n 易計算,C的低次冪為零:C^2 或 C^3 = 0.
4.用對角化 A=P^-1diagP
A^n = P^-1diag^nP
5.若r(A)=1則A能分解為一行與一列的兩個矩陣的乘積,用結合律就可以很方便的求出A^n
6.若A能分解成2個矩陣的和A = B + C而且BC = CB則A^n = (B+C)^n可用二項式定理展開,當然B,C之中有一個的方密要盡快為0
7.當A有n個線性無關的特徵向量時,可用相似對角化來求A^n
8.通過試算A^2 A^3,如有某種規律可用數學歸納法
拓展資料
在數學中,矩陣(Matrix)是一個按照長方陣列排列的復數或實數集合 ,最早來自於方程組的系數及常數所構成的方陣。這一概念由19世紀英國數學家凱利首先提出。
矩陣是高等代數學中的常見工具,也常見於統計分析等應用數學學科中。 在物理學中,矩陣於電路學、力學、光學和量子物理中都有應用;計算機科學中,三維動畫製作也需要用到矩陣。 矩陣的運算是數值分析領域的重要問題。將矩陣分解為簡單矩陣的組合可以在理論和實際應用上簡化矩陣的運算。對一些應用廣泛而形式特殊的矩陣,例如稀疏矩陣和准對角矩陣,有特定的快速運算演算法。關於矩陣相關理論的發展和應用,請參考矩陣理論。在天體物理、量子力學等領域,也會出現無窮維的矩陣,是矩陣的一種推廣。
❻ 分治法求x的n次方的JAVA程序
計算X的n次方
public static int power(int x, int n)
{
int y = 0;
if (n == 0)
y = 1;
else
{
y = power(x , n/2); //遞歸
y = y * y;
if (y % 2 == 1)
y = y * x;
}
return y;
}
❼ 應用從左到右的二進制制冪演算法計算a的n次冪
你說了是二進制的,那a只有1和0的可能了,我通常用的方法是把它化為十進制再n次冪,但有時也非常麻煩,不過你可試下用計算器來解決,因為就算是十進制的n次冪也有時候是非常難算出來的。
❽ 利用分治演算法求解、
對於這種已知不合格硬幣比正常銀幣偏重(或偏輕)的問題,可以用分治法。 以下演算法可以用數學歸納法證明:假設有3枚硬幣,則稱一次,如果a邊重則是a,……,平衡則是c。同理如果有N塊硬幣,我們可以把它分成三堆,稱一次後,這樣問題規模縮小至n/3。重復以上操作,直至稱出。需要次數為log3 n。這是典型的分治法,如果想了解更多,可參考《演算法導論》 謝謝採納我的答案