tag:blogger.com,1999:blog-3550204829234352390.post7836800838350302199..comments2024-03-27T09:13:48.546+08:00Comments on 研發養成所 ( Bridan's Blog - 4rdp, For R&D Person ): 演算法訓練 1 ─ 平均演算法Bridanhttp://www.blogger.com/profile/17055047757114667099noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-3550204829234352390.post-208515753626330762014-12-16T20:46:28.924+08:002014-12-16T20:46:28.924+08:00嗯,避免溢位必須採取你的方法,使用 float (32 bits) 儲值,精度可以達五位半數值,這樣...嗯,避免溢位必須採取你的方法,使用 float (32 bits) 儲值,精度可以達五位半數值,這樣一般場合是夠用,n 用 32 bits unsigned long 就夠,每秒一筆相當於六年四個月夠久了,除非這東西要上太空找 ET。<br /><br />看似簡單的題目暗藏玄機很多。這題先討論到此,進階問題將後續幾週陸續提出。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-88147430177556124312014-12-16T17:40:02.823+08:002014-12-16T17:40:02.823+08:00我要修正。 n 其實可以不需要用到 unsigned long. 因為... 18,446,744,...我要修正。 n 其實可以不需要用到 unsigned long. 因為... 18,446,744,073,709,551,615 秒 = 5.8 E 14 年.... 沒有人或者機器人可以 "活 這麼久,用這麼久。行天下https://www.blogger.com/profile/04992727596324526135noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-24944887909456973952014-12-16T17:36:31.120+08:002014-12-16T17:36:31.120+08:00平均數演算法, 修改 Yuying Zheng 的演算法:
average_(n)=average_...平均數演算法, 修改 Yuying Zheng 的演算法:<br />average_(n)=average_(n-1) + [(X_n - average_(n-1)) ] / n<br />避免當 n 很大時, 平均數 * (n-1) 溢位, 及增加平均值的精度(牽扯到浮點數的有效位數)。但是 n 越來越大時,卻同時影響到 (X_n - average_(n-1)) / n 的精準度。<br /><br />n 會使用 unsigned long (64bit unsigned long integer 是: 0 ~ 18,446,744,073,709,551,615)<br />其他應該使用 float 就足夠。當然,如果要求更精確,會用到 double.行天下https://www.blogger.com/profile/04992727596324526135noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-17714057021706877032014-12-15T20:56:00.668+08:002014-12-15T20:56:00.668+08:00謝謝邱老師參與,星期三將會有新題目發佈,它也適合 EV3 作答,歡迎老師屆時搶答。^_^謝謝邱老師參與,星期三將會有新題目發佈,它也適合 EV3 作答,歡迎老師屆時搶答。^_^Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-34605652330722687282014-12-15T17:42:06.586+08:002014-12-15T17:42:06.586+08:00謝謝Bridan先生。我已經將ev3檔案上傳到
http://goo.gl/ILExHL
請大家下載...謝謝Bridan先生。我已經將ev3檔案上傳到<br />http://goo.gl/ILExHL<br />請大家下載執行,歡迎討論。邱信仁https://www.blogger.com/profile/15900449400866292721noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-55316587500549365452014-12-14T20:47:38.413+08:002014-12-14T20:47:38.413+08:00Yuying 您好,記憶體受限時,實作上是採用這種方法沒錯,謝謝妳的補充。
加分題,你會選用何種資...Yuying 您好,記憶體受限時,實作上是採用這種方法沒錯,謝謝妳的補充。<br /><br />加分題,你會選用何種資料型態儲存這些數值?如果空間資料數值爆滿時,該如何處理?<br />Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-5104724568846250542014-12-14T18:42:25.978+08:002014-12-14T18:42:25.978+08:00我會用四個記憶體空間資料數、平均值、最大值與最小值
我的平均值更改為最後的N筆資料的平均
最後的N筆...我會用四個記憶體空間資料數、平均值、最大值與最小值<br />我的平均值更改為最後的N筆資料的平均<br />最後的N筆資料的平均=(最後的N-1筆資料的平均*(N-1)+目前值)/N<br />資料數就的大小越大會越精準,但使用的空間就變大了<br />Anonymoushttps://www.blogger.com/profile/05979733214596106409noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-59094516313278556702014-12-13T07:12:01.380+08:002014-12-13T07:12:01.380+08:00感謝薛老師共襄盛舉,這麼晚沒睡,辛苦了。^_^感謝薛老師共襄盛舉,這麼晚沒睡,辛苦了。^_^Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-13579121554489076912014-12-13T00:32:23.577+08:002014-12-13T00:32:23.577+08:00影片結果:https://www.youtube.com/watch?v=JZhv-OIad-8&a...影片結果:https://www.youtube.com/watch?v=JZhv-OIad-8&feature=youtu.be薛老師https://www.blogger.com/profile/06138911994667065764noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-6300391466867105742014-12-13T00:31:49.634+08:002014-12-13T00:31:49.634+08:00我是以matlab為操作工具,程式碼如下:
clear all
clc
data=[100 90 ...我是以matlab為操作工具,程式碼如下:<br />clear all<br />clc<br /><br />data=[100 90 80 60 80 90 75 70 80 100];<br />n=size(data,2);<br />sum=0;<br />average_value=0;<br /><br />for i=1 :10 <br /> if i==1<br /> max_value=data(i); <br /> min_value=data(i);<br /> end <br /> <br /> sum=sum + data(i);<br /> <br /> if data(i)>max_value<br /> max_value= data(i);<br /> end <br /> <br /> if data(i)<min_value<br /> min_value=data(i);<br /> end <br /> fprintf('第%d筆資料=%d,讀取完畢\n',i,data(i))<br /> pause(1);<br />end<br />fprintf('-------------\n')<br />average_value=sum/n;<br />fprintf('平均值=%3.2f\n',average_value)<br />fprintf('最大值=%d\n',max_value)<br />fprintf('最大值=%d\n',min_value)<br /><br />薛老師https://www.blogger.com/profile/06138911994667065764noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-28299003167666612592014-12-12T17:10:11.675+08:002014-12-12T17:10:11.675+08:00邱老師好久不見,這個單元你搶得頭香,厲害厲害,歡迎你分享程式。邱老師好久不見,這個單元你搶得頭香,厲害厲害,歡迎你分享程式。Bridanhttps://www.blogger.com/profile/17055047757114667099noreply@blogger.comtag:blogger.com,1999:blog-3550204829234352390.post-77030924475290902532014-12-11T23:11:13.720+08:002014-12-11T23:11:13.720+08:00很有趣的題目,我列出pdf檔案,請大家指正。
http://www.slideshare.net/r...很有趣的題目,我列出pdf檔案,請大家指正。<br />http://www.slideshare.net/renchiou/avgminmax223邱信仁https://www.blogger.com/profile/15900449400866292721noreply@blogger.com