A. 大數相乘 快速演算法
給你一個吧
速度還可以
自己讀下代碼
/**************************************
演算法復雜度為:O(longhta*longthb)
longtha為乘數的位數
longhtb為被乘數的位數
***************************************/
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define LEN 1000
void mult(char [],char [],char []);
main()
{
char op1[LEN],op2[LEN],op3[LEN*2-1];
scanf("%s%s",op1,op2);
mult(op1,op2,op3);
printf("%s\n",op3);
getch();
return 0;
}
void reverse(char a[])
{
int longth=strlen(a);
int i;
for(i=0;i<longth/2;i++){
char t;
t=a[i];
a[i]=a[longth-i-1];
a[longth-i-1]=t;
}
}
void mult(char op1[LEN],char op2[LEN],char ans[LEN*2-1])
{
char top1[LEN];
char top2[LEN];
strcpy(top1,op1);
strcpy(top2,op2);
reverse(top1);
reverse(top2);
int k;
int top1s=strlen(top1);
int top2s=strlen(top2);
for(k=0;k<top1s+top2s;k++){
ans[k]='0';
}
int i,j;
int jw,ys;
int longth;
for(j=0;j<top2s;j++){
jw=0;
for(i=0;i<top1s;i++){
ys=((top1[i]-'0')*(top2[j]-'0')+jw+ans[i+j]-'0')%10;
jw=((top1[i]-'0')*(top2[j]-'0')+jw+ans[i+j]-'0')/10;
ans[i+j]=ys+'0';
}
if(jw>0){
ans[i+j]=jw+'0';
}
}
longth=i+j-1;
if(jw>0)
ans[longth++]=jw+'0';
ans[longth]='\0';
reverse(ans);
}
B. 怎麼快速計算乘法
十幾乘十幾:
口訣:頭乘頭,尾加尾,尾乘尾。
例:12×14=?
解: 1×1=1
2+4=6
2×4=8
12×14=168
註:個位相乘,不夠兩位數要用0佔位
例:16*17=?
1*1=1
6+7=13 滿十進1
6*7=42
16*17=242
C. 怎麼算乘法
十幾乘十幾:
口訣:頭乘頭,尾加尾,尾乘尾.
例:12×14=?
解: 1×1=1
2+4=6
2×4=8
12×14=168
註:個位相乘,不夠兩位數要用0佔位
例:16*17=?
1*1=1
6+7=13 滿十進1
6*7=42
16*17=242
D. 什麼叫乘法
乘法(multiplication),是指將相同的數加起來的快捷方式。其運算結果稱為積,「x」是乘號。從哲學角度解析,乘法是加法的量變導致的質變結果。整數(包括負數),有理數(分數)和實數的乘法由這個基本定義的系統泛化來定義。
乘法是算術中最簡單的運算之一。 最早來自於整數的乘法運算。簡單的是正整數的乘法,即幾個相同的數連加的簡便演算法,用連加的次數來乘被加數。例如2連加5次,就用5來乘。
中國使用「九九口訣」的時間較早。在《荀子》、《管子》、《淮南子》、《戰國策》等書中就能找到「三九二十七」、「六八四十八」、「四八三十二」、「六六三十六」等句子。由此可見,早在「春秋」、「戰國」的時候,《九九乘法歌訣》就已經開始流行了。
整數的乘法運算滿足:交換律,結合律, 分配律,消去律。隨著數學的發展, 運算的對象從整數發展為更一般群。群中的乘法運算不再要求滿足交換律。 最有名的非交換例子,就是哈密爾頓發現的四元數群。 但是結合律仍然滿足。
將數字乘以多於幾位小數位是繁瑣而且容易出錯的。發明了通用對數以簡化這種計算。幻燈片規則允許數字快速乘以大約三個准確度的地方。從二十世紀初開始,機械計算器,如Marchant,自動倍增多達10位數。現代電子計算機和計算器大大減少了用手倍增的需要。
E. 分子式乘法如何計算
分數乘法的運演算法則:
分數乘整數時,用分數的分子和整數相乘的積做分子,分母不變。(要約成最簡分數)分數乘分數,用分子相乘的積做分子,分母相乘的積做分母,能約分的要約成最簡分數(在計算中約分)。但分母不能為零。
分數乘法的意義:
分數乘整數的意義與整數乘法的意義相同,就是求幾個相同加數的和的簡便運算。一個數與分數相乘,可以看作是求這個數的幾分之幾是多少。
(5)乘法演算法擴展閱讀:
分數除法法則:分數甲除以分數乙就是分數甲乘以分數乙的倒數。
如:
分數除法的意義:與整數除法的意義相同,都是已知兩個因數的積與其中一個因數求另一個因數。被除數分子乘除數分母,被除數分母乘除數分子。
分數除法應用題:先找單位1。單位1已知,求部分量或對應分率用乘法,求單位1用除法。
乙數的幾分之幾是甲數,求乙數,就用甲數除以幾分之幾。
F. 乘法演算法
有a,b兩個正整數,a除以2,b乘以2;一直除到a=1,把所有當a為奇數時,b的結果相加,其加得的結果記為x,求證x=a*b,(當a為小數時保留整數)
證明:
開始時,A1分兩種情況,要麼是偶數,要麼是奇數,
假定為偶數記作A1=2*N1,B1=某一整數M,則
經過一次操作後變為A2=N1,B2=2M,
A1=2*N1,B1=M接著往下操作和從A1'=N1,B1'=2M開始操作最後要證明的結果是相同的,都是要證明x=A1*B1或者x=A1'*B1',顯然A1*B1=A1'*B1',於是我們想的再簡單一些,如果經過一次操作之後發現A仍然是偶數,那麼我們雖然進行了操作但是不記錄這次操作,直接在對A除以2,對B乘以2,直到A為奇數再進行記錄,
換句話說,如果A1不是奇數,我們可以對A1進行多次操作後直到該數字變成奇數,然後將這個數字記作A1,不影響要證明的結論.
對應著
例子
{A1=290,B1=4}
{A2=145,B2=8}
{A3=72,B3=16}
{A4=36,B4=32}
{A5=18,B5=64}
{A6=9,B6=128}
{A7=4,B7=256}
{A8=2,B8=512}
{A9=1,B9=1024}
要證明{8, 128, 1024}三數之和等於290×4=1160
就可以記作
{{A1=145,B1=8}, {A2=9, B2=128}, {A3=1, B3=1024}}
就相當於證明{8, 128, 1024}三數之和等於145×8=1160
A1*B1=(2A2+1)*B1=2A2*B1+B1=A2*(2B1)+B1=A2*B2+B1,
同理可得
A2*B2=A3*B3+B2,
依次類推:假定共有n項,則An=1,最後一項個等式為
A[n-1]*B[n-1]=An*Bn+B[n-1]=Bn+B[n-1],
然後將n-1個等式左右分別相加,交叉消去相同項得
A1*B1=B1+B2+B3...+Bn
G. 乘法怎樣計算
隨意兩個兩位數,比如:23*45=公式是:(外*外+內*內)*10+尾*尾+頭*頭*100外乘外+內乘內:外兩個數是2和5,內兩個數是3和4則(外*外+內*內)*10=(2*5+3*4)*10=220尾乘尾:尾部兩個數是3和5則尾*尾=3*5=15則(外*外+內*內)*10+尾*尾:就得到:220+15=235
H. 乘法的三種運算定律
乘法的運算定律,有交換律,結合律和分配律。
一、定義:乘法運算定律,也叫乘法的性質,有交換律,結合律, 分配律,應用這些運算定律,可以使部分乘法題計算簡便。
1、乘法交換律:
乘法交換律是兩個數相乘,交換因數的位置,它們的積不變。
a×b=b×a
則稱:交換律。
2、乘法結合律:
三個數相乘,先把前兩個數相乘,再和另外一個數相乘,或先把後兩個數相乘,再和另外一個數相乘,積不變。主要公式為a×b×c=a×(b×c), ,它可以改變乘法運算當中的運算順序 。在日常生活中乘法結合律運用的不是很多,主要是在一些較復雜的運算中起到簡便的作用。
3、乘法分配律:
兩個數的和同一個數相乘,等於把兩個加數分別同這個數相乘,再把兩個積加起來,和不變。字母表達是:a×(b+c) =a×b+a×c
①、變式一:a×(b-c) =a×b-a×c
②、變式二:a×b+a=a×(b+1)