---
title: "Random array endast med unika nr"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/109637-random-array-endast-med-unika-nr"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Hakanrode"
published: "2004-08-20T06:03:04.000Z"
updated: "2004-08-21T17:27:20.000Z"
replies: 9
views: 535
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/109637-random-array-endast-med-unika-nr"
---

# Random array endast med unika nr

## #1 — Hakanrode, 2004-08-20T06:03Z

Hej!

Skrev den här frågan inne på visual basic för ett par dagar sedan men har inte fått något svar därför hoppas jag att det är okej att jag frågar här också.

Skulle uppskatta enormt om någon kunde ge mig ett förslag på en loop som slumpar fram unika tal att lägga i en array.

I mitt fall skall talen vara inom 1 - 35 och Arrayen 7 platser stor. Men det har jag ju redan klart. Men hur ser jag till att inte få samma tal framslumpat 2 ggr i samma "slumpning"?

Jättetacksam för svar!

Permalänk: https://www.webforum.nu/p/109637

## #2 — Ciliax, 2004-08-20T06:31Z

hmmm Låter som en standard skoluppgift där man ska skapa en lottorad.

Kan jag ha rätt i mina misstankar? :)

Vilket språk använder du?

Permalänk: https://www.webforum.nu/p/1416797

## #3 — Gladh, 2004-08-20T07:11Z

Det finns lite olika sätt. Ett är att kontrollera så att det nummer du får inte redan finns slumpad. Det gör man genom att spara ner alla slumpade tal i en array och sedan när man slumpar ut ett nytt tal så kollar man i array att talet inte finns och lägger till det, om det finns så slumpar man ett nytt. Som du förstår så är det inte så effektivt.

Ett annat alternativ är att du skapar en arry som innehåller 35 poster: Talet 1-35.
Sedan så skapar du en randomizer som slumpar ett tal mellan 0 och längden på din array (som just nu är 35). När du sedan slumpar ut ett tal så plockar du ut den posten från array vilket gör att du nu endast har 34 poster , du spara det tal som du plockat ut från arrayn i en ny array som tar 7 poster.

När du sedan slumpar nästa gång så har du endast 34 poster och kan alltså inte få samma post 2 gånger. Så fortsätter du tills du plockat ut 7 poster.

\- Magnus

Permalänk: https://www.webforum.nu/p/1416802

## #4 — Dino, 2004-08-20T09:19Z

```
public void LottoMachine()
{
   ArrayList col = new ArrayList();
   Random rnd = new Random();
   for(int i = 0; i < 7; i++)
   {
      int x;
      do 
      {
         x = rnd.Next(1, 36);
      }
      while(col.Contains(x));
      col.Add(x);
   }
            
   foreach(int i in col)
      Response.Write(i.ToString() + "<br/>");
}

Public Sub LottoMachine()
   Dim col As New ArrayList()
   Dim rnd As New Random()
   Dim i As Integer
   For i = 0 To 6
      Dim x As Integer
      Do
         x = rnd.Next(1, 36)
      Loop While col.Contains(x)
      col.Add(x)
   Next i
   
   Dim i As Integer
   For Each i In  col
      Response.Write((i.ToString() + "<br/>"))
   Next i
End Sub 'LottoMachine
```

Permalänk: https://www.webforum.nu/p/1416841

## #5 — Hakanrode, 2004-08-21T06:44Z

Tack alla för de kloka svaren!

Och nej, det är faktiskt ingen skoluppgift!

Tack Gladh för att du satte in mig i ett bra tankesätt, det kan vara värdefullt även senare.

Permalänk: https://www.webforum.nu/p/1417262

## #6 — Hakanrode, 2004-08-21T07:05Z

Hej igen,

jag försökte med en bit av Dinos kod men kompilatorn säger att contains och add is not a member of system.array.

Vad har jag glömt?

Permalänk: https://www.webforum.nu/p/1417264

## #7 — Vimp, 2004-08-21T08:12Z

Använder du verkligen en ArrayList och inte en Array?

Permalänk: https://www.webforum.nu/p/1417271

## #8 — Hakanrode, 2004-08-21T08:15Z

Hej Vimp!

Så här har jag angett den

        Dim rad(6) As ArrayList

Permalänk: https://www.webforum.nu/p/1417272

## #9 — Vimp, 2004-08-21T15:30Z

Skriv så här istället:

Dim rad As New ArrayList

Permalänk: https://www.webforum.nu/p/1417407

## #10 — Hakanrode, 2004-08-21T17:27Z

Tack Vimp! Det fungerar!

Permalänk: https://www.webforum.nu/p/1417461

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/109637-random-array-endast-med-unika-nr
