Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Zahlenkombination von 1 bis 4 erstellen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Zahlenkombination von 1 bis 4 erstellen (4751 mal gelesen)
CADdoctor
Mitglied
Technischer Zeichner (Versorgungstechnik)


Sehen Sie sich das Profil von CADdoctor an!   Senden Sie eine Private Message an CADdoctor  Schreiben Sie einen Gästebucheintrag für CADdoctor

Beiträge: 313
Registriert: 12.05.2007

Software:
AutoCAD MEP 2013
Excellink 2013
Windows 7 x64 Pro SP 1
Office 2010 SP 1
Mozilla Firefox 13.0.1
Mozilla Thunderbird 13.0.1<P>Hardware:
ASUS P6T WS Professional
Intel Core i7-920, 4x 2.67GHz
PNY Quadro FX 1800
Kingston HyperX DIMM XMP Kit 6GB
Kingston HyperX SSD 120GB, SATA 6Gb/s

erstellt am: 21. Sep. 2010 08:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo!

Ich will alle Kombinationen von 1 bis 4 auflisten lassen.
4! ergibt 24 Lösungen.
Ich bekomme aber mit meinem Code 204 Lösungen.
Was mache Ich falsch?

Option Explicit

Sub x()
  Dim p%, a%, b%, c%, d%, e%, f%, i&
  For p = 4 To 10
  For a = 1 To 4
      For b = 1 To 4
        For c = 1 To 4
            For d = 1 To 4
              For e = 1 To 4
                  For f = 1 To 4
                    If a + b + c + d + e + f = p Then
                        i = i + 1
                        Cells(i, 1).Resize(, 4) = Array(a, b, c, d, e, f)
                    End If
                  Next
              Next
            Next
        Next
      Next
  Next
  Next
End Sub

------------------
Mit freundlichen Grüßen

CADdoctor

[Diese Nachricht wurde von CADdoctor am 21. Sep. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Oberli Mike
Ehrenmitglied V.I.P. h.c.
Dipl. Maschinen Ing.



Sehen Sie sich das Profil von Oberli Mike an!   Senden Sie eine Private Message an Oberli Mike  Schreiben Sie einen Gästebucheintrag für Oberli Mike

Beiträge: 3728
Registriert: 29.09.2004

Excel 2010
128GB SSD
Windows 7

erstellt am: 21. Sep. 2010 08:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CADdoctor 10 Unities + Antwort hilfreich

Bei 4 Stellen gibt es 256 Lösungen

For a = 1 To 4
  For b = 1 To 4
    For c = 1 To 4
      For d = 1 To 4
        Range("A" & (a - 1) * 4 * 4 * 4 + (b - 1) * 4 * 4 + (c - 1) * 4 + d) = a & " " & b & " " & c & " " & d
        Next d
      Next c
    Next b
  Next a

Gruss
Mike

------------------

   
The Power Of Dreams

[Diese Nachricht wurde von Oberli Mike am 21. Sep. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Ehrenmitglied V.I.P. h.c.
IT Admin (CAx)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 21. Sep. 2010 08:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CADdoctor 10 Unities + Antwort hilfreich

Hallo CADdoctor,

Zitat:
Original erstellt von CADdoctor:
Ich will alle Kombinationen von 1 bis 4 auflisten lassen.
4! ergibt 24 Lösungen.
Ich bekomme aber mit meinem Code 204 Lösungen.
Was mache Ich falsch?

Hm, dein Code passt nicht zum Problem, vielleicht ist das die Ursache deiner "falschen" Lösung.

Zunächst müsstest du deine Aufgabe genauer spezifizieren: alle Kombinationen von 1 bis 4 auflisten - für wieviel Stellen? Einzigartig oder mit wiederholten Ziffern? Deine "Lösung" 4! passt du einer Permutation der Ziffern 1 bis 4 für eine genau vierstellige Zahl (ohne Wiederholungen). Dazu passt aber in keinster Weise die 7-fach geschachtelte Schleife in deinem Code.

Von daher, was willst du genau machen und inwiefern willst du das mit Code tun?

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de
Stefans SolidWorks Blog

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

erstellt am: 21. Sep. 2010 09:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CADdoctor 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von CADdoctor:
Hallo!

Ich will alle Kombinationen von 1 bis 4 auflisten lassen.
4! ergibt 24 Lösungen.
Ich bekomme aber mit meinem Code 204 Lösungen.
Was mache Ich falsch?

Option Explicit

Sub x()
  Dim p%, a%, b%, c%, d%, e%, f%, i&
  For p = 4 To 10
  For a = 1 To 4
      For b = 1 To 4
        For c = 1 To 4
            For d = 1 To 4
              For e = 1 To 4
                  For f = 1 To 4
                    If a + b + c + d + e + f = p Then
                        i = i + 1
                        Cells(i, 1).Resize(, 4) = Array(a, b, c, d, e, f)
                    End If
                  Next
              Next
            Next
        Next
      Next
  Next
  Next
End Sub


Laut dem Code hättest du nicht 4*6 sondern 4^6, was wiederum 4096 Kombinationen ausmachen würde, allerdings übernimmst du ja nur die Summe aller Zahlen von 4-10 ...  

------------------
MFG
Rick Schulz
          Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

[Diese Nachricht wurde von RSchulz am 21. Sep. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADdoctor
Mitglied
Technischer Zeichner (Versorgungstechnik)


Sehen Sie sich das Profil von CADdoctor an!   Senden Sie eine Private Message an CADdoctor  Schreiben Sie einen Gästebucheintrag für CADdoctor

Beiträge: 313
Registriert: 12.05.2007

Software:
AutoCAD MEP 2013
Excellink 2013
Windows 7 x64 Pro SP 1
Office 2010 SP 1
Mozilla Firefox 13.0.1
Mozilla Thunderbird 13.0.1<P>Hardware:
ASUS P6T WS Professional
Intel Core i7-920, 4x 2.67GHz
PNY Quadro FX 1800
Kingston HyperX DIMM XMP Kit 6GB
Kingston HyperX SSD 120GB, SATA 6Gb/s

erstellt am: 21. Sep. 2010 09:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Stefan,

Der Code von Oberli Mike ist genau das was Ich brauche.
Jedoch die einzelnen Zahlen in Spalten A bis D aufgeteilt.

1, alle Kombinationen von 1 bis 4 auflisten - für 4 Stellen
2, mit wiederholten Ziffern

4! ist da leider falsch! Mein Fehler!

------------------
Mit freundlichen Grüßen

CADdoctor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Ehrenmitglied V.I.P. h.c.
IT Admin (CAx)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 21. Sep. 2010 09:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CADdoctor 10 Unities + Antwort hilfreich

Nachtrag: wenn du diese Permutationslösungen haben möchtest könnte eine Codelösung so aussehen (ist wüst, ich weiß  ):

Code:
Sub BerechneAnzahl()

i = 0      ' gefundene Lösungen
For a = 1 To 4
    ' a kann einfach durchlaufen
   
    ' überspringen zurücksetzen
    skip_this_b = False
    For b = 1 To 4
        ' b darf nicht gleich a sein
        If b = a Then skip_this_b = True
               
        If skip_this_b = False Then
           
            skip_this_c = False
            For c = 1 To 4
               
                ' c darf nicht a oder b sein
                If c = a Then skip_this_c = True
                If c = b Then skip_this_c = True
               
                If skip_this_c = False Then
           
                    skip_this_d = False
                    For d = 1 To 4
                        ' und d darf nicht den ersten Ziffern entsprechen
                        If d = a Then skip_this_d = True
                        If d = b Then skip_this_d = True
                        If d = c Then skip_this_d = True
                       
                        If skip_this_d = False Then
                            ' aha, eine neue Lösung
                            i = i + 1
                            Debug.Print "Lösung " & i & ": " & a & b & c & d
                        End If
                        skip_this_d = False

                    Next d
                End If
                skip_this_c = False
            Next c
        End If
        skip_this_b = False
    Next b
Next a

End Sub


Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de
Stefans SolidWorks Blog

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Oberli Mike
Ehrenmitglied V.I.P. h.c.
Dipl. Maschinen Ing.



Sehen Sie sich das Profil von Oberli Mike an!   Senden Sie eine Private Message an Oberli Mike  Schreiben Sie einen Gästebucheintrag für Oberli Mike

Beiträge: 3728
Registriert: 29.09.2004

Excel 2010
128GB SSD
Windows 7

erstellt am: 21. Sep. 2010 09:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CADdoctor 10 Unities + Antwort hilfreich

[Edit]Vorgängerantwort editiert, Diese Antwort passte nun nicht mehr [/Edit]

------------------

   
The Power Of Dreams

[Diese Nachricht wurde von Oberli Mike am 21. Sep. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADdoctor
Mitglied
Technischer Zeichner (Versorgungstechnik)


Sehen Sie sich das Profil von CADdoctor an!   Senden Sie eine Private Message an CADdoctor  Schreiben Sie einen Gästebucheintrag für CADdoctor

Beiträge: 313
Registriert: 12.05.2007

Software:
AutoCAD MEP 2013
Excellink 2013
Windows 7 x64 Pro SP 1
Office 2010 SP 1
Mozilla Firefox 13.0.1
Mozilla Thunderbird 13.0.1<P>Hardware:
ASUS P6T WS Professional
Intel Core i7-920, 4x 2.67GHz
PNY Quadro FX 1800
Kingston HyperX DIMM XMP Kit 6GB
Kingston HyperX SSD 120GB, SATA 6Gb/s

erstellt am: 21. Sep. 2010 09:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo!

Der Wert 4 sollte die untere Grenze darstellen. (1+1+1+1)
Der Wert 10 (leider Falsch da 16) sollte die obere Grenze darstellen. (4+4+4+4)

------------------
Mit freundlichen Grüßen

CADdoctor

[Diese Nachricht wurde von CADdoctor am 21. Sep. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

erstellt am: 21. Sep. 2010 09:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CADdoctor 10 Unities + Antwort hilfreich

Müsste es dann nicht so aussehen 
Code:
Sub x()
  Dim a%, b%, c%, d%, i&
  For a = 1 To 4
      For b = 1 To 4
          For c = 1 To 4
              For d = 1 To 4
                  i = i + 1
                  Cells(i, 1).Resize(, 4) = Array(a, b, c, d)
              Next
          Next
      Next
  Next
End Sub

rauskommen müssten 256 Kombinationen...

------------------
MFG
Rick Schulz
      Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 21. Sep. 2010 09:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für CADdoctor 10 Unities + Antwort hilfreich

  
Zitat:
Original erstellt von CADdoctor:
Hallo Stefan,
Der Code von Oberli Mike ist genau das was Ich brauche.
Jedoch die einzelnen Zahlen in Spalten A bis D aufgeteilt.

1, alle Kombinationen von 1 bis 4 auflisten - für 4 Stellen
2, mit wiederholten Ziffern

4! ist da leider falsch! Mein Fehler!


  

Zitat:
Original erstellt von CADdoctor:
Hallo!

Der Wert 4 sollte die untere Grenze darstellen. (1+1+1+1)
Der Wert 10 (leider Falsch da 16) sollte die obere Grenze darstellen. (4+4+4+4)


Irgendwie passt etwas nicht zusammen bzw. ist unvollständig oder ich verstehe es einfach nicht. Wolltest du nun alle Kombinationen, nur die, die in Summe 4-16 ergeben, oder doch nur die, die in Summe 4-10 ergeben?           

Ergänzung: Okay habs nun nochmal gelesen und auch verstanden. Irgendwie ist mir der Code von Oberli entgangen. Die Anzeige war eben etwas buggy... Ich bin hier aber raus, da es mir zuviel Exel ist   

------------------
MFG
Rick Schulz
           Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

[Diese Nachricht wurde von RSchulz am 21. Sep. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz