Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Slumpmässigt val?

Postades av 2008-01-26 06:54:52 - Magnus Hallberg, i forum c# (c-sharp), Tråden har 3 Kommentarer och lästs av 1070 personer

Jag ska generera ett tal mellan t.ex. 1 - 200 och lagra det i en databas. Problemet jag har är att jag inte vet hur jag gör om det genereras ett tal som redan finns lagrat i databasen? Inträffar det vill jag generera ett nytt tal och fortsätta så tills jag får ett tal som inte finns lagrat.

Hur kan jag sedan hämta ut alla tal som finns lagrade och slumpmässigt välja ett av dom? Det är inte säkert att alla tal mellan 1 - 200 är valda.


Svara

Sv: Slumpmässigt val?

Postades av 2008-01-26 10:26:18 - Ruben Jönsson

Ett sätt att veta att ett tal är med endast en gång är att göra som när du blandar en kortlek.

Gör en array med 200 element. Skriv 1, 2, 3....198, 199, 200 i ordning till arrayn.

Slumpa sedan ut två olika index mellan 0-199 och växla plats på elementen med de indexen.

Om du sedan inte ska ha med alla elementen så slumpar du ut hur många från start av arrayn du ska ha med och slumpar sedan ut ett av dem.

Det här behandlar inte något med databasen utan endast med slumpandet.

/Ruben


Svara

Sv:Slumpmässigt val?

Postades av 2008-01-27 22:58:33 - Magnus Hallberg

Går det inte att använda Random()? vet inte riktigt hur det fungerar.


Svara

Sv: Slumpmässigt val?

Postades av 2008-01-28 12:56:04 - Magnus Bergström

Klart det gar att anvanda Random,

Random rand = new Random();
int myRandom = rand.Next(1,200);


Vet inte vad det basta sattet ar hur du ska gora med databasen, ska du iterera manga ganger eller ska du endast lagga in fa nummer? Ska mer an en anvandare ha tillgang till och kunna lagga in nummer i databasen?

Om endast en anvandare ska gora det kan du ha foljande teknik:

1. las av i databasen vilka nummer som finns och spara dem i en collection, lista elle hashtable kanske?

Eftersom du har alla databas-nummer i din lista och du vet att du ar den enda som kan lagga in grejer, behover du inte dubbelkolla varje gang i databasen. For varje nytt slumpnummer du lagger in i databasen, lagg till det i din lista ocksa.

2. Det jobbiga ar att kolla av ifall numret redan finns, du far kontrollera varje nummer du slumpar fram ifall det redan finns i din lista. Detta blir jobbigare (for datorn) desto fler nummer du har i din lista da det ar mindre chans att du traffar ett 'ledigt' nummer.

En annan teknik kan vara att du skapar en collectio dar du har slumptal som representerar de riktiga talen. Ex:

slumpa tal 1-10, du har redan tal: 1, 2, 4, 5, 7 i din lista.

Med den forsta tekniken kommer din generator att lyckas slumpa fram de redan upptagna talen, da maste du ignorera dessa och fortsatta med ett nytt. Detta kan ta lang tid nar du bara har 8 och 9 ledigt, da den kan sitte an formiddag och valja allt annat. I teorin kan den sitta och kora 1or i en timme...

Med den andra tekniken ar det annorlunda. i listan har du tal 3, 6, 8, 9 och 10 lediga, varfor inte da bara slumpa ett tal mellan 1 och 5 och lata dem representera lediga tal. far du i denna slumpning 3 reprensenterar den det tredje lediga talet (8). Nu har du bara fyra lediga tal kvar (3, 6, 9, 10) och slumpar da ett tal mellan 1 och 4. Du far 1 och tar da talet 3.
Pa detta sattet slipper du en massa 'doda' iterationer som bara sunkar ner din prestanda.

Kanske blir enklast att ha en collection med lediga tal istallet for upptagna tal?

Blev det helt virrigt nu eller forstar nagon vad jag menade?

mvh

Magnus


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 710
27 958
271 751
908
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies