1樓:左腳剎車右腳油門
我來提供乙個演算法,這個演算法只要學過初中數學就可以。
我們都知道(a+b+c)=a+2ab+b+2ac+2bc+c=a+(2a+b)b+(2a+2b+c)c,用這個公式可以求得乙個數的0.5次方,具體方法如下:
給出乙個數:57460,設(a+b+c)≈57460,a/100、b/10、c分別為57460的0.5次方的百位數、十位數和個位數。
易知a<57460,可得a為200,然後可知(2a+b)*b<17460,取b為40的話,440×40=17600,比17460大,故b只能為30;
然後求c得值,(2a+2b+c)c<4560,可求得c為9。
最後驗算一下:239.7=57456.09,239.8=57504
2樓:航媽天下第一
其實有乙個簡單的方法。
將a的0.5次方設為b,列得:
a*0.5次方=b
兩邊同時平方
(a*0.5次方)=b
根據乘方互乘的規律,得:
a=ba=±√b
像題目說的5的0.5次方就是±√5
3樓:王者
思路基於(1+x)^a展開,鑑於1的鄰域很小,需要先進行改造一番
容易得到(a+x)=(1+x/a)*a,約為(1+x/2a)*a
先找這個數附近的平方數反覆迭代,至於精度看你迭代次數和選的鄰域
4樓:gxjtxdy20081202
這種問題直接上C++
#include
using
namespace
std;
doublea,
ans;
intmain
()碼風不喜勿噴
5樓:Zijie He
有開若干次方的準確且可靠的演算法
'store the result of yroot(me, that) in me, and the remainder will be the me - (me ^ (yroot(me, that)))
Private Sub extract(ByVal that As big_uint, ByRef remainder As big_uint, ByRef divide_zero_error As Boolean)
If Not that Is Nothing Then
If that.is_zero() ThenIf is_one() Thendivide_zero_error = Falseremainder = zeroElsedivide_zero_error = TrueEnd If
Elsedivide_zero_error = FalseIf that.is_one() Thenremainder = New big_uintElseDim r As big_uint = Nothingr = New big_uint(bit_countr.divide(that, remainderDim l As UInt64 = 0If remainder.
is_zero() Thenl = r.as_uint64Elsel = r.as_uint64() + uint64_1End Ifr.
set_zeror.set_bit_count(lFor i As UInt64 = 0 To l - uint64_1r.setrbit(l - i - uint64_1, TrueIf r ^ that > Me Thenr.
setrbit(l - i - uint64_1, FalseEnd Ifassert(Not isdebugmode() OrElse (r ^ that <= MeNextremainder = New big_uint(Me - r ^ thatassert(replace_by(rEnd If
End If
End If
End Sub
大概是找到乙個可能的最大值,這個值的次方數超過原數。注意到100×100×100=1000000,所以這個最大值就是原數的位數除以次方數再加一。然後從最高位開始依次將每一位換為1,嘗試次方,如果大於原數,則換回為0,直到最後一位。
如此得到的結果就是開放的結果,並且可以得到餘數。
6樓:瘋狗十二
同底數冪相乘,底數不變指數相加。
某個數的一次方就是它本身,但是一次方也可以看做兩個0.5次方相加,兩個0.5次方相加就是同底數冪相乘底數不變指數相加,兩個同底數冪相乘,得出了某個數的一次方,那麼同底數冪其實就是某個數的平方根。
7樓:涼笙墨染
以下是我個人的一些理解,如果有不對希望指出:
取a≥0,則根據公式(a^n)^m=a^mn 可以推出(a^)2=a=a
兩邊取算數平方根得:a=√a
有人告訴我怎麼打出規範的數學符號嗎,這麼寫真的不舒服┐(─__─)┌
8樓:陳牧零青
零點五次方的數,要求的話,看成二分之一,這個數直接加根號就好了。
下面那個數的m分之n次方,就是上面我說的加根號的原因,要求其他分數就是帶成m分之n就行了。
至於原理,,,,我也不知道,我們老師說的,會用就行。
9樓:三水之陽
很簡單,只要你知道完全平方公式就可以算,而且可以心算,只要有效數字不是太多就行。舉個例子1234。
已知30*30=900,(1234-900)÷60=5╲3434-5*5=9,9÷70=0.1╲2,2-0.1*0.
1=1.991.99÷70.
2=0.02╲0.586,0.
586-0.02*0.02=0.
5856,平方項產生的相對誤差太小,所以從此可以直接忽略。直接可以得到35.121836,如果你還要繼續精確的話繼續算下去就完事了。
心算很簡單,不需要任何複雜的技巧。
10樓:楊恂懌
我數了數
截至2020.01.15 20:46,共有64個答案其中有無數嘲諷;忽略不計,其餘的求解方法有牛頓迭代法
巧妙運用的牛頓迭代法
泰勒展開
函式展開成冪級數
我不知道算什麼方法的手算
11樓:渣渣
來乙個有點低齡的計算方法吧
以2020為例
1、找到乙個平方之後很接近2020的整數,這裡找45*45=2025;
2、由於實際上答案略小於45,設實際答案為45-x,則有(45-x)^2=2020;
3、展開一下得到 x^2 + 2025 - 90x = 2020;
4、由於x^2相比之下很小,捨去該項,方程變成 90x=5,解得x=0.05555,則答案為45-x=44.9444;
5、平方試試,發現大概是2020.0031,說明精度還是可以的
當然,學過數值分析的同學可能一眼就能看出,這實際上就是選了個初值進行了一次牛頓迭代(逃
12樓:楊樹森
如果是問解析解,那麼
0\right)" eeimg="1"/>已經是問題的答案。
如果是問數值解,那麼就是求解方程
0\right)." eeimg="1"/>這是乙個比較簡單的方程,因此可以直接採用 法求解。
所謂 法,就是為了求方程 的數值解,其中 是在區間 上有零點的可微函式,並且 在區間 上單調且不變號,構造迭代函式
令 然後求數列 的前若干項。
當 0\right)" eeimg="1"/>時,函式 在區間 滿足牛頓法所需的條件,於是構造迭代函式
令 求數列 的前若干項,就得到方程 在區間 上的解。
例如用 求 精確到 的數值結果,過程如下:於是
13樓:情非得已
我會徒手暴力開根號。
以我寫這篇回答的時間***為例。
首先,將數字從個位數往前兩位兩位劃分。如圖中20 20 01 08的樣子。
開根號時,先從前面開始估計近似值。比如20介於4的平方和5的平方之間。就估算出第一位數字是4。此時4的平方16寫在下面。用20減16得4。
開始往下繼續估算。把劃分的第二部分的兩位往下移。也就是420。
這時候,將估算的第乙個數字乘以20。也就是得到80。這時候就開始估算80幾的個位數。
比如我們估算到84×4等於336小於420。85×5等於425大於420。就得到第2個數字4。
這時候算出來84×4等於336,用420減去336,等於84。繼續將第三部分也就是01移下來,得到8401。將前兩次估算出的44再次乘20,得到880。
繼續估算個位數。我們看到889×9等於8001,小於8401,可以確定第三個數字是9。
繼續重複上面的操作。將第四部分的08移下來得到40008。將剛剛得到的前三個數字449×20得到8980。
在估計個位數。看到8984×4=35936小於40008。8985×5=44925大於40008。
所以得到第四個數字4。
所以近似的開方就是4494。
我們可以驗算4494的二次方等20196036
4495的二次方等於20205025
所以***的近似開方就是4494.幾幾
如果想繼續算下去,就每次在後面補兩位00,在根據上面的步驟繼續算,就會越來越接近真實答案。
14樓:xqly
算0.5次方比較難。但是我們如果算平方應該會簡單不少吧。
所以可以試試二分法?
還是以5為例子。
我們肯定知道答案在0~5之間。
首先我們試試他們的中間值 , 5" eeimg="1"/>。
所以答案肯定在0~2.5之間。
我們繼續嘗試中間值 , 。
所以答案區間就變成了1.25~2.5之間。
繼續嘗試中間值
所以答案區間就程式設計了1.875~2.5之間。
一直繼續下去你就可以得到在一定精度下的答案了。
但是這個方法的確有點麻煩,你可以試試其他人提的更聰明的方法?
比如牛頓迭代法???
15樓:陳炳好
筆算?很簡單。
a=被開方數,b=a/2
迴圈b=(a/b+b)/2
簡單快速
625,625/2=312
(625/312+312)/2=157
(625/157+157)/2=80
(625/80+80)/2=43
(625/43+43)/2=28
(625/28+28)/2=25
(625/25+25)/2=25
解:625^0.5=25
特點是結果需要多少位精度,那麼計算時也就只需要多少精度。為了節省計算步驟,第一步可以把b改成預估的近似值,如上題,明顯可用b=20開始計算。
筆算其實也不難,畢竟不需要多高精度。這個方法非常好記,a除b加b 取半迴圈。如果你討厭迴圈計算,想一步到位,也很簡單。
求316.4841的平方根.
①被開方數,小數點左右每隔兩位用,分段
316.4841分段成3,16.48,41
②商的第一位,就是第一段數字的平方根(整數,一眼就能看出)
3的平方根很明顯是1,餘數為2
③計算餘數,並移下第二段數字,並在左側寫下商x20的值(這個很容易,先寫最後一位0,然後直接x2,目測著從個位往前直接寫)。
本例為20 :216
④試第二位商,使(值+試商)×試商 《餘數的同時盡可能大。
本例為216-(20+7)x7=27
⑤回到第③步,計算第二餘數,並移下第三段數字,並在左側寫下商x20的值。
本例為340 :2748
依此法迴圈做下去,直到移完所有分段,餘數為零,則開方運算結束。若餘數永不為零,則可在後面加上00,00的分段繼續,直到取得足夠精度的近似值。
如果你的計算器支援ans功能,那麼輸入625然後按=,然後輸入(a/ans+ans)/2,連按10次=,結果就出來了。
如果你的計算器支援計算平方根或者指數,那直接輸入啊(見下圖)。
(n/m)√a =a^(m/n)
a^b=10^(log(a)×b)
a的平方根=a^(1/2)=a^0.5
a的立方根=a^(1/3)
冪指數不僅可以是整數,還可以是分數,小數,無理數,乃至全體實數,全體虛數
如何知道乙個數是 2 的多少次方?
我就看看不說話 關於怎麼使用計算器進行計算和怎麼使用對數表進行查詢的方法,前面的答主已經講得很清楚了。這裡根據相同的原理可以在確定乙個數 是2的整數次方時進行快速的口算 首先2的整數次方 除0次方外 的個位數存在以4為週期的週期性,其個位數依次為2,4,8,6.通過觀察該數值的個位數即可得出其指數為...
Mathematica 怎麼判斷乙個數能否由兩個兩位數相乘得到?
cvgmt MemberQ Flatten Table i j, ProductOfTwoDigitNumberQ num Integer Block TwoDigitDivisors Divisors num IntersectingQ num TwoDigitDivisors TwoDigitD...
如何求乙個數的劃分 p n 個數??
riteme 雖然這個問題在知乎上是兩三年前提出的,我還是想給乙個簡單並且不是很慢的方法。首先,Wikipedia 上提到了下面這個遞推式 不過 Wikipedia 貌似沒有給出由來,我寫了一篇文章解釋了為什麼上面這個式子是正確的 計算分拆數的一種方法 riteme.site 上面的式子可以直接遞推...