WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Rekursiv Kombinatorik

 

uzcyi
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 66
Anmeldedatum: 22.12.15
Wohnort: Nähe Pforzheim
Version: ---
     Beitrag Verfasst am: 06.06.2017, 21:27     Titel: Rekursiv Kombinatorik
  Antworten mit Zitat      
Hallo uns zwar habe ich als Input:
Code:
A = [ 0,2,1];


und würde gerne das als Output erhalten
Code:

000
001
010
011
020
021
 

Wie wäre der Ansatz sieht ja nach einer Binären Reihenfolge aus.
wenn man die
020 ~ 100 ansieht und
021 ~ 101.
Das Code muss rekursiv sein ich stehe aufm Schlauch Sad

Vielen Dank nochmals
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.06.2017, 21:55     Titel:
  Antworten mit Zitat      
Hallo,

ich interpretiere A so: [0 bis 0, 0 bis 2, 0 bis 1]

Ein Beispiel für einen rekursiven Ansatz in einer ähnlichen Problemstellung findest du hier:
http://www.gomatlab.de/kombinierung-von-bauteilen-t43750.html

Grundidee: Abarbeiten der ersten Komponente, dann Aufruf der Funktion für alle anderen Komponenten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
uzcyi
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 66
Anmeldedatum: 22.12.15
Wohnort: Nähe Pforzheim
Version: ---
     Beitrag Verfasst am: 06.06.2017, 23:27     Titel:
  Antworten mit Zitat      
Hallo Harald,

habs so mal gelöst:


Code:
if rekursionstiefe == 1
    nZ            = numel(A);  % Anzahl der Elemente
    [zahl, ~]     = sort(A);   % Sortierung der Zahlen nach Grosse
    AnzM          = nZ*(nZ-1); % Anzahl der Moeglichkeiten
    for n = 1:AnzM
        a_n(n)            = 1;                              % Rekursion des 1.Elementen
        b_n(n)            = floor( (1/4)*(2*n-(-1^(n))+1)); % Rekursion des 2.Elementen
        c_n(n)            = floor( (1/2)* (3+(-1)^(n)));    % Rekursion des 3.Elementen
        zaehler(n,1:3) = [ ( zahl(a_n(n)) )', ( zahl(b_n(n)) )',( zahl(c_n(n)))' ]; % Zaehler bestimmen
    end
end


Das ist hier rekursiv gelöst mit der Rekursionstiefe 1.
Nun die nächste Frage:
1. Ist das so in Ordnung ?
2. Wie sollte ich für die Rekursionstiefe 2 bzw 3 vorgehen ? (Nach Aufgabenstelllung gefragt macht eigentlich keinen Sinn naja)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.