看板 Prob_Solve 關於我們 聯絡資訊
※ 引述《lO (今天早上)》之銘言: : 假設我現在有好幾萬筆資料要處理 : 每一筆資料的型態都是不一樣的字串 : 現在我將每一筆字串逐字轉成整數 : 並乘上不同的質數後相加 : 譬如說像這樣: : "ABC" => (int)'A'*2+(int)'B'*3+(int)'C'*5 : 是否能保證只要原本的字串有任何一位不同 : 就不會有相同的數字出現呢? : 自己稍微證明了一下 : 也不是很有把握 : 所以上來問問大家@@ (1) for {A1:'a', A2:'a'}, A1*P1 + A2*P2 = A2*P1 + A1*P2, 不過,對 "aa" 來說,調換二字位置仍是 "aa" ,沒影響. (2) for {A1:'k', A2:'k+1'}, A1*P1 + A2*P2 = k*P1 + (k+1)*P2 = k*(P1+P2) + P2 A2*P1 + A1*P2 = (k+1)*P1 + k*P2 = k*(P1+P2) + P1 看起來OK. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.112.170
LPH66:你這只是原字串的重排而已...原PO要的是任何字串 07/31 02:03
yauhh:哦,沒看懂原文意思 07/31 02:50
yuscvscv:"ms" == "B C" ? 07/31 16:22
yuscvscv:(109*2) + (115*3) == (66*2) + (32*3) + (67*5) 07/31 16:25
yuscvscv:還是要同長度的? 07/31 16:26
yauhh:各種字串比較異質性,一定會先比對長度,然後是內容 08/01 13:32
yuscvscv:"AAB" == "BBA" 08/02 00:04
yuscvscv:(66 * 2) + (66 * 3) + (65 * 5) 08/02 00:05
yuscvscv:(65 * 2) + (65 * 3) + (66 * 5) //上面那個是後式 08/02 00:06
yuscvscv:兩者值會相等 只要吻合"xxy" "yyx",(x,y任代 08/02 00:07
yuscvscv:(乘法結合率而已 08/02 00:08
yauhh:對耶,會有二個質數和是另一個質數 08/02 02:15