-4

私は一連の数字を持っており、S = [1,2,3,4,5,6];それらの間で可能なすべてのペアを作成したいのですが、ペアが繰り返されないことを知っておく必要があります。

私はこれを使用しました:-

$pairs = array('1','2','3','4','5','6');
$count = count($pairs);
$array = array();
for($i = 0;$i <= $count; $i++){
    for($j = 1; $j < $count; $j++){
        if($i < $j){
            $array[$i][] = $pairs[$i].','.$pairs[$j];
        }
    }
}

私はこのようなものが欲しい:-

S = [1,2,3,4,5,6];

[1,2],[1,3],[1,4],[1,5],[1,6]
[2,3],[2,4],[2,5],[2,6]
[3,4],[3,5],[3,6]
[4,5],[4,6]
[5,6]

誰かがより良い提案を持っている場合は、できるだけ早く返信してください.

4

1 に答える 1

0

配列に対して二重にネストされたforeachループを構築し、ペアを構築して、それらが既に取得されているかどうかを確認します。

擬似コード:

pairs = []
foreach(entry in array) {
    foreach(entry2 in array) {
        pair = [entry, entry2]
        if(!alreadyexists(pair in pairs) {
            add(pair to pairs)
        }
    }
}
havefun()

ところで: 自分で何かを試してみても、けがをすることはありません。この問題はかなり些細なことです。

于 2013-04-18T07:01:48.427 に答える