Re: [請益] 判斷gcd的程式 但是我看不太懂QQ
嗚..我不知求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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章