AGB  ·  Datenschutz  ·  Impressum  







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

Teilermenge ermitteln

Ein Thema von Nicolai1234 · begonnen am 18. Aug 2005 · letzter Beitrag vom 22. Aug 2005
Antwort Antwort
Seite 1 von 3  1 23      
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#1

Teilermenge ermitteln

  Alt 18. Aug 2005, 23:36
Hallo,
in meinem aktuellen Projekt benötge ich die Teilermengen von Zahlen.
Also z. B. T9={1,3,9}

Klar kann ich diese mit einer Schleife errechnen; das finde ich aber nicht so schön bzw. Schleifen dauern bei großen Zahlen einfach zu lang...
Ich habe schon gesucht, aber nichts gefunden:
Gibt es ein rechnerisches Verfahren, um die Teilermengen bzw. deren Anzahl zu berechen?

Besonders die Anzahl ist mir wichtig.

Vielen Dank im voraus
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#2

Re: Teilermenge ermitteln

  Alt 18. Aug 2005, 23:56
Bisher gibt es keine besseren Verfahren, ansonsten könnte RSA u. ä. einpacken, da die darauf basieren, dass man eine Zahl nur per Brute-Force faktorisieren (in die Teiler zerlegen) kann. Nützlich könnten hier Lookup-Tables oder Primfaktorzerlegung sein (dazu denk ich mir noch was aus).
  Mit Zitat antworten Zitat
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Teilermenge ermitteln

  Alt 19. Aug 2005, 17:29
Ich habe heute nochmal meinen Mathelehrer gefragt und er redete auch etwas über Primfaktorzerlegung.
Genaueres konnte er mir aber auch nicht sagen...
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#4

Re: Teilermenge ermitteln

  Alt 19. Aug 2005, 19:27
Bei der PFZ zerlegt man eine Zahl in die Primfaktoren. Am Ende steht dann in etwa 12=2*2*3. Die Teiler der Zahl sind die Primzahlen selber und alle Produkte aus den Primzahlen. Die Produkte per Function auszurechnen, das ist das Interessante (Frage am Rande: Wie erhalte ich das erste Element eines Arrays, welches dann auch entfernt wird?)... Vorteil (oder auch nicht) der PFZ gegenüber der direkten Bestimmung der Teiler: Laufzeit sqrt(n)+Produktbildung gegen n/2
  Mit Zitat antworten Zitat
Eichhoernchen

Registriert seit: 22. Apr 2004
Ort: Hagen
322 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Teilermenge ermitteln

  Alt 20. Aug 2005, 10:50
wie wäre es mit Rekursion, so haben wir das in der Schule gemacht!
Jan
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Teilermenge ermitteln

  Alt 20. Aug 2005, 11:20
Zitat von Eichhoernchen:
wie wäre es mit Rekursion, so haben wir das in der Schule gemacht!
naja, sagen wir so, jedes Iterativ lösbare Problem lässt sich auch rekursiv lösen, von daher: Ja.
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
CLRS530

Registriert seit: 27. Jun 2005
Ort: Hamburg
39 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Teilermenge ermitteln

  Alt 20. Aug 2005, 11:59
Das ist schonmal total falsch, du kannst jede rekursive Lösung iterativ machen (teilweise ziemlich umständlich, z. B. beim durchgehen der Ordner auf der Festplatte oder alle Wurzeln eines Trees).

Aber iterative Lösungen kannst du absolut nicht alle zu einer rekursiven machen.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Teilermenge ermitteln

  Alt 20. Aug 2005, 14:42
Zitat von CLRS530:
Das ist schonmal total falsch, du kannst jede rekursive Lösung iterativ machen (teilweise ziemlich umständlich, z. B. beim durchgehen der Ordner auf der Festplatte oder alle Wurzeln eines Trees).

Aber iterative Lösungen kannst du absolut nicht alle zu einer rekursiven machen.
Bitte zu letzter Aussage ein Beispiel.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

Re: Teilermenge ermitteln

  Alt 20. Aug 2005, 15:19
@CLRS530:
Delphi-Quellcode:
for i := 1 to 5 do
  maches (i);
=

Delphi-Quellcode:
procedure recurse (i: integer)
begin
  maches (i);
  if i < 5 then
    recurse (i + 1);
end;

recurse (1)
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#10

Re: Teilermenge ermitteln

  Alt 20. Aug 2005, 19:10
Zitat von CLRS530:
Das ist schonmal total falsch, du kannst jede rekursive Lösung iterativ machen (teilweise ziemlich umständlich, z. B. beim durchgehen der Ordner auf der Festplatte oder alle Wurzeln eines Trees).

Aber iterative Lösungen kannst du absolut nicht alle zu einer rekursiven machen.
Dann zeig mir bitte mal eine rein Iterative Variante der Ackermann-Funktion, das sollte deiner Meinung nach ja auf jeden Fall möglich sein.

Und wenn du schon dabei bist, dann zeig mir auch bitte eine Iterative Funktion, die sich nicht in eine Rekursion umwandeln lässt.
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 23:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz