AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zahl in Summanden zerlegen

Ein Thema von DeerHunter · begonnen am 15. Jun 2004 · letzter Beitrag vom 15. Jun 2004
Antwort Antwort
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#1

Re: Zahl in Summanden zerlegen

  Alt 15. Jun 2004, 06:43
Man kann das noch ein bißchen optimieren. Idee:

Code:
z=20    ; Zahl X
n= 5    ; Summanden

k=1  k=2  k=3  k=4  k=5
16
14
13
12
11
10
 9
 8    9
 7    7
 6    6    7
 5    5    5    6
 4    4    4    4    5
 3    3    3    3    3
 2    2    2    2    2
 1    1    1    1    1

höchster Wert einer Spalte:
 (z-(n-k+1))/k+1
Das sollten alle möglichen Kombinationen von Summanden enthalten. Wenn man nun die Zahl aufbaut einfach von der rechten Spalte an immer eine Zahl nehmen, dann eine Spalte nach links und eine Zahl die größer-gleich der letzten ist nehmen. Damit dürften auch keine Dopplungen mehr auftreten.

Delphi-Quellcode:
uses sysutils;

{
  n: Anzahl Summanden
  k: aktueller Summand (start bei k=n)
  z: Zahl X
  s: aktuelle Summe
  l: letzter Summand (start bei 1)
  str: aktuelle Zahl
}


procedure zahl(n,k,z,s,l: Integer; str: String);
var
  i: Integer;
begin
  if k=0 then
  begin
    if(s=z) then
      writeln(str);
    exit;
  end;

  for i:=l to ((z-(n-k+1)) div k)+1 do
    zahl(n,k-1,z,s+i,i,str+inttostr(i)+' ');
end;

begin
  { Zahl 20 in 5 Faktoren zerlegen }
  zahl(5,5,20,0,1,'');
end.
(kA ob da alle Lösungen rauskommen... müßte man mal überprüfen )
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz