PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的要领说明
本篇章节讲授PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的要领。分享给各人供各人参考,详细如下: 回环矩阵指的是一个从一开始,不绝凭证上、右、下、左次序依次增大的矩阵序列,例: 此刻要求: 输入: m、n,别离代表行数和列数 输出: m * n 的回环矩阵 例: 输入: 输出: 接下来我们用 PHP 来实现,这里我们将其封装成函数挪用 第一种思绪直接凭证上、右、下、左的次序举办遍历,计较好遍历层数就OK了 = $startY; $d--) { $res[$r-1][$d] = $start; $start += 1; } // 左 for ($l = $r - 1 - 1; $l >= $startX + 1; $l--) { $res[$l][$d+1] = $start; $start += 1; } } // 输出 for ($i = 0; $i < $row; $i++) { for ($j = 0; $j < $col; $j++) { echo $res[$i][$j] . " "; } echo ""; } } snake(7,8); 第二种思绪这种思绪与第一种思绪相同,不外是通过一个 while 所有遍历,然后通过一个符号位 up right down left 来判定与修改当前偏向,通过 while 内的 if 来对符号位举办判定,这种就不贴代码了 第三种思绪行使一个迭代器来节制偏向,然后举办 m * n 次轮回,通过判定宽高和 isset 来确定是否转弯,思绪很棒,代码量大大镌汰,暗示没有想到这种方法。。 rewind(); list($_x,$_y) = $iterator->current(); $result = []; $result[$x][$y] = $s; for ($i = $s+1; $i < ($s + $w * $h); $i++) { $new_x = $x + $_x; $new_y = $y + $_y; if (0 <= $new_x && 0 <= $new_y && $new_x < $w && $new_y < $h && !isset($result[$new_x][$new_y])) { $result[$new_x][$new_y] = $i; $x = $new_x; $y = $new_y; } else { $iterator->next(); list($_x,$_y) = $iterator->current(); $i--; } } // 打印 for ($i = 0; $i < $h; $i++) { for ($j = 0; $j < $w; $j++) { echo $result[$j][$i],"t"; } echo ""; } } PS:这里再为各人保举几款在线计较器材供各人参考行使: 在线一元函数(方程)求解计较器材: 科学计较器在线行使_高级计较器在线计较: 在线计较器_尺度计较器: 更多关于PHP相干内容感乐趣的读者可查察本站专题:《》、《》、《》、《》、《》、《》、《》、《》及《》 但愿本文所述对各人PHP措施计划有所辅佐。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |