<?php function Solve($pNinzuuCnt){ $Answer = 0; for($I=0;$I<=$pNinzuuCnt;$I++){ for($J=0;$I+$J<=$pNinzuuCnt;$J++){ $K= $pNinzuuCnt - $I - $J; $MaxVal = max($I,$J,$K); $MaxCnt = 0; if($I === $MaxVal) $MaxCnt++; if($J === $MaxVal) $MaxCnt++; if($K === $MaxVal) $MaxCnt++; if($MaxCnt === 1){ $Answer++; } } } echo "{$pNinzuuCnt}人だと{$Answer}通り"; echo PHP_EOL; } Solve( 4); // 12 Solve(100); //5100
4人だと12通り 100人だと5100通り
組み合わせを列挙してます。