challenge n人中m人が当選するくじ

n人の中から公平にm人を選ぶ、くじ引きプログラムを作ってください。

Posted feedbacks - PHP

PHPで。
$m > $n の時、全員が選ばれます
1
2
3
4
5
6
<?php
function lot($n, $m) {
   $a = range(1, $n);
   shuffle($a);
   return array_slice($a, -$m);
}

PHP勉強中
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
print <<< END_DOC
<HTML>
<HEAD><title>doukaku 04</title>
</HEAD><BODY>
END_DOC;

function doukaku04($n, $m)
{
    $a = array();
    for($i = 0; $i < $n; $i++){
        $r = mt_rand(0, $i - 1);
        array_push($a, $a[$r]);
        $a[$r] = $i;
    }
    
    return array_slice($a, 0, $m);
};

foreach(doukaku04(10, 5) as $d){
    print "$d,";
}

print <<< END_DOC
</BODY>
</HTML>
END_DOC;
?>

Index

Feed

Other

Link

Pathtraq

loading...