Thema Datum  Von Nutzer Rating
Antwort
28.02.2008 08:44:39 quadi
NotSolved
28.02.2008 13:21:44 Holger
NotSolved
28.02.2008 19:07:05 quadi
NotSolved
Blau Aw:Aw:Aw:Programm für Mathe-Problem
29.02.2008 17:06:00 Holger
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
29.02.2008 17:06:00
Views:
1138
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Programm für Mathe-Problem
Hallo quadi,
nachstehend erhälst du ein Makro, solche Kombinationen zu suchen. Da mir das Programmieren von Permutation schon immer zu kompliziert war, verwende ich Zufallskombinationen, die ja irgendwann die gesuchte Permutation bringen sollen. Doch Vorsicht! Manche Kombinationen werden unter bestimmten Umstände nicht gefunden. Deshalb verwende ich in der ersten For-Next-Schleife in der ersten Do-Loop-Schleife a(i) = b(i) und nicht a(i) = i. So kommt man immer wieder aus einem Zyklus heraus.
Wenn das Programm eine Kombination gefunden hat, werden in der MsgBox die Exponenten untereinander angezeigt, der für die 1 als erstes usw. Wenn eine Lösung gefunden wurde, kannst du das Makro wieder starten. Da Zufallszahlen verwendet werden, entsteht dadurch kein Nachteil für die Laufzeit.
Übrigens:
1 ^ 9 + 2 ^ 5 + 3 ^ 10 + 4 ^ 8 + 5 ^ 1 + 6 ^ 6 + 7 ^ 7 + 8 ^ 4 + 9 ^ 2 + 10 ^ 3 = 999999

Sub Potenzsumme()
Randomize
Anz = 10
ReDim a(Anz), b(Anz)
For i = 1 To Anz
b(i) = i
Next i
Do
For i = 1 To Anz
a(i) = b(i)
Next i
For i = 1 To Anz
Do
c = Int(Rnd * Anz) + 1
b(i) = a(c)
Loop Until b(i) <> 0
a(c) = 0
Next i
e = 1
For i = 2 To 10
e = e + i ^ b(i)
Next i
Loop Until e > 999969 And e < 1000000
s = ""
For i = 1 To Anz
s = s + str(b(i)) + vbCrLf
Next i
MsgBox s + vbCrLf + CStr(e)
End Sub

Gruß
Holger

quadi schrieb am 28.02.2008 19:07:05:

Hallo Holger,
Zunächst danke für den Beitrag! Die größte Zahl ist 7^7 (Bei der Zahl7)und 9^6 bzw. 8^6. Die Potenz 6 (und alle höheren)kann nur den kleineren Zahlen zugeteilt werden. Z.B 3^10 oder 4^9.
Gruß, quadi

Die Summe soll 1000000 nicht überschreiten. Z.B. 1^7+2^9+3^10+4^1+5^8+6^5+7^2+8^3+9^6+10^4=999969.
Das ist noch zu wenig. Es soll eine Lösung geben, die sich mehr an die Million annähert, ohne sie zu überschreiten.

Holger schrieb am 28.02.2008 13:21:44:

Hallo quadi,
ich verstehe die Aufgabe nicht. Allein 10 hoch 10 ist größer als 999969.
Die Summe dieser Potenzen errechnetst du z.B. mit
Sub Potenzsumme()
a = 0
For i = 1 To 10
For j = 1 To 10
a = a + j ^ i
Next j
Next i
MsgBox a
End Sub
Gruß
Holger


quadi schrieb am 28.02.2008 08:44:39:


Hallo, Forum
Vielleicht bin ich hier richtig, ansonsten pardon!
Die Zahlen 1 bis 10, jede potenziert mit 1 bis 10 sollen die Summe
999969 erreichen. Kann jemand dafür eine Prozedur schreiben?
Gruß, quadi

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.02.2008 08:44:39 quadi
NotSolved
28.02.2008 13:21:44 Holger
NotSolved
28.02.2008 19:07:05 quadi
NotSolved
Blau Aw:Aw:Aw:Programm für Mathe-Problem
29.02.2008 17:06:00 Holger
NotSolved