![]() |
5 siffror i slumpmässig ordning? asp.net c#
Hej,
Nu kanske jag är trött en fredagsnatt... men hur kan jag i c# få 5 siffror i slumpmässig ordning? siffror ska vara 1-5 och samma siffra ska inte upprepas. ex 1 5 4 2 3 3 5 4 2 1 1 5 2 1 3 |
lyckades komma på lösningen själv...
Kod:
Random random = new Random(); |
Jag skulle rekommendera att du alltid tar för vana att lägga ut programkod i egna klasser så det ligger så lite kod i ASP/Webbsidorna som möjligt, nu se jag inte exakt hur du gjort men jag bidrar här även med en förbättring av din slumpfunktion, för den behöver initieras med ett slumpmässigt värde annars kommer den att upprepa samma sekvens av tal om du startar programmet i morgon.
För att testa att slumpmässigheten är effektiv så måste man anropa samma funktion många gånger i rad och se att man inte kan uppfatta en regelbundenhetr i slumtalen. Först lite testkod.... Kod:
// Class: Program Kod:
// Class: RandomNumber Kod:
// Class: Slump Namespace kan ju ändras till valfritt, eftersom det inte är något som krävs i övrigt av klasserna. |
Kod:
class MittProgram |
Ska vi tjafsa om kortaste koden så vill jag ha sista ordet:
Den här koden är allt som behövs för att sortera en lista i slumpmässig ordning om man kör C#: Kod:
static int seed = Environment.TickCount; |
Å här är samma lösning i Ruby
Kod:
(1..5).to_a.shuffle |
Citat:
|
Citat:
Det är ju inte så att implementeringen ser ut så här. http://imgs.xkcd.com/comics/random_number.png Så här säger dokumentationen, vilket verkar helt logiskt. Citat:
|
Jag jobbar ju inte med Ruby men i de flesta programspråk jag kört genom åren så måste man alltid själv definiera ett "frö", men som du visade så var det tydligen redan gjort i den funktion du använde.
Exempelvis skulle koden: Kod:
numbers = new List<int>() { 23, 17, 13, 44, 51, 68, 37, 58, 9 }; I NET kan man lägga tilll följande kodelement för att själv styra fröet som styr slumpgenereringen. Static framför seed-variabeln gör att variabeln håller kvar sitt värde om den ligger som klassvariabel i en slumptalsklass, trots att man anropar slumpmetoden som en staticmetod, vilken var en liten behändig egenskap i sig. Kod:
static int seed = Environment.TickCount; Listan skulle likväl kunnat innehålla följande värden: Kod:
static int seed = Environment.TickCount; |
Citat:
Kod:
[23, 17, 13, 44, 51, 68, 37, 58, 9].shuffle |
Alla tider är GMT +2. Klockan är nu 18:52. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson