Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
756to760
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

pytagoräisches Tripel

pytagoräisches Tripel
27.04.2006 10:32:04
Georg
Hallo,
ich möchte pytagoräische Tripel berechnen, die aus Ganzzahlen bestehen und deren Summe nicht größer 40 ist; also a^2 + b^2 = c^2 ~f~mit
~f~a+b+c&lt40 .
Bin für alle Hinweise dankbar
Schöne Grüße
Georg

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: pytagoräisches Tripel
27.04.2006 10:46:13
AndreasG
Hallo Geaorg,
mal nur als Ansatz:
alle Kombinationen für a,b,c bis je zur Zahl 40 aufschreiben (lassen). Dann die löschen, die in Summe größer 40 sind, dann in Pythagoras einsetzen und prüfen lassen, ob das Ergebnis wahr ist.
Frage noch offen
Grüsse
Andreas
AW: pytagoräisches Tripel
27.04.2006 11:20:11
bst
Auch Hallo,
sowas vielleicht ?
cu, Bernd
--
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub x()
    Dim a%, b%, c%
    
    For a = 1 To 40
        For b = 1 To 40 - a
            For c = 1 To 40 - a - b
                If a ^ 2 + b ^ 2 = c ^ 2 Then Debug.Print a, b, c
            Next
        Next
    Next
End Sub

Anzeige
AW: pytagoräisches Tripel
27.04.2006 11:42:07
AndreasG
Hallo bst,
ich verweigere mich ja konsequent VBA, aber der Ansatz kann doch nicht ganz stimmen (oder kann ich nur den Code nicht lesen?)
Demnach kann doch c "For c = 1 To 40 - a - b" nie 40 werden, aber lt. ursprünglichem Ansatz sollte das doch möglich sein
Grüsse
Andreas
AW: pytagoräisches Tripel
27.04.2006 11:57:41
bst
Hi,
> Demnach kann doch c "For c = 1 To 40 - a - b" nie 40 werden,
Nein. ES kann hier max. 38 werden, was auch ausreicht.
Da a und b jeweils mindestens 1 sein sollten. 0 macht IMHO hier einfach keinen Sinn.
Und ja die Summe aus a+b+c cu, Bernd
AW: pytagoräisches Tripel
27.04.2006 12:15:31
Ralf
Hi bst,
die 0 solltest Du nicht einfach unterschlagen. Damit unterschlägst Du ja z. Bsp. solche Kombinationen wie: 0 ^2 + 0^2 + 1^2, 0^2 + 1^2 + 1^2,... 0^2 + 30 ^2 + 9^2...
23^2 + 15^2 + 0^2... usw. Diese Kriterien entsprechen alle der Vorgabe und keine davon ist 0. Einzige Ausnahme: a = 0, b =0, c =0
Trotzdem, eine schöne Lösung von Dir!
Ciao, Ralf
Anzeige
AW: stümmt rein mathematisch...
27.04.2006 12:27:39
AndreasG
aber ein Dreieck bei dem eine Kantenlänge 0 ist, ist auch kein Dreieck ;-))
Grüsse
Andreas
AW: stümmt rein mathematisch...
27.04.2006 12:58:38
Ralf
Hi bst,
sicher? Du meinst, es handelt sich dabei um eine schizophrene Strecke, die glaubt ein Dreieck zu sein? :-)
Genaugenommen handelt es sich i.d.R. um 2 schizophrene Strecken. a und b mit jeweils unterschiedlicher Länge. Oder ist es weniger eine medizinische sondern eher eine philosophische Frage? Ist ein Dreieck, dass wir nicht als solches wahrnehmen, ein Dreieck?
Schon Tucholsky beschäftigte sich ausgiebig mit ähnlichen Fragen. Ein Loch ist das Vorhandensein von Nichts. Aber, ist ein Loch, das gestopft wurde, noch ein Loch? Wenn nicht, wohin ist es verschwunden? In's Nichts? Ein Loch im Loch, durch die Beseitigung des Loches? Ein Doppelloch?
Schwierig, schwierig...:-)
Ciao, Ralf
Anzeige
AW: pytagoräisches Tripel
27.04.2006 12:03:48
Ralf
Hi Andreas,
sage niemals nie...:-)
Auch wenn ich nicht bst bin...
Gegegeben: a = 0, b = 0, c = 40 - a - b (ergibt?)
Wie Du siehst, es ist möglich.
Ciao, Ralf
AW: nur um die Verwirrung komplett zu machen ;-)
27.04.2006 12:29:19
AndreasG
a und b sind bei 1 beginnend definiert. Insofern isses nicht möglich ;-)
Grüsse
Andreas
AW: nur um die Verwirrung komplett zu machen ;-)
27.04.2006 12:45:23
Ralf
...lach...
tja, Andreas. Wo Du Recht hast, hast Du Recht... Allerdings sollte c ja auch kleiner als 40 sein. Fehlt also bei a = 1, b = 1 und c = 40 - a - b trotzdem die 39... Aber das läßt sich ja zum Glück korrigieren...:-)
Ciao, Ralf
AW: nur um die Verwirrung noch zu erhöhen
27.04.2006 12:50:54
bst
Hallo zusammen,
Man kann da nun schon noch optimieren ...
Da c - falls es denn eine natürliche Zahl ergibt - mindestens um 1 größer sein muß als das Maximum von a und b reicht es hier auch aus die Schleife bis 19 ! ( 40 / 2 - 1) laufen zu lassen. Da man auch keine doppelten Lösungen braucht (3 4 5 und 4 3 5) kann man b von a + 1 aus starten lassen.
Und natürlich braucht man die c-Schleife eigentlich überhaupt nicht, da man ja auch feststellen kann ob die Wurzel eine natürliche Zahl ergibt ...
Vermutlich läßt sich das immer noch optimieren ;-)
cu, Bernd
--
Option Explicit

Sub x()
    Dim a%, b%, c As Double
    
    For a = 1 To 19
        For b = a + 1 To 19
            c = Sqr(a * a + b * b)
            If c = Cint(c) And a + b + c <= 40 Then Debug.Print a, b, c
        Next
    Next
End Sub


Anzeige
AW: pytagoräisches Tripel
27.04.2006 11:21:46
Ralf
Hi Georg,
wie wäre es damit?:


Sub PT()
Dim a%, b%, c%, z#, st As Range
Set st = Range("A1")
Columns("A:D").Clear
For a = 0 To 39
    For b = 0 To 39
        For c = 0 To 39
            If a + b + c < 40 Then
               st.Offset(z, 0) = a
               st.Offset(z, 1) = b
               st.Offset(z, 2) = c
               st.Offset(z, 3) = a ^ 2 + b ^ 2 + c ^ 2
               z = z + 1
            End If
        Next c
    Next b
Next a
Set st = Nothing
End Sub

Ciao, Ralf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige