增加網址:
文章備註、標題(會記錄下來,但是暫時不會顯示):
[綜合]無題 無名 ID:tRTkC1DU 2022/01/14(五) 22:31:06.332 No.25766057
評分:0, 年:0, 月:0, 週:0, 日:0, [+1 / -1] 最後更新:2022-01-15 09:15:10
附圖
超過5分鐘了...
這個運算那麼耗資源嗎
無題 無名 ID:mtG.Toqs 2022/01/14(五) 22:37:47.547 No.25766151
回覆: >>25766183
這樣是不是等於要計算2^99個thread
無題 無名 ID:ex4b8aV2 2022/01/14(五) 22:39:26.022 No.25766174
回覆: >>25766225
複雜度注意一下好嗎==
無題 無名 ID:HBhdJExU 2022/01/14(五) 22:39:37.473 No.25766175
回覆: >>25766225
白癡喔
用動態規劃算好嗎
無題 無名 ID:uN2srSg2 2022/01/14(五) 22:40:14.571 No.25766180
回覆: >>25766225
附圖
是 因為你的寫法會重複計算同樣的問題
所以麻煩請用DP來解
無題 無名 ID:tRTkC1DU 2022/01/14(五) 22:40:24.201 No.25766183
回覆: >>25766269
>>25766151
是嗎
我不是本科生
但後來想想似乎會蠻多的
還在跑耶 先中斷好了w
無題 無名 ID:wipk2stw 2022/01/14(五) 22:41:02.490 No.25766195
用空間換時間好ㄇ==
無題 無名 ID:tL6lUDD2 2022/01/14(五) 22:42:36.474 No.25766220
https://zh.wikipedia.org/wiki/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0

下面有程式範例 自己參考一下邏輯
無題 無名 ID:alBnMugA 2022/01/14(五) 22:42:45.456 No.25766224
[aa]
final double f = Math.sqrt(5);
return (int) ((1/f) * ( Math.pow((1+f)/2, n) - Math.pow((1-f)/2, n) ) );
[/aa]
無題 無名 ID:tRTkC1DU 2022/01/14(五) 22:42:48.698 No.25766225
>>25766174
忘了注意w

>>25766175
你說的那個我不會...

>>25766180
我知道這是遞迴
但忘了下面的分支可能會導致跑超多次
無題 無名 ID:uN2srSg2 2022/01/14(五) 22:45:13.355 No.25766251
回覆: >>25766377
>>25766225
>你說的那個我不會...
簡單來說 把問題切成一堆子問題來解
然後把子問題儲存起來
下次就能直接抓來用不必重複計算
無題 無名 ID:HBhdJExU 2022/01/14(五) 22:46:15.133 No.25766262
>>25766225
低能兒去吃屎吧
浪費大家時間
無題 無名 ID:uN2srSg2 2022/01/14(五) 22:46:55.073 No.25766269
附圖
>>25766183
>我不是本科生
乖乖去報資策會
無題 無名 ID:jl1Q5mXM 2022/01/14(五) 22:47:23.408 No.25766276
誰叫你要用這垃圾語言
無題 無名 ID:mtG.Toqs 2022/01/14(五) 22:49:41.479 No.25766305
>>25766225
http://web.ntnu.edu.tw/~algo/DynamicProgramming.html
Google就有答案了啊
或除了遞迴也可以用迭代的方式
這兩種方法一直都是互補
無題 無名 ID:r0YFRmIo 2022/01/14(五) 22:50:07.896 No.25766315
>>25766269
資策會出品 垃圾保證
無題 無名 ID:uN2srSg2 2022/01/14(五) 22:50:54.764 No.25766321
附圖
>>25766315
不然你要叫他考台大資工嗎
哈!
無題 無名 ID:HBhdJExU 2022/01/14(五) 22:52:11.367 No.25766336
>>25766315
別說破嘛
資策會的講師也要養家
無題 無名 ID:mfWq8v1Q 2022/01/14(五) 22:52:12.309 No.25766337
回覆: >>25766352
資工肥宅又要群聚了
為何肥宅都愛讀資工?
無題 無名 ID:p7kef8q2 2022/01/14(五) 22:53:36.061 No.25766352
回覆: >>25766371
附圖
>>25766337
島民最愛的學問串
國小國中數學
資策會程度的程式
無題 無名 ID:HBhdJExU 2022/01/14(五) 22:55:09.684 No.25766371
回覆: >>25766405
>>25766352
精闢
島民最愛透過高談闊論低級題目來裝大師
無題 無名 ID:tRTkC1DU 2022/01/14(五) 22:55:28.176 No.25766377
>>25766251
喔喔、能理解
我是看某本書的範例
可能剛好在講遞迴才會給這種例子
無聊試一下而已

其實我比較無法理解的是如圖的這種
書本是說流程不用一個一個去追蹤
有確定運算正確而且不會有BUG就好
但整個流程我沒辦法理解它到底怎麼走的
無題 無名 ID:WtdGkN2A 2022/01/14(五) 22:56:41.624 No.25766388
回覆: >>25766458
print出來
無題 無名 ID:tRTkC1DU 2022/01/14(五) 22:56:43.329 No.25766389
回覆: >>25767233
附圖
無題 無名 ID:tRTkC1DU 2022/01/14(五) 22:57:15.616 No.25766394
附圖
無題 無名 ID:uN2srSg2 2022/01/14(五) 22:58:11.785 No.25766405
>>25766371
因為夠深度的題目你也解不出來阿www
無題 無名 ID:tRTkC1DU 2022/01/14(五) 23:02:55.884 No.25766458
回覆: >>25766672
附圖
>>25766388
常常print 去看狀態
勉強知道它做了什麼
但就是感覺有個邏輯卡在那

>>25766269
我只是學好玩的
根本沒有轉行之類的打算
至少現在是
無題 無名 ID:uN2srSg2 2022/01/14(五) 23:03:50.931 No.25766469
>>25766377
>但整個流程我沒辦法理解它到底怎麼走的
什麼意思?
無題 無名 ID:mtG.Toqs 2022/01/14(五) 23:08:56.985 No.25766536
>>25766377
你每呼叫一次函數
在回傳之前函數本身都會占用一點記憶體空間
遞迴的話在回傳之前會一直呼叫自己
等你分解到fibonacci(1)和fibonacci(0)之前
搞不好就會出現stackoverflow
無題 無名 ID:/LKpnkYc 2022/01/14(五) 23:10:07.529 No.25766552
費氏數列可以用迴圈解
無題 無名 ID:i2c9oTKY 2022/01/14(五) 23:11:34.221 No.25766576
不會DP就被罵低能兒
太苦了
無題 無名 ID:tRTkC1DU 2022/01/14(五) 23:12:25.896 No.25766590
>>25766469
recurse = factoril(n-1)那邊
我的理解一直是 我丟3他就一直3 2 1 0
可是return 1不就跳出來了嗎
而且再 n* recurse 的123是哪裡來的

雖說書有畫圖勉強知道他意思
但一直沒辦法接受
無題 無名 ID:uI4yu6N6 2022/01/14(五) 23:13:47.428 No.25766609
回覆: >>25767220
附圖
最近剛好在練狗死爛扣
無題 無名 ID:tL6lUDD2 2022/01/14(五) 23:16:10.526 No.25766638
回覆: >>25766669
以這題為例
費波那契數列的數值為前兩個數字相加

因此邏輯上簡單的作法就是多x1跟x2兩個暫存區
把前兩次的計算結果儲存起來
再用一個變數i儲存目前算到第幾階了

接著往後算的時候只要

if n>i

 x=x1+x2
 x1=x2
 x2=x
 i=i+1

else

 print x

這樣只要多用3個變數就好了
無題 無名 ID:tRTkC1DU 2022/01/14(五) 23:17:11.340 No.25766652
附圖
無題 無名 ID:mtG.Toqs 2022/01/14(五) 23:17:33.108 No.25766656
回覆: >>25766783
>>25766590
怎麼說 是圖的哪邊無法接受?
無題 無名 ID:tRTkC1DU 2022/01/14(五) 23:18:57.871 No.25766669
回覆: >>25766699
>>25766638
喔喔 的確簡單多了
無題 無名 ID:CVsPR2oA 2022/01/14(五) 23:19:39.468 No.25766672
>>25766458
你n每大1 是不是就要分支重算一次?
所以每圈都乘2
那是不是就2*2*2...=2^n次?

你設個數列
第一次存f[0]
第二次存f[1]
...
到n=99也只要抓f[97]+f[96]
只要做n次加法
無題 無名 ID:FQWMZPKY 2022/01/14(五) 23:19:42.468 No.25766674
是不會拿個global變數把結果暫存起來喔= =
無題 無名 ID:mtG.Toqs 2022/01/14(五) 23:21:52.851 No.25766699
回覆: >>25766899
>>25766669
他這作法就迭代
如果你要練習遞迴的話就是>>25766672的做法
無題 無名 ID:uN2srSg2 2022/01/14(五) 23:22:21.803 No.25766713
回覆: >>25766899
>>25766590
>可是return 1不就跳出來了嗎
跳回去到呼叫他的函式
然後繼續執行下一行程式碼
你不用一直想他會一直遞迴到哪
把他當成呼叫factorial(n-1)後會丟回一個值給你就好
至於factorial(n-1)會執行什麼先不用管
無題 無名 ID:m1SBLVC6 2022/01/14(五) 23:24:23.710 No.25766744
>>25766315
我之前去聽說明會
他們說企業很愛用資策會出身的人耶= =....
無題 無名 ID:tRTkC1DU 2022/01/14(五) 23:27:34.706 No.25766783
附圖
>>25766656
還是我對return理解錯誤?
它不會跳出整個程式嗎

還是說它不但沒有整個中斷
還會把之前遞迴的暫存起來
然後用原先遞迴時的條件一個一個又算回去?

我對recurse到result 之間的過程感到很飛躍
無題 無名 ID:i2c9oTKY 2022/01/14(五) 23:29:14.972 No.25766804
>>25766744
我糞校生啦
感覺資策會就是養一群寫免洗程式的人
反正大部分爛公司也不管日後好不好維護
無題 無名 ID:uN2srSg2 2022/01/14(五) 23:29:19.747 No.25766805
回覆: >>25767081
>>25766744
>他們說企業很愛用資策會出身的人耶
唬爛你而已啦
不然資工系幹嘛讀四年 半年就可以給畢業證書了啊www
資策會就只是超級填鴨補習班而已
撐過去至少懂怎麼寫垃圾出來 但造化還是看個人
無題 無名 ID:uN2srSg2 2022/01/14(五) 23:32:13.416 No.25766836
回覆: >>25767000
>>25766783
函式呼叫就是一個stack
return就是pop掉被呼叫者然後回去呼叫者那邊
無題 無名 ID:WtdGkN2A 2022/01/14(五) 23:33:05.350 No.25766848
>>25766744
厲害的一樣厲害 不厲害的起碼能當碼農
大約會有一半回家吃自己
無題 無名 ID:mtG.Toqs 2022/01/14(五) 23:36:47.629 No.25766898
回覆: >>25766952
附圖
無題 無名 ID:tRTkC1DU 2022/01/14(五) 23:36:52.024 No.25766899
回覆: >>25767010
附圖
>>25766672
所以這個複雜度......
呃 之前碰過一些又忘了
好像算是很複雜?

>>25766699
迭代和遞迴?
其實我分不太清楚w
我會分while for if 在什麼時候用
但那兩個定義的差別一直沒弄清楚

>>25766713
沒有完全懂
但大致上了解了我對return沒有理解得很清楚
有個方向了 謝謝
無題 無名 ID:r0YFRmIo 2022/01/14(五) 23:39:49.506 No.25766941
回覆: >>25766990
>>25766744
有嗎 我現在審履歷看到是資策會的就是直接刷掉了
無題 無名 ID:tRTkC1DU 2022/01/14(五) 23:40:30.294 No.25766952
附圖
>>25766898
等一下你這個
圖我先存了 謝謝
我的確對這個有興趣 也想弄清楚
感謝
無題 無名 ID:Q62Vdvyk 2022/01/14(五) 23:44:01.747 No.25766990
附圖
>>25766941
QQ...

我也很努力的...
無題 無名 ID:tRTkC1DU 2022/01/14(五) 23:44:57.901 No.25767000
附圖
>>25766836
你這樣講我懂了
我以為會整個中斷然後直接得到1
謝謝
無題 無名 ID:lFPqg602 2022/01/14(五) 23:45:52.136 No.25767010
回覆: >>25767071
>>25766899
你想搞懂真正搞懂function call到底幹了什麼
你多少還是得學計算機組織跟組語
有興趣就自己看一下這個部分
你就會懂上面講stack是什麼意思了
無題 無名 ID:tRTkC1DU 2022/01/14(五) 23:53:48.915 No.25767071
回覆: >>25767132
附圖
>>25767010
書上有說是堆疊示意圖
我只以為是跟資料結構的概念有關
>你多少還是得學計算機組織跟組語
所以有關聯到這些嗎
計算機組織算是比較深入的計算機概論嗎
無題 無名 ID:bB57fwB. 2022/01/14(五) 23:54:38.918 No.25767081
回覆: >>25767162
>>25766805
也沒唬濫,只是體制化而已
資策會也有職前訓練的課程
有些企業懶得自己開課,就
會直接去那邊挖人。至少比
起一些糞校混畢業卻什麼都
不會,連社會常識都沒有的
新鮮人好用多了,至少不用
再花錢教,教完還不見得待
得住。但..也就如此而已
並不代表出來的人就有什麼
過人之處,頂多就是基本的
上下班會準時(因為上課時
會要求)+至少能寫出點東西
無題 無名 ID:eCiFGkak 2022/01/14(五) 23:58:17.108 No.25767123
把每一個步驟都印出來你就知道他是怎麼執行的了
記得n要從最小的開始一個個試,不要一次就10,直接10印出來的東西你肯定看到瘋掉
你自己看過印出什麼東西後就知道為什麼99會算不出來了

很久沒碰python了,以下程式碼僅供參考、不確定能不能編得過
[aa]
def fibonacci(n):
print "start "+n
if n==0:
print "n=0"
return 0
elif n==1:
print "n=1"
return 1
else
print "cal a "+n
a=fibonacci(n-1)
print "cal b "+n
b=fibonacci(n-2)
print "cal return "+n
return a+b
[/aa]


這個跟計概沒什麼關係,就是純粹的邏輯
不需要學計概也能搞得懂
無題 無名 ID:lFPqg602 2022/01/14(五) 23:58:56.964 No.25767132
>>25767071
其實完整的運作是在計算機組織教的
其中就是教你怎麼把C轉成組語
也不用真的去學怎麼轉,那個難搞到靠北,遞迴部分會寫到自殺
有個概念就可以了
而跟資料結構相關的是演算法,可以說資料結構是演算法的入門

另外,每一門資工系的每一門課都是比較深入的計概 ==
無題 無名 ID:mspjYdWY 2022/01/15(六) 00:01:14.007 No.25767157
回覆: >>25767182
>>25767123
2022了還有人用Python 2 (拖走
無題 無名 ID:P8PPSOM. 2022/01/15(六) 00:01:46.484 No.25767162
>>25767081>>25767081
身為職訓仔只能說同意了
同學強的很強 爛的很爛到是真的
買完門票後剩下還是靠自己
無題 無名 ID:9.0yNvyY 2022/01/15(六) 00:02:43.784 No.25767166
>>25767132
call自己跟call別人又沒什麼差別
遞迴怎麼會特別難搞?
無題 無名 ID:vLICsv7I 2022/01/15(六) 00:03:08.448 No.25767173
>>25767123
要學運作方式用逐行執行好嘛
2202年了,好好運用手上的IDE阿
無題 無名 ID:9.0yNvyY 2022/01/15(六) 00:04:29.513 No.25767182
>>25767157
我寫C++的
只有十年前學校教過python,之後就沒用過了
當然不知道現在長成怎樣了
連當年的版本都不一定對,僅供邏輯參考而已
無題 無名 ID:vLICsv7I 2022/01/15(六) 00:05:47.437 No.25767190
>>25767166
因為你的老師沒有叫你當人體編譯器來執行它吧
不過當純轉成組語確實是沒差啦
講得確實有誤
無題 無名 ID:RE.swn.Q 2022/01/15(六) 00:07:05.476 No.25767197
你要把資料存下來
直接取用才會快
無題 無名 ID:3UwEU52g 2022/01/15(六) 00:09:18.626 No.25767220
回覆: >>25767279
>>25766609
這也是遞迴嗎?
無題 無名 ID:RE.swn.Q 2022/01/15(六) 00:10:58.785 No.25767233
回覆: >>25767321
>>25766389
這書有問題
Result = n 那邊要刪tab 才對
無題 無名 ID:FEwYGzUY 2022/01/15(六) 00:15:48.669 No.25767272
回覆: >>25767464
附圖
>>25767132
>每一門課都是比較深入的計概
喔喔w

>那個難搞到靠北
可以想像
以前讀電機的時候
跟電腦比較有關的好像是數位邏輯吧
還要做一點可以動的東西出來
光燒那個什麼東西就煩到靠杯
(其實也忘了當時的情況啦 太久了
>可以說資料結構是演算法的入門
之前碰的時候有問了一下
有島民說用Python 去做資料結構本身其實蠻怪異的
所以也就中斷了(只學到矩陣

>>25767166
應該是因為太底層?
無題 無名 ID:mspjYdWY 2022/01/15(六) 00:16:21.489 No.25767279
回覆: >>25767349
>>25767220
算吧,函數裡面呼叫自己就是遞迴寫法
迭代的話一般是寫成迴圈的形式
印象中Fortran就不給用遞迴
但硬要寫成兩個一樣的函數互相呼叫也是可以
無題 無名 ID:FEwYGzUY 2022/01/15(六) 00:19:34.658 No.25767321
回覆: >>25767404
附圖
>>25767233

可是照著打沒出問題
測試也OK啊
無題 無名 ID:FEwYGzUY 2022/01/15(六) 00:22:06.860 No.25767349
附圖
>>25767279
>函數裡面呼叫自己就是遞迴寫法
>迭代的話一般是寫成迴圈的形式
原來如此
本來一直沒有很確定兩個詞差別在哪
因為看起來都像在LOOP
無題 無名 ID:9.0yNvyY 2022/01/15(六) 00:27:34.292 No.25767404
回覆: >>25767541
>>應該是因為太底層?
遞迴難搞的是在人腦裡想像他怎麼運作
對電腦來說跟一般的function call沒有兩樣
所以寫成組語的時候也沒有什麼特別難搞的,跟底層無關

>>有島民說用Python 去做資料結構本身其實蠻怪異的
如果你對於學這些底層的東西有興趣,去學C吧
目前為止在python學到的東西幾乎都可以帶過去,趁著還能無痛學習的時候趕快學

python不是讓你拿來研究電腦怎麼運作、CPU結構長怎樣用的語言
python的設計理念是你有什麼問題都丟估狗,估狗告訴你你怎麼在python裡把別人寫好的程式叫出來用
你如果喜歡自己寫底層、自己控制每個邏輯,你該學C


>>25767321
不需要
我不知道樓上那位為什麼會覺得要

其實整個else根本就不需要
把else砍掉、裡面三行都退一個tab也可以
return具有在當下強制結束函式的功能,if return後面接else都是多餘的
可是在搞懂這個題目之前你還是先乖乖照著書上的寫法吧
無題 無名 ID:vLICsv7I 2022/01/15(六) 00:35:31.713 No.25767464
>>25767272
用python做也不會到奇怪啦
基本概念是一樣的,用什麼語言其實都可以
資結後面比較複雜的結構只有各種tree,其他都很簡單
其實重點就是要搞懂stack、array、linkedlist、hash ... 的差別,這很重要
tree的應用比較少,但用到的時候會發現真的滿好用的
另外矩陣又是另一堂課的事(線性代數),太偏數學,資結其實不太會講
無題 無名 ID:9.0yNvyY 2022/01/15(六) 00:39:19.103 No.25767500
回覆: >>25767555
>>25767464
矩陣本來就是數學家的玩具,不是給搞電腦的人玩的
寫程式也就只有拿數學家寫好的公式來算的時候會用到
無題 無名 ID:FEwYGzUY 2022/01/15(六) 00:44:54.338 No.25767541
附圖
>>25767404
>趁著還能無痛學習的時候趕快學
你講得好像有點嚴重
>目前為止在python學到的東西幾乎都可以帶過去
不過這句話倒是蠻吸引我的
只不過如果突然還要跳 就至少還要再去挑書@@
同時學可行嗎 唉
我只是好奇心有點太過頭了

>return具有在當下強制結束函式的功能,if return後面接else都是多餘的
這邊其實可以理解了
無題 無名 ID:vLICsv7I 2022/01/15(六) 00:45:59.013 No.25767555
回覆: >>25767730
>>25767500
>矩陣本來就是數學家的玩具,不是給搞電腦的人玩的
圖學 : am i a joke to you?
不過,現在人好像都不太搞圖學了
無題 無名 ID:FEwYGzUY 2022/01/15(六) 00:52:15.408 No.25767603
回覆: >>25767667
附圖
>>25767464
因為學到單向linkedlist的時候
突然要用到物件方法 書又沒講的很清楚
我也還沒學到那邊
只到for while 串列 字典 元組...大約上半部?
搞得打算乾脆重看重學完Python那本的全部
再去考慮是要繼續碰資料結構還是再學C
無題 無名 ID:9.0yNvyY 2022/01/15(六) 01:00:51.681 No.25767667
>>25767603
linkedlist要用到指標,這是C/C++才有的東西
在高階語言(python)上只能用具有類似效果但本來不是設計來給你用的東西來達成
你要在python上寫出真正的linkedlist需要先多學很多東西
但在C,你會看到linkedlist的時候通常已經具備所有該有的工具了

一般的、實用取向的程式一輩子不會需要自己寫linkedlist
你要嘛走錯路學錯東西
要嘛就是為了想搞懂而搞懂的求知者
前者你該丟掉linkedlist去學一些實用的東西
後者你該學C,這才是求知者的通用語言
無題 無名 ID:RHdf9Wxg 2022/01/15(六) 01:08:21.223 No.25767704
>>25767667
好了啦C信者
只是要學資料結構概念的話 用python也能寫出自製的linkedList
差別只在python語法沒有明確區分reference/value/pointer罷了

你如果覺得這樣只是學一半
那你有把作業系統計算機結構數位電路都學起來嗎
無題 無名 ID:mspjYdWY 2022/01/15(六) 01:12:38.630 No.25767730
>>25767555
沒問題的
tree也是一種圖學
所以學資料結構多少還是會接觸到圖學
無題 無名 ID:FEwYGzUY 2022/01/15(六) 01:21:33.559 No.25767784
附圖
>>25767667
上次借串問的時候應該就是碰到你

我是學爽的 跟求職換跑道沒什麼關係
或者說並不是出於那一類動機
而且看到東西會有看個徹底的傾向
所以應該算是後者

只是貪圖 以前有碰過 和 語法簡單較接近直覺 的方便
所以還在繼續學Python

既然都碰到兩次w
趁過年規劃一下C的事情好了
謝囉
無題 無名 ID:mXwJPffI 2022/01/15(六) 01:55:42.927 No.25767921
在台灣不是四大寫三小C
糞校乖乖滾去當碼農寫php