※ 本文轉寄自 ptt.cc, 文章原始頁面
看板Math
標題

[代數] 是否有可能用電腦實作萬用反函數?

時間
最新2023-07-02 17:04:00
留言72則留言,14人參與討論
推噓13 ( 13059 )
給定一函數func, 參數是i, j, k. 輸出是x, y. 假設i, j, k, x, y 都可以定義的數(非0/0),且不是無限大。 用Python語法表示:x, y = func(i, j, k) 那是否可以針對任何func, 用電腦實作一個萬用反函數?我稱此反函數invFunc, 或者用比較數學的表示法func^-1 用Python語法表示:i, j, k = invFunc(func, x, y) 我想問invFunc是否一定可以由程式寫出來?因為目前沒看到相關的萬用反函數可用,因此猜想是無法,如果真的是無法的話,方便解說一下,爲什麼無法?謝謝。 ----- Sent from JPTT on my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.13.57 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1687058920.A.0EE.html

72 則留言

m3791913, 1F
不是所有函數都存在反函數

pmove, 2F
我想到一個困難點,就是func 有可能超大,導致反函

pmove, 3F
數很難求。那假設func在程式碼1000行以下,那有辦法

pmove, 4F
實作萬用反函數嗎?目前我只知道,如果限定在三角函

pmove, 5F
數的話,sin^-1, cos^-1, tan^-1, …這些都有人寫好

pmove, 6F
了。另外求反矩陣,印像中也有公版的。
※ 編輯: pmove (1.161.13.57 臺灣), 06/18/2023 11:59:47

pmove, 7F
回1F,m大:那不存在反函數,可返回exception錯誤,

pmove, 8F
只處理有反函數就好的,可以麼?

pmove, 9F
印像中,數學上,反矩陣也不一定存在啊。但程式裡面

pmove, 10F
可以處理反矩陣存在時,才得到反矩陣。

j0958322080, 11F
反矩陣可以看他的 det 是否為零或其他條件,反函數

j0958322080, 12F
要看看到有沒有類似的條件可以讓你判斷

freePrester, 13F
Google 陷門函數

freePrester, 14F
如果你辦得到的話你就能輕鬆進入絕大多數的電腦系統

freePrester, 15F
RSA 等密碼系統的安全性就是建立在反函數難以求出

arrenwu, 16F
你方便說明一下什麼叫做「萬用反函數」嗎?

wohtp, 17F
先說說你的I,j,k定義域是啥不過反正你說要用電腦實

wohtp, 18F
作,就算都是float也只有有限多個值。

wohtp, 19F
那一般解也非常簡單,反正把整個定義域都算過一遍答

wohtp, 20F
案全部cache起來,反函數就是在cache裡面搜尋x ,y再

wohtp, 21F
反推回原來的I, j, k

sunev, 22F
如果是求一個程式,給定任何程式碼,以生成此程式碼

sunev, 23F
的反程式碼,那應該會回到停機問題。

pmove, 24F
回17樓,w大,把所有值cache起來,先不管效率問題,

pmove, 25F
當cache的數,有無理數,或精確度不足,會造成小數

pmove, 26F
點某幾位的數後面,被省略不記,如此會造成某些數,

pmove, 27F
沒有被cache到。也就是原本func(i, j, k), i, j, k

pmove, 28F
可以算完所有值域。但是輸出的x, y有可能被省略,使

pmove, 29F
得某些x, y沒被cache, 但不代表此時反函數不存在。

pmove, 30F
舉個例子,w = func(u) = u^2, 假設電腦只能表示小

pmove, 31F
數點後一位(我知道這跟真正的電腦表示法,不太一樣

pmove, 32F
)那u =1時,w =1。u =1.1時,w=1.2 (1.21但只能表

pmove, 33F
示小數點後一位,省略0.01),我要問w=1.1時,不在c

pmove, 34F
ache中,此時u 是多少?我只知道u 不是1,就是1.1,

pmove, 35F
但到底是多少,尤其當func 更複雜時,有時候很難判

pmove, 36F

arrenwu, 37F
所以你想要的其實是一個 產生反函數的函數?

pmove, 38F
回樓上,其實很多大大都已回答,是卡在效率問題的樣

pmove, 39F
,所以目前沒有公版invFunc

LPH66, 60F
才能有「一個」反函數被定義出來

LPH66, 61F
這件事和你的原函數的型式極度相關,因此我才會問

LPH66, 62F
究竟原函數長怎樣,這樣才能夠知道要怎麼加條件

LPH66, 63F
去得到那一個反函數,同時也有助於實際求值

LPH66, 64F
給出型式也能知道是不是那些本質上很難求逆的東西

wohtp, 65F
唯一的一般解就是我說的窮舉法啊。float還可以讓你

wohtp, 66F
這樣搞,R連窮舉的機會都沒了。

xcycl, 67F
程式語言不是只能寫 float,是能夠寫 exact real 的

Vulpix, 68F
是computable number嗎?

wohtp, 69F
只是多幾個位數而已,哪可能真的用電腦實作實數。

sunev, 70F
電腦只能處理特定實數,不然就不會定義computable

xcycl, 71F
有點好奇心看到關鍵字搜尋就知道不是多幾位數而已

xcycl, 72F
可以說是 computable real 沒錯

pmove 作者的近期文章

[日記] 老實說北一女區老師根本看輕精神病人
每個人有想法上的自由, 如果在心理面,認為精神病是負面的, 那沒關係。 但是在公眾場合把對精神病人負面的想法, 意有所指的講出來,這種污名化精神病人的行為, 我認為是要受公評的。 日前,北一女區老師提出文言文爭議問題, 指出教改的不妥, 先
[日記] 不是向GNU Software申請補助
我想提供我的專案給GNU Software, 不過失敗了,以下是我跟GNU Software人員的對話, 有些部份,為了隱私,打馬賽克。 =Ineiev======================================== Hel
[日記] 有時候不會說
個人不是聖人,更不是富翁。有時候店家少算錢,我是不會更正的,但也不是都不更正,某些時候,還是會跟老闆說,少算了。可能看心情吧。 一、兩年前,我去使用公司的投幣式飲料機,發現機器的退幣口,原本就留下10元,我當時也沒多想,就拿走了。如果當時有
更多 pmove 作者的文章...