vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Das Programm 
Autor: Zardoz
Datum: 27.04.03 23:43

Hallo keeper,
hier mein Programm. Es liegt in 2 Versionen vor. Einmal als einfache
(hoffentlich verständliche) Lösung und einmal als geschwindigkeits-
optimierte Lösung.
1. Die einfache Version:
'Benötigt werden: 1 Label, 1 Listbox
Option Explicit
 
Private Sub Form_Activate()
 
Dim A%, B%, C%, D%, E%, F%, S1%
Dim Min%, Max%, Summe() As Double, T1!, T2!
 
T1 = Timer
Min = 1 + 2 + 3 + 4 + 5 + 6
Max = 49 + 48 + 47 + 46 + 45 + 44
ReDim Summe(Min To Max)
For A = 1 To 49
  For B = A + 1 To 49
    Label1.Caption = A & "/" & B
    DoEvents
    For C = B + 1 To 49
      For D = C + 1 To 49
        For E = D + 1 To 49
          For F = E + 1 To 49
            S1 = A + B + C + D + E + F
            Summe(S1) = Summe(S1) + 1
          Next F
        Next E
      Next D
    Next C
  Next B
Next A
List1.Clear
For A = 1 To 49
  For B = A + 1 To 49
    Label1.Caption = A & "/" & B
    DoEvents
    For C = B + 1 To 49
      For D = C + 1 To 49
        For E = D + 1 To 49
          For F = E + 1 To 49
            S1 = A + B + C + D + E + F
            If Summe(S1) * S1 = CDbl(A) * B * C * D * E * F Then
              List1.AddItem A & " / " & B & " / " & C & " / " & D & " / " & E & _
                " / " & F
            End If
          Next F
        Next E
      Next D
    Next C
  Next B
Next A
T2 = Timer
Label1.Caption = Format((T2 - T1), "0.00") & " Sek."
 
End Sub
2. Die geschwindigkeitsoptimierte Version:
'Benötigt werden: 1 Label, 1 Listbox
Option Explicit
 
Private Sub Form_Activate()
 
Dim A%, B%, C%, D%, E%, F%, i%, Min%, Max%, Summe() As Double
Dim S1%, S2%, S3%, S4%, S5%, T1!, T2!
Dim P1&, P2&, P3 As Double, P4 As Double
 
T1 = Timer
Min = 1 + 2 + 3 + 4 + 5 + 6
Max = 49 + 48 + 47 + 46 + 45 + 44
ReDim Summe(Min To Max)
For A = 1 To 49
  For B = A + 1 To 49
    S1 = A + B
    Label1.Caption = A & "/" & B
    DoEvents
    For C = B + 1 To 49
      S2 = S1 + C
      For D = C + 1 To 49
        S3 = S2 + D
        For E = D + 1 To 49
          S4 = S3 + E
          For F = E + 1 To 49
            S5 = S4 + F
            Summe(S5) = Summe(S5) + 1
          Next F
        Next E
      Next D
    Next C
  Next B
Next A
For i = Min To Max
  Summe(i) = Summe(i) * i
Next i
List1.Clear
For A = 1 To 49
  For B = A + 1 To 49
    P1 = A * B
    S1 = A + B
    Label1.Caption = A & "/" & B
    DoEvents
    For C = B + 1 To 49
      P2 = P1 * C
      S2 = S1 + C
      For D = C + 1 To 49
        P3 = P2 * D
        S3 = S2 + D
        For E = D + 1 To 49
          P4 = P3 * E
          S4 = S3 + E
          For F = E + 1 To 49
            If Summe(S4 + F) = P4 * F Then
              List1.AddItem A & " / " & B & " / " & C & " / " & D & " / " & E & _
                " / " & F
            End If
          Next F
        Next E
      Next D
    Next C
  Next B
Next A
T2 = Timer
Label1.Caption = Format((T2 - T1), "0.00") & " Sek."
 
End Sub
Es gibt noch mehr solcher Rätsel, deren Lösung auf solche Schleifen hinausläuft.
z.B. Das 8-Damen-Problem:
Wieviele Möglichkeiten gibt es, 8 Damen so auf einem Schachbrett zu platzieren,
ohne daß sie sich, nach den Schachregeln, gegenseitig bedrohen (schlagen können)?

oder die 9-stellige Zahl:
Gesucht wird eine 9-stellige Zahl, die aus den Ziffern von 1 bis 9 besteht (keine
Ziffer kommt doppelt vor). Die ersten beiden Stellen der Zahl sind ohne Rest durch
2 teilbar, die ersten 3 Stellen der Zahl sind ohne Rest durch 3 teilbar usw. bis
zur 9. Stelle.


Gruß

Zardoz
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Rätsel nur mit dem Computer?1.448keeper27.04.03 01:12
Re: Rätsel nur mit dem Computer?1.019Analyzer27.04.03 02:11
Ich fand sie nämlich hier nicht!895Analyzer27.04.03 02:22
Re: Ich fand sie nämlich hier nicht!785keeper27.04.03 02:34
Re: Ich fand sie nämlich hier nicht!757Analyzer27.04.03 03:06
Re: Ich fand sie nämlich hier nicht!754keeper27.04.03 03:15
Prima 778Analyzer27.04.03 04:08
Re: Ich fand sie nämlich hier nicht!114Zardoz27.04.03 17:36
Re: Ich fand sie nämlich hier nicht!740keeper27.04.03 18:00
Das Programm133Zardoz27.04.03 23:43
Könntet Ihr das Märchen auch für die reale Welt austragen?741Second Edition28.04.03 00:16
Re: Könntet Ihr das Märchen auch für die reale Welt austrage...774keeper28.04.03 15:04
Ohne Zahlen, so denn:761Analyzer27.04.03 03:17
Re: Ohne Zahlen, so denn:763keeper27.04.03 03:23
Weiter:755Analyzer27.04.03 03:27
Re: Weiter:843keeper27.04.03 03:29

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel