-2
我想計算樸素貝葉斯概率。計算公式如下:我需要多少個雙倍投數
Math.Log((n1+1)/(n2+n3))/Math.Log(2)
結果應該是雙倍的,其中n1..n3很長。我該如何施展它?
我當前施法這樣
Math.Log((double)(n1+1)/(n2+n3))/Math.Log(2)
我想計算樸素貝葉斯概率。計算公式如下:我需要多少個雙倍投數
Math.Log((n1+1)/(n2+n3))/Math.Log(2)
結果應該是雙倍的,其中n1..n3很長。我該如何施展它?
我當前施法這樣
Math.Log((double)(n1+1)/(n2+n3))/Math.Log(2)
你當前施法將正常工作。如果這個師的任何一個操作數是雙重的,那麼另一個也會被加倍。
見Java Language Specification on Binary Numeric Promotion:
加寬原語轉換應用於轉換的任一個或所指定由以下規則兩個操作數:
如果操作數的類型是雙,另一種是轉化爲雙倍。
否則,如果任一操作數的類型爲float,則另一個操作數轉換爲float。
否則,如果任一操作數的類型爲long,則另一個操作數轉換爲long。
否則,兩個操作數都轉換爲int類型。
不錯的解釋,謝謝 –
不要你的意思'Math.log' –
你現在的施法某些原因而無法工作...? – Radiodef
它的工作,但只是確保它適用於所有條件,需要一些建議 –