Re: [問卦] 這段code要怎麼打?已回收
看板Gossiping作者a1919979 (\(|)/ 斯巴拉西 \(|)/)時間6年前 (2018/04/17 01:09)推噓1(1推 0噓 4→)留言5則, 3人參與討論串15/18 (看更多)
原題其實可以很簡單的簡化為幾何的全等來說明。但是考量要以程式碼實作我們還是從相對
輕鬆的集合來下手吧!
在比較{2,3,4},{4,5,6},{1,2,6}這三個集合是否幾何排序上相似,最簡單的方式就是作歸
一化(?)後再比較。
這裡的歸一化函數F()很簡單,將集合中某個元素藉由平移擺到1的位子即可。而平移的作法
也只是簡單將集合內各元素作同減運算罷了。
即我們可藉由
F(2,3,4)={2-1,3-1,4-1}={1,2,3}
及
F(4,5,6)={4-3,5-3,6-3}={1,2,3}
兩者歸一化後結果相同來簡單的判定兩集合相似!
不過針對{1,2,6}呢?
很顯然{1,2,3}!={1,2,6}
然而這是我們忽視掉可以平移到位子1的不僅僅是編號最小的元素這點。若我們針對位子6去
作平移,可以得到F(6,1,2)={1,-4,-3}這種怪怪的集合。
實際上這又是忽視了位子1往回平移一格在這種情形下並不是跑到不存在的位子0而是位子6
的事實。考量至此實際上F(6,1,2)={1,6-4=2,6-3=3}={1,2,3}。
總結來說要判斷{a,b,c},{x,y,z}是否相似
等同於只要判斷
F(a,b,c)==F(x,y,z)
or F(a,b,c)==F(y,z,x)
or F(a,b,c)==F(z,x,y)
的真假值即可
至於F()怎麼寫?自己的作業自己作啊!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.148.197
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1523898559.A.CE0.html
→
04/17 01:09,
6年前
, 1F
04/17 01:09, 1F
→
04/17 01:11,
6年前
, 2F
04/17 01:11, 2F
推
04/17 01:13,
6年前
, 3F
04/17 01:13, 3F
→
04/17 01:15,
6年前
, 4F
04/17 01:15, 4F
→
04/17 01:15,
6年前
, 5F
04/17 01:15, 5F
討論串 (同標題文章)
完整討論串 (本文為第 15 之 18 篇):
問卦
-33
88