2 つのアルゴリズムに関する質問
1. 長方形 O の幅 $ow と高さ $oh が与えられた場合、O の比率を変更せずに、幅が $dw を超えず、高さが $dw を超えないように O をスケールします。 $dh そして、最大面積の長方形 D について、長方形 D
2.a の幅 $nw と高さ $nh を求めます。行、$n は列、次の図のような形式の 2 次元配列を返します
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
b .convert($array) 関数を実装します。 $array は 2 次元配列であり、2 次元配列を返します。 $array の関係は上図のとおりです。そして下の図
16 17 18 19 20
15 14 13 12 11
6 7 8 9 10
5 4 3 2 1
お気軽に教えてください、ありがとうあなた!
-----解決策--- ------------------
これは割り当てられた課題ですか学校の先生によって?
よく考えて、自分の考えを明確にするのはそれほど難しいことではありません
1: 単なる比例式、判断するだけです
2: 偶数行と奇数行のルール
3: 上記と同じですが、最大数を見つけるだけです。
------解決策---------
<?php // 1 $rate=min($dw/$ow,$dh/$oh); $nw=$ow*$rate; $nh=$oh*$rate; // 2 関数 _print($m,$n){ for($i=1;$i<$m;$i++){ $c=range(($i-1)*$n+1,$i*$n); $arr[$i]=$i%2!=0?$c:array_reverse($c); } $arr を返します。 } $array=_print(5,5); print_r($array); // 3 関数変換($array){ foreach(array_reverse($array) as $k=>$a){ $arr[$k]=array_reverse($a); } $arr を返します。 } print_r(convert($array)); <div class="clear"></div>