Op 21-12-2009 22:41, John Bokma schreef:
> Luuk <luuk@invalid.lan> writes:
>
>> Op 21-12-2009 21:39, John Bokma schreef:
>>> Luuk <luuk@invalid.lan> writes:
>>>
>>>> Sla de cijfers die je gevonden hebt op in een array,
>>>> En controleer na elk gevonden cijfer of die al voorkomt in die array
>>>> Als het cijfer al voorkomt, sla je het cijfer niet op, maar bepaalt een
>>>> nieuw cijfer
>>>
>>> Dit is een erg slechte manier om dit aan te pakken. Een veel betere
>>> manier is om 1..25 in een array op te slaan, dit array te "schudden"
>>> (shuffle), en dan neem je (bijvoorbeeld) de 1e 5 getallen.
>>>
>>> Jouw manier zal in veel gevallen voor een niet-uniforme verdeling
>>> zorgen, en ik gok dat dat juist wel de bedoeling is.
>>>
>>
>> Kan je dat bewijzen?
>>
>> Of is dit een vermoeden dat de verdeling anders is...
>>
>> Ik denk dat het niks uitmaakt (statistisch gemiddeld)
>
> Maar kan je dat bewijzen?
>
> En ja, ik denk wel dat ik dat kan bewijzen, maar het zal mij de nodige
> tijd kosten. Maar laten we even aannemen dat het jouw vermoeden juist
> is. Ben je het eens dat mijn oplossing mooier is?
>
> (Let op: schrijf de shuffle niet zelf, want de meeste naive vormen van
> shufflen zorgen voor een niet-uniforme verdeling (uit mijn hoofd)).
>
Jou oplossing is alleen mooier als de 25 in het voorbeeld dicht bij de 5
te kiezen getallen komt.
Als bijvoorbeeld 5 getallen uit een rij van 10000 getallen moeten worden
getrokken is mijn benadering sneller.
Over die 'niet-uniforme verdeling' maak ik me in ieder geval geen
zorgen. Mocht het nodig zijn om dit wel te doen vanwege die PRNG
(pseudo-random number generator) die je elders in deze draad word
genoemd, dan is daar ook nog wel een 'random' oplossing voor te verzinnen.
--
Luuk

Likes:

Quote