Re: [請益] 判斷gcd的程式 但是我看不太懂QQ

看板PHP作者 (寶貝豬)時間17年前 (2008/11/06 07:36), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
嗚..我不知求gcd的函數居然也可以寫得如此詭異..X( 這段程式 $i 的意思原是指從最小質數2開始一個個代 入檢查 $x2 跟 $y2 是否有公因數. 若有, 則將其乘 入gcd當中, 然後各自除以 $i 後繼續做運算求公因數. 直到測完所有可能是其公因數的數字. $i=1 的意思等於是要讓for迴圈能夠繼續從最小質數 2開始, 繼續抓出新的一組$x2, $y2的公因素, 抓到的 話就乘入gcd當中. 這段求gcd的碼老實說寫得很不友善, 不太容易懂, 而 且用來檢測公因數的方式也很沒效率. 還有這種在迴圈內擅改迴圈控制變數的寫法也可能讓程 式產生很難追蹤的bug. ※ 引述《mike7788 (mike)》之銘言: : <? : $x2 = rand(1,100); : $y2 = rand(1,100); : $gcd = 1; : for ($i=2;$i<=100/2;$i++) : {if ($x2%$i==0&&$y2%$i==0) : {$gcd*=$i; $x2/=$i; $y2/=$i; $i=1;}} : echo $gcd ; : ?> : 看不懂的地方是 $i=1代表什麼意思呢 : 如果不加那段 就沒辦法得到正確的gcd : 小弟我還是新手 : 希望各位高手幫忙解答 感激 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.253.114 ※ 編輯: bobju 來自: 211.74.253.114 (11/07 04:33)

11/09 09:01, , 1F
感恩
11/09 09:01, 1F
文章代碼(AID): #194YuFCi (PHP)
文章代碼(AID): #194YuFCi (PHP)