PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
奶油銓
Basic Member
 

加入日期: Feb 2002
您的住址: 地球
文章: 20
引用:
作者沒問題
剛剛又看到一個有點有趣的算法…
DD=1388
DR=16
Q=?
R=?

1388/16=(1388-(16*50))=588
588/16=(588-(16*20))=268
268/16=(268-(16*10))=108
108/16=(108-(16*5))=28
28/16=(28-(16*1))=12

Q=50+20+10+5+1=86
R=12



相信我,這是有用的,只是你不知道用在那裡,要怎麼用。


確實,我的確不是數論方面的專家。不過 您的原意是想要找到一個方便"人腦"快速簡潔計算除法的方法,這個前提應該沒錯吧 ?

您這個例子正好打臉自己, 因為 1388/16 這個算式用直式除法,頂多給你個30秒正常人就會算完,用你這個想法顯然就要超過30秒了。所以你自己不就證實了你這個方法不如直式除法嗎 ?
     
      
舊 2024-07-24, 12:25 AM #31
回應時引用此文章
奶油銓離線中  
mobilestubsars
Basic Member
 

加入日期: Jun 2021
文章: 22
ChatGPT 4o可以幫忙算,過程就懶得貼在這了
另外它的建議也很明確,就是這個算法不夠穩當。還不如用傳統的長除法
 

此文章於 2024-07-24 01:59 AM 被 mobilestubsars 編輯.
舊 2024-07-24, 01:36 AM #32
回應時引用此文章
mobilestubsars離線中  
慕凡
Master Member
 
慕凡的大頭照
 

加入日期: Dec 2001
您的住址: 台北市~
文章: 1,783
Arrow 嗯.....

引用:
作者沒問題
現在,問題是如果除數是1789時,請寫出按此方法計算的全過程。

額外問題:
一、可否用17及89做為『一組』相除。
二、可否用324及178做為『一對』相除。
三、請說明原理。


現在,問題是如果除數是1789時,請寫出按此方法計算的全過程。

1+1=2

一、可否用17及89做為『一組』相除。

不可以。

二、可否用324及178做為『一對』相除。

還是不口以。

三、請說明原理。

Cause I said so.






.

此文章於 2024-07-24 03:47 AM 被 慕凡 編輯.
舊 2024-07-24, 03:42 AM #33
回應時引用此文章
慕凡現在在線上  
沒問題
Major Member
 

加入日期: Dec 2015
文章: 210
引用:
作者奶油銓
確實,我的確不是數論方面的專家。不過 您的原意是想要找到一個方便"人腦"快速簡潔計算除法的方法,這個前提應該沒錯吧 ?

您這個例子正好打臉自己, 因為 1388/16 這個算式用直式除法,頂多給你個30秒正常人就會算完,用你這個想法顯然就要超過30秒了。所以你自己不就證實了你這個方法不如直式除法嗎 ?


因為我要算的數已經大於兩百多位,還含五十位小數。
第二件事情是,這不是給人用的算法。

如果這些算法是無用的,就不會有人會寫出來,也不會有人去想。

此文章於 2024-07-24 10:14 PM 被 沒問題 編輯.
舊 2024-07-24, 10:13 PM #34
回應時引用此文章
沒問題離線中  
cp03
Advance Member
 

加入日期: Sep 2015
文章: 318
引用:
作者沒問題
今有一被除數3246738及除數178,當相除時,我們可以使用計算機,而且我們可以採用現代數學直式計算或是長除法等方法求解。

在古代,因為沒有計算機,有些地區沒有算盤的情況下,有人發現另一種算法用來計算超大被除數及除數。

小弟在此公開計算方法,先用現代方法計算求商求餘。
3246738除178:
3246738÷178=18240。
商數是18240。
餘數是18。

1.抓出被除數及除數首兩位32和17相除得商1餘15
2.將餘15放置前面,取次一位被除數4得154,並減除數尾數8乘上前次得出的商1,得146,再將146除17得商8餘10。
2.將餘10放置前面,取次一位被除數6得106,並減除數尾數8乘上前次得出的商8,得42,再將42除17得商2餘8。
3.將餘8放置前面,取次一位被除數7得87,並減除數尾數8乘上前次得出的商2,得71,再將71除17得商4餘3。
4.將餘3放置前面,取次一位被除數3得33,並減除數尾數8乘上前次得出的商4,得...


脫褲子放屁,
你還是在做長除法,
你只是沒有理由地的增加了其中的步驟而已.

32/17 = 1 餘 15
然後你耍白癡
(154 - 8) = 146
你知道 146 是啥鬼嗎?
324−178
你知道什麼時候長除法有 324−178 嗎?
所以為什麼要堅持只用 17?
是你設計了一個腦殘計算機 內存太小 "除數" 最多兩位數嗎?





好的,讓我們來計算
3246738
÷
178
3246738÷178 的長除法。

首先取前幾位數字,直到它們組成的數字大於或等於除數178:

324 > 178,所以我們可以進行除法。
324
÷
178

1
324÷178≈1,所以商的第一位是1。

1
×
178
=
178
1×178=178
324

178
=
146
324−178=146
接下來,把下一位數字(6)降下來,得到1466。

1466
÷
178

8
1466÷178≈8,所以商的下一位是8。
8
×
178
=
1424
8×178=1424
1466

1424
=
42
1466−1424=42
把下一位數字(7)降下來,得到427。

427
÷
178

2
427÷178≈2,所以商的下一位是2。
2
×
178
=
356
2×178=356
427

356
=
71
427−356=71
把下一位數字(3)降下來,得到713。

713
÷
178

4
713÷178≈4,所以商的下一位是4。
4
×
178
=
712
4×178=712
713

712
=
1
713−712=1
把最後一位數字(8)降下來,得到18。

18
÷
178

0
18÷178≈0,所以商的最後一位是0。
沒有數字可降下來了。
所以,
3246738
÷
178
3246738÷178 的商是 18240,餘數是18。

最終結果:
3246738
÷
178
=
18240



18
3246738÷178=18240餘18
舊 2024-07-25, 03:03 AM #35
回應時引用此文章
cp03離線中  
cjan.
Senior Member
 

加入日期: Mar 2020
您的住址: 天龍國蛋殼區
文章: 1,349
145*154/D2B=?
舊 2024-07-25, 05:47 AM #36
回應時引用此文章
cjan.離線中  
沒問題
Major Member
 

加入日期: Dec 2015
文章: 210
對某些人的反應我只能說,你太激動了。
似乎有人還不能明白這樣做的好處。

沒有看到大量的乘法被使用?
也沒看到到求取整數的方法被使用。
分多次完成。
舊 2024-07-25, 06:47 AM #37
回應時引用此文章
沒問題離線中  
qwd
Major Member
 

加入日期: Nov 2003
您的住址: 高雄
文章: 249
你要不要換個思路別執著在除法

我也來提供一道數學解法,希望對你有幫助
《𝑎²+2𝑎𝑏+𝑏² 》
----------------------
78*78 = 6084

49
112
64

6084
----------------------

----------------------
788*788 = 620944

49
1232
7744

620944
----------------------

----------------------
7788*7788 = 60652944

5929
13552
7744

60652944
----------------------
舊 2024-07-25, 10:23 AM #38
回應時引用此文章
qwd離線中  
奶油銓
Basic Member
 

加入日期: Feb 2002
您的住址: 地球
文章: 20
引用:
作者沒問題
因為我要算的數已經大於兩百多位,還含五十位小數。
第二件事情是,這不是給人用的算法。

如果這些算法是無用的,就不會有人會寫出來,也不會有人去想。


被除數有幾位根本不重要,重點是除數位數。假設你的除數是n位,依據被除數的最高位數與除數的最高位數,你每次選取被除數最高n或n+1位數做運算,這時商最多也不過是0到9。求一個商你也不過是進行 n次的個位數的乘法運算,與n位數的減法。

最浪費時間的是因為除數大,要用的計算紙很浪費而已。

即使是使電腦來算,對你這幾百位的數字,也是需要想想辦法。畢竟電腦預設的數值也沒法儲存到這麼多位(大概是20位吧)。你採用了各種奇怪的算法,反而增加了運算的次數。

你其實簡單的用python或是C寫個程式,比較一下運行的速度就好了啊。你甚至可以比較一下總共進行的乘法與減法的次數,按照次數來比較效率。
舊 2024-07-25, 01:13 PM #39
回應時引用此文章
奶油銓離線中  
沒問題
Major Member
 

加入日期: Dec 2015
文章: 210
引用:
作者奶油銓
被除數有幾位根本不重要,重點是除數位數。假設你的除數是n位,依據被除數的最高位數與除數的最高位數,你每次選取被除數最高n或n+1位數做運算,這時商最多也不過是0到9。求一個商你也不過是進行 n次的個位數的乘法運算,與n位數的減法。

最浪費時間的是因為除數大,要用的計算紙很浪費而已。

即使是使電腦來算,對你這幾百位的數字,也是需要想想辦法。畢竟電腦預設的數值也沒法儲存到這麼多位(大概是20位吧)。你採用了各種奇怪的算法,反而增加了運算的次數。

你其實簡單的用python或是C寫個程式,比較一下運行的速度就好了啊。你甚至可以比較一下總共進行的乘法與減法的次數,按照次數來比較效率。


本來是不想回的,不過,還是有幾點要說一下。

一、不管多大位數的被除數,你都要先假設,如果你的除數是一,那你的計算次數就是由被除數決定,雖然答案很明顯,但是電腦沒這麼聰明。
二、你說對一部份,大部份的時候,是除數決定計算的次數,當遇到很小的除數時「千位或萬位的除數」,你確實可以用乘法先去算乘積,但是當你的除數多達七十幾位到一百位的時候『還包含五十位小數』,這對電腦來說也是很痛苦的。
三、有人可能沒經歷過那個古早時代的電腦計算,當年最大的被除數最多也只能表示到正負三萬二千七百六十七。想一下,你要怎麼計算阿波羅計劃的地月軌道?
四、為什麼總是要增加這麼多步去計算乘法?那是因為除法很明顯沒有快速計算的解,所以你就算在網上能找到的計算方式絕大多數都是先算乘法。
五、當你的數大於二十一位以後,就算你用現代的超算,你的計算時間也是指數級的提升。或許你一輩子都不會遇到這麼大的數,一但你遇到了,你就會知道這樣的計算耗時有多恐怖。
六、如果你用純軟體的方式來做計算,你如果不想方設法做最佳化,你還會以為你的電腦當機了,當你要計算的數不論是除數或被除數都這麼大,而且我只是寫出一筆而以,我手上還有十幾萬筆要算。
七、我也想過用客制化的硬體去計算,就算假設你手上的數只有四十位就好,你要做的減法就六十五次含以上,還不計算你要猜你的除數的商或是乘積,你不會擁有無限的面積跟資源去建構一個可以一次連減六十五次的除法器。就算你建構出來,這樣的除法器其實也沒有非常快。
八、你也會想如果我重覆計算六十五次就能得出答案,但是你知道當你如果可以使用乘法來計算的話,你的計算次數可能減少到只剩下三十三次或更少,你只要假設每計算一次只花你三十秒就行。這是相當可觀的速度提升。而且,乘法計算一次所需要的時間比除法更少,最好的最差狀況可能只要十秒一次甚至更少。
九、許多數學及計算機科學的高手無不絞盡腦汁渴求更快速的除法算法,你或許會問,INTEL跟AMD不是讓乘除法都做到一樣快嗎?事實是,他們做得到,但是你卻不知道他們如何做到。你在網上找得到的解答,我不是沒有試過,但是效果不盡理想。
十、這個問題在台灣問,大家可能不會非常有感覺,但是你到對岸去問,那可能很多計算機科學的人會認真跟你討論,因為他們的總量太大,就算只是用軟體計算,他們都要去考慮超出的數要怎麼更快的計算。
十一、我重申,我的目的是希望找到一種可以預先計算餘數的算法,而且最好的能優先使用乘法來計算,如果可以,也可以將除數及被除數分拆部份計算,也可以平行計算。
十二、對於那些不是計算機行業的人、非數學專業的人或是其他產業的人,保持開放的心,這世上有很多奇怪的問題,對你而言是無意義,但是對其他人而言這並非無聊找事做,純粹的智力思考其實也很有趣。

補充幾點:
一、我確實一開始要求是適合『人』算的算法,唯一的差別是,古代人肯定沒有機會計算一百位數以上的數。
二、我一直強調,你幾乎沒有看到有那位數學的大神去討論除法的快速求解,就算是現代人也一樣。
三、為了快速的求出商或餘,你在網上找得到的大量算法,仍是從乘法入手。
四、為什麼我會要求用這麼複雜的算法去求除法?雖然古代不會有這麼多無聊人士或實際需要得去求這麼大的除數及被除數,但是我得去尋找古人是怎麼解決這類大除數及被除數的問題,或許能夠找到有用的相關方法。
五、從求圓周率這個問題來看,就可以知道,古人的求解精度及效度也就五到六位數而以『不管是計算小數或是計算整數』,而且很顯然要求到這麼長位數的數,計算所花去的時間都太長了。

此文章於 2024-07-25 09:04 PM 被 沒問題 編輯.
舊 2024-07-25, 07:40 PM #40
回應時引用此文章
沒問題離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是04:00 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。