Thema Datum  Von Nutzer Rating
Antwort
28.01.2012 00:20:21 Zcore
NotSolved
Blau Makro interpretieren
29.01.2012 18:32:02 Till
*****
Solved
29.01.2012 21:00:35 Zcore
NotSolved

Ansicht des Beitrags:
Von:
Till
Datum:
29.01.2012 18:32:02
Views:
894
Rating: Antwort:
 Nein
Thema:
Makro interpretieren

Hi,

dabei handelt es sich um einen Algorithmus zur Auflistung aller möglichen Kombinationen von n Elementen aus k möglichen Elementen (mit Wiederholung).

(war aber eigentlich der Ansicht es wäre k aus n, aber egal)

Ich habe mal ein paar Kommentare hinzugefügt:

i = 1 'ohne funktionelle bedeutung
For j = 1 To n 'zeile 1 bis n auf 1 setzen
   Cells(1, j) = 1
Next
kombinationszahl = k ^ n
For i = 2 To kombinationszahl
   For j = 1 To n
      Cells(i, j).Value = Cells(i - 1, j) 'wert der vorherigen zeile eintragen
   Next
   For j = n To 1 Step -1 'rückwärts zählen, von n auf 1
      If Cells(i, j) < k Then 'wenn der index jeder spalte der aktiven zeile kleiner als die anzahl der kombinierbaren elemente (k) ist dann
         Cells(i, j) = Cells(i, j) + 1 'index um 1 erhöhen
         j = 1 'und die schleife beenden (schleifenvariable=schleifenende (j=1), alternativ exit for)
      Else
         Cells(i, j) = 1 'wenn n bereits erreicht wurde wieder mit 1 anfangen, z.B.: _
         Zeile (i) = Zeile(i-1) = 3 = k, also wird in Zeile (i) eine 1 eingetragen wenn in der darüberliegenden Zeile eine 3 bzw. n steht
      End If
   Next
Next

Lösungsweg für deine Aufgabe:

hallo n=2, k=3

n Spalten und k^n Zeilen > 2 Spalten und 9 Zeilen

Die erste Zeile enthält immer nur Einsen.

Z1: 1,1

Die zweite Zeile entspricht der Ersten, wenn die letzte Zelle der zweiten Spalte < k=3 ist dann wird um 1 erhöht und mit der nächsten Zeile weitergemacht.

Z2: 1,2

Z3: 1,3

Z4: 1,3

Da die letzte Zelle in Zeile 4 nicht < als k ist wird der Zellenwert nicht erhöht und die zweite Schleife nicht abgebrochen, stattdessen wird der Wert auf 1 gesetzt und der Wert der nächsten Zelle (falls dieser < k ist usw.) um 1 erhöht:

Z4: 2,1

usw...

 

Gruß

Till


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
28.01.2012 00:20:21 Zcore
NotSolved
Blau Makro interpretieren
29.01.2012 18:32:02 Till
*****
Solved
29.01.2012 21:00:35 Zcore
NotSolved