ホームページ  >  記事  >  バックエンド開発  >  2 つのアルゴリズムについてお聞きしてもよろしいでしょうか?

2 つのアルゴリズムについてお聞きしてもよろしいでしょうか?

WBOY
WBOYオリジナル
2016-06-13 13:37:201099ブラウズ

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 コード
<?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>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。