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


Generera alla möjliga kombinationer

Postades av 2008-08-19 15:20:36 - Hampus Adamsson, i forum visual basic - allmänt, Tråden har 10 Kommentarer och lästs av 2883 personer

Jag är en relativt grön programerare som intresserat mig för vb, och naturligtvis stöter jag på problem redan i mitt första mer avancerade program. Således vänder jag mig till pellesofts expertis med frågan om det är möjligt att generera alla kombinationer utan att lita på "random" och mitt tålamod.

Målet är att jag ska loopa ett kommando så att alla kombinationer av en (exempelvis 4-siffrig kod) a-ö, 0-9, automatiskt textas i en sidoligande multi-textbox...

Hoppas jag gör mig förstådd!
//HA


Svara

Sv: Generera alla möjliga kombinationer

Postades av 2008-08-19 15:36:11 - Martin Adrian

Det du söker heter "shuffle". Googla på det (och VB) så hittar du säkert något.


Svara

Sv: Generera alla möjliga kombinationer

Postades av 2008-08-19 15:44:48 - Tomas Granlund

Vill du att kombinationerna ska genereras i ordning eller spelar det ingen roll?

T.ex.
0000
0001
...
000ö
0010
0011

o.s.v.


Svara

Sv:Generera alla möjliga kombinationer

Postades av 2008-08-19 16:18:01 - Hampus Adamsson

Ordningen spelar ingen roll.


Svara

Sv:Generera alla möjliga kombinationer

Postades av 2008-08-19 17:37:01 - Hampus Adamsson

Hittar inte något begripligt med "Shuffle", tyvär. Handlar det om att använda variabler för att loopa en funktion tills att alla kombinationer är utförda? Finns det måhända en länk eller ett utkast där jag kan stifta bättre bekantskap med denna funktion?


Svara

Sv: Generera alla möjliga kombinationer

Postades av 2008-08-20 09:39:07 - Tomas Granlund

En variant i .net:

' exempel på användning
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim resultat As List(Of String)
        Dim k As Bokstavskombinerare = New Bokstavskombinerare(New Char() {"a", "b"})
        resultat = k.GeMigAllaKombinationer(5)
    End Sub

    ' här händer det
    Private Class Bokstavskombinerare
        Private _teckenrymd As Char()
        Public Sub New(ByVal teckenrymd As Char())
            _teckenrymd = teckenrymd
        End Sub

        Public Function GeMigAllaKombinationer(ByVal längd As Integer) As List(Of String)
            Dim ord(längd - 2) As Char
            Dim resultat As New List(Of String)
            ' TODO: hantera längd < 1 et.c.
            GeMigAllaKombinationerHelper(ord, 0, resultat)
            Return resultat
        End Function

        Private Sub GeMigAllaKombinationerHelper(ByVal ord As Char(), ByVal startpos As Integer, ByVal resultat As List(Of String))
            If startpos > UBound(ord) Then
                For Each tecken As Char In _teckenrymd
                    resultat.Add(ord & tecken)
                Next
            Else
                For Each tecken As Char In _teckenrymd
                    ord(startpos) = tecken
                    GeMigAllaKombinationerHelper(ord, startpos + 1, resultat)
                Next
            End If
        End Sub
    End Class


Svara

Sv: Generera alla möjliga kombinationer

Postades av 2008-09-11 11:10:05 - Kenneth Axi

Det här låter som ett problem jag hade tidigare; Kolla/sök efter "Permutations" (tror jag att det hette)....


Svara

Sv: Generera alla möjliga kombinationer

Postades av 2008-09-14 10:24:57 - Jonas Sevelin

Jag vill ju inte spela besserwisser på något sätt men en fyrsiffrig kod baserad på a-ö samt 0-9 genererar drygt 2,3 milljoner kombinationer, lite många för en texbox kanske men över till frågan.
Jag kan tyvärr inte lämna ett VB svar men jag har gjort något liknande med SQL. Du skapar en kartesisk produkt genom att i 4 tabeller skriva in det som skall kombineras och därefter gör du en select utan join.

Tex. Vi har 4 tabeller benämda t1-t4 (orginellt va?) innehållandes värdena 0 och 1.

Select * from t1,t2,t3,t4

ger

0 0 0 0
0 0 0 1
osv
totalt 2^4 (16) kombinationer.

mvh
Jonas


Svara

Sv:Generera alla möjliga kombinationer

Postades av 2008-09-15 13:40:47 - Tomas Granlund

Lösningsförslag baserat på Jonas exempel:

DECLARE @teckentabell TABLE
(
	tecken char(1)
)
DECLARE @tecken int

SET @tecken = ASCII(0)

-- Lägg till siffror
WHILE @tecken < ASCII(9) + 1
BEGIN
	INSERT INTO @teckentabell(tecken) VALUES (CHAR(@tecken))
	PRINT CHAR(@tecken)
	SET @tecken = @tecken + 1
END

-- Små bokstäver
SET @tecken = ASCII('a')
WHILE @tecken < ASCII('z') + 1
BEGIN
	INSERT INTO @teckentabell(tecken) VALUES (CHAR(@tecken))
	PRINT CHAR(@tecken)
	SET @tecken = @tecken + 1
END
INSERT INTO @teckentabell(tecken) VALUES ('å')
INSERT INTO @teckentabell(tecken) VALUES ('ä')
INSERT INTO @teckentabell(tecken) VALUES ('ö')

-- alla möjliga kombinationer™
SELECT n1.tecken + n2.tecken + n3.tecken + n4.tecken 
FROM @teckentabell n1 
	CROSS JOIN @teckentabell n2 
	CROSS JOIN @teckentabell n3 
	CROSS JOIN @teckentabell n4


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 725
27 958
271 751
451
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