推 KennyKuo:太感謝你了Orz 我馬上去寫寫看^^ 06/24 20:22
※ 引述《KennyKuo (24歲了 吉他還是弱)》之銘言:
: 我也不確定是不是應該用List或是ArrayList,
: 剛剛試了很久都想不通該怎麼寫出我想計算的東西。
: 我的問題是在計算一個[分散程度]的問題:
: 假設有個List大小為9,內含的物件(字串)分別為A A A A B B C C C,
: 因為相同的A有4筆,B有2筆,C有3筆,是故,
: 其分散程度則為 1 - [(4/9)^2 + (2/9)^2 + (3/9)^2]
: 請問我該如何寫成程式呢???
: JAVA新兵跪求高手指導Orz
: 只要告訴我該使用的class、method與程式邏輯就好,不用po出程式碼。
: 拜託了T___T
輸入:S 字串
輸出:ret 分散程度
演算法:
01 ret := 1
02 N(S) := 0
03
04 for each s in S
05 N(s) := N(s) + 1
06 end for
07
08 for each index of N
09 ret := ret - (N(index) / (length of S)) ^ 2
10 end for
-----------------------------------------------------
<實例>
輸入:S = {a, a, a, a, b, b, c, c, c}
到 03 行的時候,ret = 1, N(a) = 0, N(b) = 0, N(c) = 0
到 07 行的時候,ret = 1, N(a) = 4, N(b) = 2, N(c) = 3
到 10 行之後,ret ≒ 0.642
-----------------------------------------------------
我看一下,這個程式可以用 hashtable 或 hashmap 來算。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.247.13