2008年8月8日 星期五

無限邊有權量的圖上求Hamiltonian cycle的長度



這幾天在想一個數學圖論的問題,就是假設edge(邊)的length(長度)為1, 0.1, 0.01, 0.001, 0.0001, 0.00001 ...


也就是edge為無限多個。


現在我們要求Hamiltonian cycle 的length((or Hamiltonian circuit) is a cycle in an undirected graph which visits each vertex exactly once and also returns to the starting vertex.)


 


假設所形成的graph是一個cycle,那麼其Hamiltonian cycle的length,顯然就是無窮等比級數:


1 + 0.1 + 0.01 + ... = 1/(1-0.1)=1/(0.9)=10/9


現在考慮同樣問題,但圖形換成complete graph


那麼假設vertex(點)的數目為n,edge數為E,


則 n(n-1)/2 = E


即 n^2 - n = 2E


得到 n^2 - n - 2E = 0


所以點數 n = (1+ sqrt(1- 4*(1)(-2E)))/2 (另一根為負,不合)


n = (1 + sqrt(1 + 8E))/2


so, if n屬於 integer, then sqrt(1+8E) 屬於 odd number


因為是complete graph,所以對於每一個vertex有 (1 + sqrt(1 + 8E))/2 - 1 個邊,


也就是有(sqrt(1 + 8E) - 1)/2個邊,


現在假設 某點 x 為 起點,


連出去的第一個邊長為 1 ,剩下與x相鄰的點 y2, y3, y4, ... yn,


其中y2連到y3的邊長為0.1,y3連到y4的邊長為0.01,


之後依此類推,直到yn連到x,


則其length長為 1 + (0.1( 1 - (1/10)^( (sqrt(1 + 8E) - 1)/2)) ( 1 - (1/ 10) )


因為E為無限多個,所以略小於


1 + (0.1)/(9/10) = 1 + 1/9 = (10/9)


同樣的道理,可以假設某點x連出去的邊長為 0.0001,


之後算其length長為 0.0001 + (0.00001( 1 - (1/10)^( (sqrt(1 + 8E) - 1)/2)) ( 1 - (1/ 10) )


得到略小於以下的結果:


0.0001 + (0.00001)/(9/10) = 0.0001 + 1/90000 小於 10/9,但大於 0


推測此問題再complete graph上求 Hamiltonian cycle時,


其length L 為 0 < L < 10/9


而對於所有圖形而言,因為每一邊長皆大於0,所以其length L為


0 < L =< 10/9


 


P.S. 如有錯誤,還請指教


Codewars: The Baum-Sweet sequence

這題列在7 kyu,我覺得有點難度,應該有6 kyu的程度了。 這題有數學題的感覺,我因為害怕TLE,加上我有感冒, 因此是直接問ChatGPT 4o怎麼解決, 沒想到一開始,ChatGPT是提供TLE的方法, 我再問ChatGPT要如何加快, 才給我夠快的方法, 看了ChatG...