[討論] 剛剛寫了一個function 有點小bug....已回收

看板MATLAB作者 (勝機不足就要拖)時間14年前 (2011/08/24 01:52), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串1/1
老師出了作業 題目是要我們輸入一個上限、一個下限,還有一個基數 找出在這上下限內的整數中,是基數的級數的那些數字。 function resultVar = checkbaseInterval(low, top, base) x = low:1:top; Answer = find(round((log(x)/log(base))) == (log(x)/log(base))) resultVar = 'Answers are here.'; 我用這個function,跑所有不是3的基數,跑出來的答案都對。 但是我設定基數(base)= 3時,答案卻怪怪的.... 可以幫我看一下是哪裡出問題嘛QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.61.50.75 ※ 編輯: jackshai 來自: 128.61.50.75 (08/24 01:53)

08/24 02:55, , 1F
最基本的計概問題 該找的不是相等值而是認可的極小值
08/24 02:55, 1F

08/24 03:32, , 2F
痾...不是很懂樓上的說明 囧>
08/24 03:32, 2F

08/24 03:34, , 3F
基數設定成其他數字都沒問題 只有設定成3有問題@@
08/24 03:34, 3F

08/24 03:48, , 4F
翻譯:精度問題 改找 abs(round(value)-value)<0.0001 試試
08/24 03:48, 4F

08/24 09:05, , 5F
隨便帶一個X=9 BASE=3 你這個就算不出來了
08/24 09:05, 5F

08/24 09:06, , 6F
round(log(9)/log(3))=2 與log(9)/log(3) 不同
08/24 09:06, 6F

08/24 09:07, , 7F
哎呀 當我沒說XD 還沒醒
08/24 09:07, 7F

08/24 09:19, , 8F
DKer說的沒錯 這樣就可以搞定了
08/24 09:19, 8F
文章代碼(AID): #1EK-Zbvs (MATLAB)