Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Combinaties Lottonummers.  (gelezen 22641 keer)

0 leden en 2 gasten bekijken dit topic.

Offline danny147

  • Oplosser
  • ****
  • Berichten: 564
  • Geslacht: Man
  • Lotto, de sleutel tot het succes.
Re: Combinaties Lottonummers.
« Reactie #15 Gepost op: 16 november 2007, 10:35:45 »
Beste Eric  ;)

Van Acces heb ik niet veel kaas van gegeten zoals bij u het geval is (lees ik).

Zou er dan iemand de volledige code nog eens op het scherm kunnen plaatsen met alle aanpassingen erbij.

Groetjes Danny.  :)
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz 1200
SAMSUNG_NP1234567890
Intel(R) HD Graphics 4000 2112MB -
Realtek High Definition Audio
Nr: 1 Model: Hitachi HTS727575A9E364
C:\ NTFS 670,11GB 494,48GB 8 080MB
AV: Trend Micro Maximum Security

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Combinaties Lottonummers.
« Reactie #16 Gepost op: 16 november 2007, 13:09:47 »
Zoals uitgelegd
plak code in excel module
je ziet meteen een rode lijn: doe die weg
probeer code te runnen (functietoets F8 = step-by-step)
je krijgt foutmelding
verwijder telkens die lijn

je hoeft niet eens na te denken: VBA doet de job grotendeels voor jou door telkens te waarschuwen (dankzij "option explicit")
de code door Diezel gepost met deze veranderingen: als ik het goed heb moeten er nog een paar dingetjes aangepast worden: zie vorige opmerkingen (39 ==> 38)
Option Explicit
Private Sub Cmd1_Click()
'Code geschreven door Diezel
'Versie 13/11/2007

Dim bal(6) As Byte
Dim Teller As Double
Dim j As Byte
Dim Lottocombinatie As String
Dim Antwoord As String
Dim IntTeller As Integer

Teller = 0
bal(1) = 1


IntTeller = 1

For j = 6 To 42

IntTeller = j + 1

bal(6) = IntTeller

If IntTeller = 43 Then
j = 0
bal(5) = bal(5) + 1
End If


If bal(5) > 41 Then
bal(4) = bal(4) + 1
bal(5) = bal(4)
End If

If bal(4) > 40 Then
bal(3) = bal(3) + 1
bal(4) = bal(3)
End If

If bal(3) > 39 Then
bal(2) = bal(2) + 1
bal(3) = bal(2)
End If

If bal(2) = 39 Then
bal(1) = bal(1) + 1
bal(2) = bal(1)

End If

If bal(1) > 37 Then GoTo einde

'clean en sweep hen eruit
If IntTeller = 43 Then GoTo Verder
If bal(6) <= bal(5) Then GoTo Verder
If bal(5) <= bal(4) Then GoTo Verder
If bal(4) <= bal(3) Then GoTo Verder
If bal(3) <= bal(2) Then GoTo Verder
If bal(2) <= bal(1) Then GoTo Verder



On Error Resume Next
     Open "C:\WINDOWS\Desktop\Lotto1.txt" For Output As #1 'Open file for output.
Lottocombinatie = bal(1) & ";" & bal(2) & ";" & bal(3) & ";" & bal(4) & ";" & bal(5) & ";" & bal(6)
Print #1, Lottocombinatie
Teller = Teller + 1

Verder:

 Next j


einde:
Close #1
 
 
Antwoord = "De tekstfile is ok"


 Antwoord = Teller

 
MsgBox "De lottolijst met combinaties" & vbCrLf _
       & Space(1) & "is weggeschreven", vbInformation + 0, "Lottocombinaties"
    Exit Sub
 
End Sub
NB: Space mag blijven staan in tegenstelling tot wat ik voorheen zei: zie helpfiles voor "space"

daag,
Erik

Offline danny147

  • Oplosser
  • ****
  • Berichten: 564
  • Geslacht: Man
  • Lotto, de sleutel tot het succes.
Re: Combinaties Lottonummers.
« Reactie #17 Gepost op: 17 november 2007, 15:39:27 »
Beste Erik  ;)

Heb de code in een module gestopt in VBA en de code aangepast zoals deze (39 ==> 38)

Na een tijdje verschijnt er "De lottolijst met combinaties is weggeschreven."
Heb op OK geklikt.

Maar waar zijn ze nu naar toegeschreven, ik vind ze nergens.

Heb ook gehoord dat VBA codes in excel 2003 niet goed reageren in excel 2007 ???

Groetjes Danny.  :)
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz 1200
SAMSUNG_NP1234567890
Intel(R) HD Graphics 4000 2112MB -
Realtek High Definition Audio
Nr: 1 Model: Hitachi HTS727575A9E364
C:\ NTFS 670,11GB 494,48GB 8 080MB
AV: Trend Micro Maximum Security

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Combinaties Lottonummers.
« Reactie #18 Gepost op: 17 november 2007, 19:38:38 »
In de code staat:
"C:\WINDOWS\Desktop\Lotto1.txt"
Heb je op je desktop een tekstbestand klaarstaan?

Offline danny147

  • Oplosser
  • ****
  • Berichten: 564
  • Geslacht: Man
  • Lotto, de sleutel tot het succes.
Re: Combinaties Lottonummers.
« Reactie #19 Gepost op: 17 november 2007, 20:38:01 »
Beste Erik en Diezel.  ;)

Het is gelukt.  :)  :)

Heb de 39 veranderd in 38.

If bal(2) = 39 Then
bal(1) = bal(1) + 1
bal(2) = bal(1)

"C:\WINDOWS\Desktop\Lotto1.txt" veranderd in "C:\Users\Danny\Desktop\Lotto1.txt"

En ja hoor de cijfers van deze avond stonden er tussen
4;20;23;30;33;37  in mijn text bestandje.

Als je nu alle combinaties op formulieren invult dan kost dat 524786 combinaties x €0.50 = €2622893.
Verzekerd dat ge 6 punten hebt, maar winst aan overhouden ??  ???

Laatste vraagje, kan je nu ook berekenen hoeveel keer ik dan 6, 5+, 5, 4 en 3 punten heb met deze combinaties.  ;D

P.S. Het was gefikst op 2 à 3 minuten (snel hé zoeen bestandje)

Groetjes Danny.  :)


Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz 1200
SAMSUNG_NP1234567890
Intel(R) HD Graphics 4000 2112MB -
Realtek High Definition Audio
Nr: 1 Model: Hitachi HTS727575A9E364
C:\ NTFS 670,11GB 494,48GB 8 080MB
AV: Trend Micro Maximum Security

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Combinaties Lottonummers.
« Reactie #20 Gepost op: 17 november 2007, 22:28:02 »
Danny, Erik, Diezel, Van harte proficiat met het behaalde resultaat. Uiteraard was ik óók begonnen met deze quest, maar toen ik jullie resultaten vergeleek met die van mij, heb ik de hoop maar opgegeven. Ik was nog wat aan't rommelen met diverse geneste lussen, maar had daarvoor al 4 minuten nodig om 6 van de benodigde 81 kolommen 'te vullen'.
Danny, ik hoop dat je niet je hele vermogen in de lotto stopt. Ruim 2,6 miljoen euro voor 1 keertje met alle combinaties mee te spelen is nog niet wat... ;) ;D ;D
En daarbij... De GROOTSTE winnaar van een loterij is nog altijd degene die de loterij uitschrijft!

Met je vraag over je 'te behalen winsten' bij 3, 4, 5, 5+ en 6 getallen goed kan ik je helaas niet zelf helpen. Ik zal 't morgen 'ns aan een zwager van me vragen (= wiskunde docent). Hij heeft daar vast mooie formules voor.

Groet, Leo

EDIT: Toch nog ff nagedacht over die combinaties... Ik kwam tot de volgende conclusie
  A           B           C               
1 combinaties aantal goed aantal niet goed
2 1           6           0               
3 37          5           1               
4 703         4           2               
5 9.139       3           3               

Sheet1

[Table-It] version 07 by Erik Van Geit
RANGE FORMULA (1st cell)
A2:A5 =COMBIN(42-B2,C2)
C2:C5 =6-B2

[Table-It] version 07 by Erik Van Geit
Volgens mij klopt dit wel...
______________________________

Groet, Leo

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: Combinaties Lottonummers.
« Reactie #21 Gepost op: 20 november 2007, 02:41:29 »
Hier uitvoerbare code aan 30 seconden

Vriendelijke groet,
Diezel
'Code geschreven door Diezel
'Versie 21/11/2007
'30 seconden op kloksnelheid 2,6 Ghz en 1gb ram

'Declaratie van de variabelen
Dim bal1 As Byte
Dim bal2 As Byte
Dim bal3 As Byte
Dim bal4 As Byte
Dim bal5 As Byte
Dim bal6 As Byte
Dim j As Byte
Dim Teller As Long
Dim start, einde, elapsed

'Tijd starten
start = Timer
'Bal1 krijgt de beginwaarde 1 om nulwaarden tijdens uitvoeren te voorkomen
bal1 = 1

'We zetten de teller op nul
Teller = 0

'De map waarin ons lottoproject zit, komt de tekstfile te staan
Open CurrentProject.Path & "\LottoCombinaties.txt" For Output As #1
 

'Als bal1 38 is dan moet de procedure verlaten en beindigd worden.
If bal1 = 38 Then GoTo einde

'Lus j
For j = 6 To 43 Step 1

bal6 = j

'Reeks If voorwaarden
If j = 43 Then
j = bal5
bal5 = bal5 + 1
bal6 = j

If bal5 > 41 Then
bal4 = bal4 + 1
bal5 = bal4
End If

If bal4 > 40 Then
bal3 = bal3 + 1
bal4 = bal3
End If

If bal3 > 39 Then
bal2 = bal2 + 1
bal3 = bal2
End If

If bal2 > 38 Then
bal1 = bal1 + 1
bal2 = bal1

End If
End If

If bal6 <= bal5 Then GoTo Verder
If bal5 <= bal4 Then GoTo Verder
If bal4 <= bal3 Then GoTo Verder
If bal3 <= bal2 Then GoTo Verder
If bal2 <= bal1 Then GoTo Verder


'Het wegschrijven van de combinatie in de tekstfile
Write #1, bal1, bal2, bal3, bal4, bal5, bal6
 
'Telkens als we een combinatie hebben weggeschreven, tellen we er eentje bij.
'Op het einde van de procedure weten wij hoeveel combinaties er zijn weggeschreven.
Teller = Teller + 1

Verder:

Next j

'De tijd stoppen
 einde = Timer

'verstreken tijd
 elapsed = einde - start

'tekstfile sluiten
 Close #1

einde:
'We geven een passende boodschap op het einde van de procedure

MsgBox Round(elapsed, 2) & " seconden voor " & Teller & " combinaties", vbInformation, "Lottocombinaties"

Exit Sub   

OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline DeKurt

  • Lid
  • *
  • Berichten: 13
  • Geslacht: Man
  • Any fool can know. The point is to understand.
Re: Combinaties Lottonummers.
« Reactie #22 Gepost op: 20 november 2007, 12:02:13 »
Diezel

Blij te zien dat de declaratie van je variabelen nu in een juiste vorm gebeuren. Om je seconde uit te sparen zou ik niet langer alle conversiefuncties (cbyte,...) gebruiken. De meeste zijn immers totaal overbodig aangezien je ze al in je dim statement als byte of als long hebt opgegeven.

met vriendelijke groet

DeKurt
Standaard emailprogramma: Office Outlook
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 7

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: Combinaties Lottonummers.
« Reactie #23 Gepost op: 25 november 2007, 18:43:25 »
Ik heb al onze code's getest ivm lottocombinaties op een Duo Core E6750 CPU 2,6 ghz en daar klopt ie af op 16 seconden.

Vriendelijke groet,

Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

 


www.combell.com