|
| nemmeste måde at vælge 10 unikke tal på. Fra : Mark - Jensen - |
Dato : 13-10-04 12:54 |
|
Forestil jer at I har 1000 tal. (0-999)
Der skal vælges 10 unikke tal indenfor det spektrum.
Min løsning er mindre elegant, derfor vil jeg gerne vide hvordan man
mest fordelagtigti ville gøre det.
(min løsning)
id1=rand(0,$resultater-1);
$id2=rand(0,$resultater-1);
while ($id2 == $id1) {
$id2=rand(0,$resultater-1);
}
$id3=rand(0,$resultater-1);
while (($id3 == $id1) || ($id3 == $id2)) {
$id3=rand(0,$resultater-1);
}
Etc, selvsagt bliver det mindre smart jo flere tal man skal bruge :o
| |
Kristian Thy (13-10-2004)
| Kommentar Fra : Kristian Thy |
Dato : 13-10-04 13:09 |
| | |
Mark - Jensen - (13-10-2004)
| Kommentar Fra : Mark - Jensen - |
Dato : 13-10-04 13:33 |
|
On 13 Oct 2004 12:09:05 GMT, Kristian Thy <thy@it.edu> wrote:
>Mark - Jensen - uttered:
>> Forestil jer at I har 1000 tal. (0-999)
>>
>> Der skal vælges 10 unikke tal indenfor det spektrum.
>
>$nums = range(1,$resultater);
>shuffle($nums);
>$rands = array_slice($nums,0,10);
>
>\\kristian
Niice, Jeg fik et andet forslag med en for-løkke, men det her virker
klart nemmest.
| |
Christian Joergensen (13-10-2004)
| Kommentar Fra : Christian Joergensen |
Dato : 13-10-04 21:13 |
|
On Wed, 13 Oct 2004 12:09:05 +0000, Kristian Thy wrote:
>> Forestil jer at I har 1000 tal. (0-999)
>>
>> Der skal vælges 10 unikke tal indenfor det spektrum.
>
> $nums = range(1,$resultater);
> shuffle($nums);
> $rands = array_slice($nums,0,10);
Reelt set, kunne man begynde at argumentere om unoedigt resurseforbrug
- men det vil jeg undlade ;)
--
Christian Jørgensen | Use the Source, Luke!
http://www.razor.dk |
| |
Tommy Ipsen (13-10-2004)
| Kommentar Fra : Tommy Ipsen |
Dato : 13-10-04 19:08 |
|
Mark - Jensen - wrote:
> Forestil jer at I har 1000 tal. (0-999)
>
> Der skal vælges 10 unikke tal indenfor det spektrum.
for($i=0;$i<10;$i++) echo $i;
Mvh Tommy
| |
Kristian Thy (13-10-2004)
| Kommentar Fra : Kristian Thy |
Dato : 13-10-04 19:19 |
| | |
Tommy Ipsen (13-10-2004)
| Kommentar Fra : Tommy Ipsen |
Dato : 13-10-04 20:32 |
|
Kristian Thy wrote:
> Tommy Ipsen uttered:
>
>>>Forestil jer at I har 1000 tal. (0-999)
>>>
>>>Der skal vælges 10 unikke tal indenfor det spektrum.
>>
>>for($i=0;$i<10;$i++) echo $i;
>
> Du får medaljen :)
Forstår heller ikke, hvorfor det var nødvendigt med alt det dér
"tilfældighedsnoget"
Mvh Tommy
| |
Thomas Lindgaard (13-10-2004)
| Kommentar Fra : Thomas Lindgaard |
Dato : 13-10-04 21:37 |
|
On Wed, 13 Oct 2004 13:53:37 +0200, Mark - Jensen - wrote:
>
>
> Forestil jer at I har 1000 tal. (0-999)
>
> Der skal vælges 10 unikke tal indenfor det spektrum.
Utestet naturligvis:
<?php
$nums = array();
while ( count($nums) != 10 )
{
$rand = rand(0, $resultater - 1);
if ( !isset($nums[$rand]) ) $nums[$rand] = 1;
}
$nums = array_keys($nums);
?>
Virker nok bedst når man har et stort spektrum i forhold til det antal
man vil udvælge (giver mindre sandsynlighed for at vælge samme tal flere
gange).
Mvh.
/Thomas
| |
|
|