Just nu i M3-nätverket
Gå till innehåll
Snow Brigade

hur många siffror kan generas?

Rekommendera Poster

Snow Brigade

Hej!

 

Jag har ett litet problem som jag behöver räkna ut för ett experiment. Jag undrar helt enkelt hur många sex-siffriga kombinationer man kan generera med siffrorna 1,2,3,4,5, och 6 med följande restriktioner: inga kombinationer får innehålla en viss siffra på mer än två ställen i en kombination och en siffra får inte upprepas direkt efter sig själv, så 123456 är ok, liksom 134134, 156432, 462123, o s v, men INTE 143362 (två st 3:or i rad), eller 123262 (2 på tre ställen). Alla siffror behöver inte vara med i kombinationen heller, så 145241 innehåller inte 3 eller 6 men är ändå ok.

 

Nån som kan räkna ut det? Jag har inte en aning om hur jag ska göra. Jag behöver veta det för att kunna räkna ut hur stor sannolikhet det är att folk skulle generera kombinationer ur en viss delmängd (som jag har koll på) av ovanstående mängd av ren slump. Jag behöver den informationen för ett psykologiskt experiment.

 

/Tobias

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
PerboMan

Tänk så här:

Det du har är sex kulor, vardera med en siffra (1-6).

Om du drar dem en i taget så har du för första positionen 6 att välja på, för andra 5, osv.

Alltså är antalet varianter 6*5*4*3*2*1 =360.

 

/Pär B

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Snow Brigade

Ok, men jag undrar om du har tagit in all information i uppgiften. Du kan generera repetitioner också, så det är inte bara 6 kulor som du drar egentligen.

 

Tack för svaret i alla fall. Jag tror dock inte att det stämmer.

 

/Tobias

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
PerboMan

 

Oj då...

Jag läste inte allt, och missade visst en del information...

Det skulle ju betyda att du för första tecknet har 6 val, för andra har du 5, för tredje har du 5, för fjärde har du 5, för femte har du antingen 4 eller 5 och för sjätte 3, 4 eller 5.

Hmmm, hur räknar man ut det?

 

/Pär B

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
jannejanne

För den första siffran har du 6 möjligheter.

För den andra siffran har du 5 möjligheter.

För den 3: har du 5 möjligheter

För den 4: har du 5 möjligheter

För den 5: har du 5 möjligheter

För den 6: har du 5 möjligheter

Antal kombinationer=6*5^5=18750

tror jag

 

Hmm fel ovan möjliggör samma siffra 3 ggr så antalet kombinationer är

<18750.

 

[inlägget ändrat 2006-09-21 09:59:39 av jannejanne]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
PerboMan

Oj, oj, oj.

Krävdes lite klurande här.

 

I den bifogade bilden visar jag hur jag tänkt, det finns alldeles säkert något annat enklare sätt.

Vänstra delen visar de giltiga valen, och högra delen hur många det blir.

 

/Pär B

 

 

[bild bifogad 2006-09-21 11:04:41 av PerboMan]

867029_thumb.jpg

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Snow Brigade

Hej, och tack för svaren. Jag undrar om det är någon som skulle kunna hjälpa mig att generera dessa i en Excel-fil. D v s att jag får dom i en kolumn, som innehåller sekvenser, t ex 124512, 134262, o s v. D v s alla kombinationer som går att generera på det här sättet (se ovan).

 

Eller går det att göra så stora Excelfiler. Blir ju många rader...

 

M V H

Tobias

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
PerboMan

Det krävs VBA.

Jag mixtrade först med lite nästlade loopar, men sen insåg jag att den effektivaste lösningen var att gå igenom alla möjliga och bara behålla de som uppfyllde villkoren.

 

Sub Koder()
Dim Koder(16080)
ReDim Koll(9)
raknare = 1
' Gå igenom samtliga tal mellan 121234 och 656543
For G = 121234 To 656543
 ReDim Koll(9)
 ' Första siffran
 A = Int(G / 100000)
 ' Om den inte är mellan 1 och 6 hoppa till nästa
 If A > 6 Or A < 1 Then GoTo Nytt_Nummer
 Koll(A) = 1
 ' Andra siffran
 B = Int(G / 10000) - A * 10
 ' Om den inte är mellan 1 och 6 eller
 ' är samma som förra - nästa
 If B > 6 Or B < 1 Or A = B Then GoTo Nytt_Nummer
 Koll( = Koll( + 1
 ' Tredje siffran
 C = Int(G / 1000) - A * 100 - B * 10
 ' Om inte 1-6 eller samma som förra - nästa
 If C > 6 Or C < 1 Or B = C Then GoTo Nytt_Nummer
 Koll(C) = Koll(C) + 1
 ' Fjärde siffran
 D = Int(G / 100) - A * 1000 - B * 100 - C * 10
 ' Om inte 1-6 eller samma som förra eller två förut - nästa
 If D > 6 Or D < 1 Or C = D Or Koll(D) = 2 Then GoTo Nytt_Nummer
 Koll(D) = Koll(D) + 1
 ' Femte siffran
 E = Int(G / 10) - A * 10000 - B * 1000 - C * 100 - D * 10
 ' Om inte 1-6 eller samma som förra eller två förut - nästa
 If E > 6 Or E < 1 Or D = E Or Koll(E) = 2 Then GoTo Nytt_Nummer
 Koll(E) = Koll(E) + 1
 ' Sjätte siffran
 F = G - A * 100000 - B * 10000 - C * 1000 - D * 100 - E * 10
 ' Om inte 1-6 eller samma som förra eller två förut - nästa
 If F > 6 Or F < 1 Or E = F Or Koll(F) = 2 Then GoTo Nytt_Nummer
 ' Skriv till matrisen
 Koder(raknare) = G
 raknare = raknare + 1
Nytt_Nummer:
Next G

' Skriv ut alla koder
For F = 1 To 16080
 Worksheets(2).Cells(F, 1) = Koder(F)
Next

End Sub

 

/Pär B

 

[inlägget ändrat 2006-10-27 17:00:32 av PerboMan]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Snow Brigade

O shit alltså....=) Det var inte dåligt.

Tack för det!

 

Nu är jag ju lite lost här, så jag vet inte riktigt vad jag ska göra med detta. VBA, är det Visual Basic eller nåt sånt?

Du har inte möjlighet att lägga in det i en Excelfil och lägga upp den här, eller maila mig på Tobias.Johansson@psychology.lu.se

 

Det skulle vara suveränt!

Ursäkta min inkompetens.

 

M V H

Tobias

 

 

TILLÄGG: Det har löst sig med lite hjälp. Tack så mycket för hjälpen! Finemang alltså! Vilka resurser det finns.

 

[inlägget ändrat 2006-10-27 22:10:03 av Snow Brigade]

[inlägget ändrat 2006-10-27 23:44:34 av Snow Brigade]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...