Stein算法Php实现function steincore($a,$b) { if ($a == 0) {return $b;} if ($b == 0) {return $a;} while (($a & 1) == 0) { $a=$a>>1; } if ($a<$b) { $b=($b-$a)>>1; return steincore($b,$a); } else { $a=($a-$b)>>1; return steincore($a,$b); } }function stein($a,$b) { $c=0; while ((($a & 1)==0)&&(( $b & 1 )==0)) { $a=$a>>1; $b=$b>>1; $c=$c+1; } if (($a & 1) == 0) { $a=$a>>1; return steincore($a,$b)<<$c; } else { return steincore($b,$a)<<$c; }}//通过改善流程省去了低效的a,b交换,同时用while循环代替了过多的递归,以节约空间和时间
//迭代过程化为子过程以减少不必要的判断//子过程中只有减法运算后的值可能为偶数所以只需要对$a判断是否为偶数
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。