![]() |
.NET C# generera rondom sifta med avstånd?
Hej,
behöver lite hjälp med att skapa ett litet script i C# där man ska kunna generera en lista på 20 random siffor med minst 10 tal emallan. ex. randomsiffran blir 55 lägg den i listan nästa randomsiffra blir 50 slumpa om så det minst skiljer sig +- 10 från nån annan siffra i listan nya randomsiffra blir 84 lägg den i listan gör om 20 gånger... efter 20 gånger ska det finns 20 random siffror i listan där alla siffror har ett avstånd på minst +-10 tal emallan sig. |
Kod:
int startnumber = 55; Bara lägga det i någon loop för att få ut flera värden. |
Citat:
|
Alltid kul med starta dagen med en tankeställare :)
Kod:
class Program |
tackar! var exakt det jag leta efter!
|
Citat:
- Givet - Vi slumpar en siffra mellan 0 och 99 (vi kallar maxvärdet x) - Distributionen är uniform, det är alltså lika stor chans att få 1 som 10 (givet att x >= 10). - Ett 'försök' nedan är ett anrop till 'randomGenerator.Next'. - Vi vill hitta y siffror, te.x 5 och 15. - Exempel: - Försök 1: 0 returnerades. Ok - 1 till 10 är nu inte längre giltiga nummer. - Försök 2 till 10: De ogiltiga siffrorna 2 till 10 returnerades. - Försök 11: 11 returnerades. Ok. - Alltså: - Vid försök 1 är sannolikheten att få 0: 1/100 (100 siffror totalt mellan 0 och 99) - Chansen att få 11 är nu (10 / 100 - 1), alltså 11% då siffrorna 2 till 10 betyder att vi måste välja på nytt. - Tredje gången: (20 / 100 - 2). - Sista gången: 10 * (y - 1) / (x - y - 1) Det är alltså större chans att få en senare vald siffra än en tidigare. Generellt sett skulle ja inte rekommendera den här metoden. |
Alla tider är GMT +2. Klockan är nu 07:54. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson