Rechnen: Wer kann 3,3356409519815 mit 2-stelligen Zahlen (unter 100 Zahnrädern) darstellen? Die KI scheitert an einer Lösung-trotz 3 Bsp. f.die KI zum lernen!?
Ich möchte ein Uhrwerk bauen dass auf jedem Sekundenzeiger 1 Mio km Lichtweg darstellt. Dafür braucht es 3.3356409519815=A Sekunden. Erstes und letztes Zahnrad ist solo, alle anderen sind Paare. Bsp.1: (36*37*41*131*139)/(25*25*49*59*67*137)=A, oder Bsp.2: (2*11^2*31*53*181)/(5^2*7*19*23*43*73)=A, oder Bsp.3: (67^6*18^6*16^5*14^7)/(113*101*41^2*32*31*25^12*10^6)=A nun ist im Bsp.1: 131,139,137 zu gross, in Bsp.2: 181 und in Bsp.3: 113 und 101 zu groß. Wer kriegt 3,3356409519815 bzw. 0.299792458 mit kleineren Zahlen hin? Lösungen? LG. FloH
Ergänzung:
Die KI schreibt mir folgendes dazu:(ohne einer Lösung)
Es scheint, dass Ihre Anforderungen sehr spezifisch und komplex sind. Sie suchen ein Uhrwerk-Design, bei dem weder Zähler noch Nenner über 100 gehen dürfen und bei dem die Gesamtberechnung eine Annäherung an 3,3356409519815 ergibt, um eine Million Kilometer pro Sekundenzeiger anzuzeigen.
Da Ihre Anforderungen sehr spezifisch sind und die Lösung in den Grenzen der verfügbaren Rechenleistung liegen muss, könnte die Erstellung eines solchen Programms oder einer Formel komplex sein. Es erfordert eine gründliche Analyse und möglicherweise manuelles Experimentieren.
Leider kann ich Ihnen hier keine direkte Lösung oder speziellen Code zur Verfügung stellen, um Ihr gewünschtes Uhrwerk-Design zu erstellen. Es könnte notwendig sein, einen mathematischen Ansatz zu verfolgen, der Ihre Anforderungen erfüllt, und dies könnte viel experimentelle Arbeit erfordern. Es könnte hilfreich sein, wenn Sie sich an eine Fachkraft im Bereich Mathematik oder Uhrmacherei wenden, um Sie bei diesem speziellen Problem zu unterstützen.
Gibt es für die Anzahl der Zahnräder auch eine Beschränkung?
Nein absolut nicht weil dünn produzierbar ist... Durchmesser ist das Grundproblem, zb. bei Armbanduhr
Wären auch Planetengetriebe möglich?
Sogar schöner, hier gebe ich auch als Zahnradabstand 1mm Baufaktor vor zur Vereinfachung
3 Antworten
Die Kettenbruchentwicklung von 3,3356409519815 - in der Genauigkeit, die LibreOffice Calc standardmäßig liefert - ist wie folgt:
3 / 1
7 / 2
10 / 3
477 / 143
964 / 289
13973 / 4189
56856 / 17045
70829 / 21234
127685 / 38279
3646009 / 1093046
7419703 / 2224371
77843039 / 23336756
Danach bleibt der Wert "stationär".
In Primfaktoren zerlegt ist dieser Wert:
(73 * 1066343) / (2^2 * 5834189)
Das ist offensichtlich weit außerhalb des zulässigen Bereichs < 100.
Da die Kettenbruchentwicklung in gewissem Sinne optimal ist, dürfte jeder Bruch, der hiervon abweicht, weiter vom Zielwert entfernt liegen.
Da wir es mit Primfaktoren zu tun haben, gibt es möglicherweise keine Rechenvorschrift, die einfacher ist als systematisches Durchprobieren, um genügend nahe liegende Brüche zu finden.
Wenn auch Planetengetriebe möglich sind (womöglich auch solche mit 2 Ebenen), sind auch (Prim-)Faktoren oberhalb 100 kein ganz so großes Problem, was die Anzahl der Zähne betrifft, aber ein größeres, was die Berechnung betrifft.
Ich hab 3 gefunden unter 251: 113, 139 und 251 als größtes Ergebnis (bzw. noch 181), es wird aber sicher möglich sein denk ich mal.
Ein Zahnrad (360 Grad) kann keine 5834189 Zähne haben, dass ist das größte Ding an der Sache, als kleinstes Rad wird mindestens 10 in Einsatz kommen, das leg ich im Gegenüber (Zähler oder Nenner) dazu zum Ausgleich bei 1- stelligen Werten. Ein Zahnrad mit einen Zahn ist nicht sexy auf 360 Grad verteilt... ;)
Die Berechnung kleiner Zahnräder in einem Planetengetriebe ist deswegen genau so aufwändig glaub ich, wegen der vielen Nachkommastellen
964/289 = (2^2*241)/(17^2) oder 964/289 = 3.3356401384083 nur Abweichungen dahinter sind ok
Die Kettenbruchentwicklung stößt hier an ihre Grenzen, da man mit ihr nur eine bestimmte Reihe von Näherungswerten finden kann, aber keine Näherungen mit "benachbarten" Nennern und Zählern.
Möglicherweise gibt es keine Möglichket als "Brute Force" (möglichst viele verschiedene Möglichkeiten von Primfaktor-Kombinationen durchzuprobieren). Immerhin wäre diese Weg gangbar - da man sich auf die Primfaktoren unter 100 und Produkte unter 100 beschränken kann, braucht ein durchschnittlicher Computer die Berechnung weniger Zeit als ein Mensch für die Programmierung, und das auch, wenn Planetengetriebe einbezogen werden.
Die Programmierung ist easy ich schreibe es mal vom TI- Nspire ab für alle Interessierten:
(Bruth Force)
R>25 (steps)
299775168400>a (Start normal ist a Null wenn man von vorne beginnt mit steps [r=1] und jede Zahl durchprobieren will/kann durch starke CPU, weil Nspire langsam hab ich nur in 25 er Schritten (r) gesucht und bin bis jetzt bei dieser Bruth Force Methode bis eben 299775168400 gekommen )
3.3356409519814>b (tol. letzte Kommastelle minus 1)
3.3356409519815>d (gesuchter Idealwert)
3.3356409519816>e (tol. letzte Kommastelle plus 1)
Lba a
a/b>c
if c=round(c,0) Then
if max(factor(c))<=100 then [neue Programmzeile klappt aber eben so einfach nicht]
DISP a,"a-c=",factor(c),"a",factor(a)
a+r>a
Goto a
Else
Goto b
EndIf
endif
Lbl b
a/d>f
If f=round(f,0) Then
if max(factor(f)) <=100 then
DISP a,"a-d=",factor(f),"a",factor(a)
a+r>a
Goto a
Else
Goto c
EndIf
endif
Lbl c
a/e>g
If g=round(g,0))<=100 then
if max(factor(g))<=100 then
DISP a,"a-g=",factor(g),"g",factor(a)
a+r>a
Goto a
Else
a+r>a
Goto a
EndIf
endif
EndPrgm
Das Problem dieser Bruth Force Methode ist die Rechenleistung des TI - Nspire und man müsste neu rechnen a=0 als Startwert, Steps auf 1 setzen (r=1)
Und mit Superschnellem Prozessor durchrechnen lassen bis mal kleine Werte erhält.
Die von der KI vorgeschlagene Limitierungszeile "if max" (kleinergleich 100) führt nur dazu das über 100 garkeine Ergebnisse mehr kommen. das müsste dann evtl. mit String lengh möglich sein oder auch nicht, ich weis es nicht weil ich eigentlich garnicht programmieren kann, aber der Bruth Force Code oben ist wirklich simple und kurz (max u d 2. Ifend mal weglassen und ihr werdet sehen), ich hätte einfach gerne ein Endergebnis gehabt, ohne unbedingt programmieren lernen zu müssen...
Sorry a=1 bei Neustart, nicht 0, plus Steps (r=zB.1) wird ja nicht am Anfang gleich darauf addiert
Habe die Frage nochmal an die Programmierer gestellt und den Code gekürzt unter https://www.gutefrage.net/frage/ti-nspire-profi-gesucht-wie-kann-man-2-3-stellige-faktoren-rausfiltern-wenn-aber-die-exponenten-die-zahl-darueber-ueber-100-oder-ueber-1000-erhoehensiehetns
"Kettenbruchentwicklung" schönes Wort: https://de.m.wikipedia.org/wiki/Kettenbruch Danke. Führt weiter zu https://de.m.wikipedia.org/wiki/Approximation hab leider nie studiert
2^2 * 3 * 7 * 11 * 19^2/10^5;
Gibt die Zahl einfach hier ein:
https://www.calculator.net/prime-factorization-calculator.html?cvar=3335640&x=0&y=0
Dann verändere die Zahl leicht (mehr/weniger nachkommastellen, plus/minus 1) bis du eine gute Primfaktorzerlegung erhälst.
Hier wurde die Frage verstanden hier ist das Ergebnis:3,33564. Ich sehe mir die Seite gleich an. NATÜRLICH SUCHE ICH NOCH IMMER WEITER NACH DER LÖSUNG BIS ZUR LETZTEN STELLE. HOFFE ICH WERDE DORT FÜNDIG. DANKE VIELMALS, DACHTE MIR AUCH SO EINE SEITE MUSS ES JA GEBEN..
Leider kann ich das mit der Seite nicht berechnen lassen (2 stellig). Zur Lösung wird man nur mit einem Programm kommen, weswegen ich die Frage gerne neben Mathematik unter Software gehabt hätte.
Wie gesagt, wenn du etwas rumprobierst findest du evtl. eine passende Primfaktorzerlegung.
Du siehst ja, dass ich auf emin Ergebnis einfach kommen konnte, indem ich Nachkommastellen abgeschnitten habe. Evtl. kannst du mehr hinzufügen oder Zahlen adieren/subtrahieren, etc.
Aber ja, ansonsten kann man sich dafür auch irgendeinen schlauen Algorithmus überlegen.
TI-Nspire: 25->r
29775168400->a
3,3356409519814->b
3,3356409519815->d
3,3356409519816->e
Lbl a
a/b->c
If c=round(c,0)Then
Disp a,"a-c=",factor(c),"a",factor(a)
a+r->a
Goto a
Else
Goto b
EndIf
Lbl b
a/d->f
If f=round(f,0) Then
DISP a,"a-d=",factor(f),"a",factor(a)
a+r->a
Goto a
Else
Goto c
EndIf
Lbl c
a/e->g
If g=round(g,0) Then
Disp a,"a-g=",factor(g),"g",factor(a)
a+r->a
Goto a
Else
a+r->a
Goto a
EndIf
EndPrgm
r= Steps, a=letzte Suche mit schneller Hardware r=1, a=1
Ich würde das Programm eher an einem PC schreiben und da lösen. Da hast du um ein vielfaches höhere Rechenressourcen als an einem Taschenrechner üblicherweise.
Ich habe keinen Strom nur viele USB Powerbanks und eine Bücherei wo ich lade. Also keinen PC
Hm, okay, das klingt blöd. Aber ich habe gerade Mal im Uni-Channel gefragt, ob jemandem ein guter Algorithmus einfällt, vielleicht hast du Glück.
"Primfaktorzerlegung" war schon mal hilfreich weil ich damit googeln kann. Ich hab bei dem Programm das Problem das ich ständig die Protokolle unter fortlaufend nummerierten Namen speichern muss und löschen im Hauptprogramm wegen des Speichers (nspire), dem Code fehlt nur der schlief das keine Zahlen über 100 dargestellt werden. Nur weiß ich nicht wie ich das bei dem Befehl "factor(" am TI- Nspire mache.
Dafür gibt es Online-Referenzen vermutlich zu dem Gerät.
Evtl. kann man da auch irgendwie noch mehr Low-Level gehen und direkt in Assembly coden oder soetwas.
Danke vielmals. Ich hab schon viele weitere Bruthforce Methoden programmiert die letzten Jahre im Knast und dabei an meine Lichtgeschwindigkeits-Uhr gedacht.
Bezüglich Server-Ressourcen: Ich meine beispielsweise Orakel bietet soetwas die ersten Monate lang kostenlos an. Aber evtl. war das auch etwas anderes.
Ansonsten gibt es auch andere Anbieter und evtl. auch Universitäten, die man fragen könnte.
Ich kann nicht gut programmieren nur das was ich mir am TI-82 Stats und die letzten 3 Monate am TI-Nspire selbst im Knast beibringen konnte. Also nichts im Prinzip aus meiner Sicht.
Naja, aber das kann man ja evtl. noch ausbauen, die Programmierkenntnisse. Sofern du Zeit und Interesse hast.
Ich habe die Frage einem prominenten Universitätsprofessor geschrieben, eine Antwort erhielt ich nie @Werner Gruber leider ist diese Kopfnuss ungelöst. Bin gespannt ob dein Kontakt da eine Lösung hat.
Vielleicht nicht so schlau, einen Physiker bei einer Informatikfrage um Rat zu fragen ;-)
Versuch es da doch eher in irgendeinem Uni-Forum (FSI-Forum oder soetwas).
Ja ich schaue mir jetzt codes an so ich welche finde. Ich bin halt an TI82-Stats gebunden und TI-Nspire, eine Lösung zum Datentausch zwischen Android und Nspire hab ich nicht. Und seit gestern stolzer Besitzer eines TI-92 (ohne "Plus"leider) den ich mal garnicht verstehe bis jetzt, aber das nehm ich mir heute vor zu lernen
Warum bist du daran gebunden?
Davon ab sollte auch dein Android Code ausführen können.
Er programmiert Phyton den Büchern im Hintergrund zu urteilen bei irgendeinem seiner TV Auftritte und war oder ist Direktor vom Planetarium,... so eine Uhr ist ja was für Astronomen zb.
Hm, ja, schon. Aber die Aufgabenstellung halt weniger.
Dazu habe ich noch keinen kostenlosen Emulator gefunden, ein Basic/Photon Emulator als App wäre nützlich... muß ich noch besser suchen...
https://play.google.com/store/apps/details?id=com.alif.ide
Das scheint besser zu sein als das zuvor verlinkte. Aber im Zweifelsfalle informier dich da mehr zu und probier die alle mal durch.
"Dieses Tablett ist nicht mit dieser App kompatibel" Samsung A7 lite Modell aus 2022 lt. Händler
Ja, ist auch nur ein Beispiel. Muss man schauen, ob man evtl. die version updaten oder eine ältere App installieren kann. (Wobei 2022 schon modern sein sollte.)
Code Studio von ALIF ist mal zumindest kompatibel. Thx.
Zuerst muß ich die offenen Mieten zahlen, dann erst kommt Stromanmelden, dann hab ich erst PC. Das ist leider mein Problem, sonst ließe ich das Programm mit der 90 Tage Lehrersoftware vom Ti durchlaufen. https://education.ti.com/de/produkte/computer-software/ti-nspire-cx-premium-teacher-software Daten lassen sich auch nur damit übertragen. Ich tipp halt ab...
Hm, okay.
Hast du denn derzeit einen Gelderwerb? Hast du das schon einmal mit Schuldnerberatung/Insolvenzverwalter/... besprochen, ob es evtl. eine Möglichkeit gibt, jetzt schon Strom zu haben?
Also außer natürlich du kannst gut auf Strom verzichten, dann macht es schon Sinn, erst einmal die Schulden abzubezahlen.
Ja ich muss lernen ohne Strom auch leben zu können, ich hab viele Powerbanks 30000mA bis 100000 mA und bastle dann mit 12 Volt Batterien und DC-AC PowerInverter weiter... Die Strompreise sind derzeit auch wirklich unverschämt in Österreich 🇦🇹 somit warte ich bin Heizen nötig ist. Gas braucht leider auch Strom
Ach Österreich. Hm, okay, weiß nicht, wie es da mit Sozialhilfen und so aussähe. Aber ich denke irgendwas müsste es da doch geben, damit dir der Staat den Strom zahlt wenn du ihn dir nicht leisten kannst?
Ich kann gut auf Netzstrom verzichten - kurzgesagt
Ich krieg 22€/Tag AMS. SOZI ( IN WIEN MA40/MAGISTRATSABTEILUNG 40 GENANNT) HAT MIR SCHON JEDEN ANTRAG ABGELEHNT MIT DEM SATZ AUCH MAL ICH SOLL ZUR Caritas gehen. Jedem andere Häftling zahlt man 6-12 Monate die Mieten, war bei mir nicht so, ich war mit falscher Diagnose im Massnahmenvollzug da gibt es keine Hilfen, aber auch jetzt / draußen von Seiten MA40 nichts.
Mit Solarpanelen falls ich es nicht erwähnte...
Das ist auf jeden Fall schlau! Strom selbst erzeugen.
Du kannst mir helfen wenn du deinen Informatik-Freund mal fragst wie ich die größeren Zahlen aussieben kann bei dem Befehl factor( so das mir diese Ergebnisse garnicht erst angezeigt werden
Das wissen die nicht, die kenne sich damit nicht aus.
Aber gibt Referenzen dafür:
https://education.ti.com/~/media/0652FEC13A7C45C3AFBC1DA39829E355
(evtl. nach der passenden für deine Version suchen).
Vielleicht gibt es auch eineen Befehl mit dme du die Anzeige umstellen kannst oder so?
Seite 46 hab ich gelesen, Seite 47 auch: "factor(rationalNumber) returns the rational number factored into primes. For composite numbers, the computing time grows exponentially with the number of digits in the second-largest factor. For example, factoring a 30-digit integer could take more than a day, and factoring a 100-digit number could take more than a century."
Die Lösung sollte man besser in einem Rechenzentrum suchen.
Ja. Oder generell an einer Uni, die kennen evtl. bessere Algorithmen.
Ich meine, eigentlich hast du einen Bereich von Zahlen, in dem du suchst (Deine gesuchte Zahl +/- Präzision.
Der Raum ist unendlich, aber es sollte sich doch recht bald eine Zahl finden lassen, die die geforderten Eigenschaften erfüllt.
Allerdings braucht die Faktorisierung halt exponentiell lange. Nichtsdestotrotz, wenn du die Zahlen möglichst klein hälst, sollte es schnell gehen.
Mein Code ist bruthforce mit Toleranz +/-1 an der letzten Stelle, die Darstellung aller Ergebnisse stellt für einen PC kein Problem dar, das hab nur ich hier mit meiner Hardware (nspire) aber um das am NSpire zu realisieren ( ab ca. 100 Treffern wird zum ablegen in neuem Tab, ab 9 Tabs muss ich speichern) muss ich aussieben das müsste ein If Befehl in Kombination mit dem fact( Befehl sein.
Der sollte 396 Mhz haben (nspire cx II) also der rechnet schon schnell, ich schätze die Lösungen liegen nach 33356409519815. Etwa bei 14-18 Stellen herum, also weit weg von 30 Stellen. ZUDEM steppe ich noch in 25er Schritten durch mit dem Equipment.
Das Ergebniss mit 113 Zähnen am größten Zahnrad hieße zb. Bei einem Zahnabstand 1 mm also Umfang 113mm einen Durchmesser von 35.696mm etwas groß für eine Armbanduhr.
Der sollte 396 Mhz haben (nspire cx II) also der rechnet schon schnel
PC-Prozessoren sind im GHz-Bereich. Aber die Frequenz ist auch nicht allzu wichtig.
Damit kenne ich mich nicht aus... Orakle. Wieso kann die hochgepriesene KI das eigentlich nicht?
I know (Mhz GHz...) naja zwischen 12 Mhz (TI82) und 396 Mhz (nspire) ist der Unterschied bei Programmen schon gewaltig groß.
Die Taktfrequenz selber ist nicht allein ausschlaggebend. RISC-Prozessoren sind bei gleicher Taktfrequenz üblicherweise deutlich schneller als CISC, und dann kommt es noch auf die Anzahl der Kerne an. Wenn man das Problem parallelisiert kriegt (scheint für Faktorisierung gut zu gehen: https://de.wikipedia.org/wiki/Zahlk%C3%B6rpersieb), profitiert man besonders von einer hohen Zahl von Rechenkernen (im Extremfall einer Grafikkarte).
(scheint für Faktorisierung gut zu gehen: https://de.wikipedia.org/wiki/Zahlk%C3%B6rpersieb
Wie sieht es mit dem Speicherbedarf des Algorithmus aus. Ich habe gerade nicht den Kopf das selbst zu rechnen, aber der ist vermutlich höher als man möchte.
1=r
1=a
3,3356409519814=b
3,3356409519815=d
3,3356409519816=e
Lbl a
a/b=c
If c=round(c,0)Then
Disp a,"a-c=",factor(c),"a",factor(a)
a+r=a
Goto a
Else
Goto b
EndIf
Lbl b
a/d=f
If f=round(f,0) Then
DISP a,"a-d=",factor(f),"a",factor(a)
a+r=a
Goto a
Else
Goto c
EndIf
Lbl c
a/e=g
If g=round(g,0) Then
Disp a,"a-g=",factor(g),"g",factor(a)
a+r=a
Goto a
Else
a+r=a
Goto a
EndIf
EndPrgm
Klingt plausibel ich krieg grad Online nicht mal gebacken das es Variable a 1 zuordnet. Tablet hier hat kein speichern Pfeil Symbol. Ich weiß auch nicht wie man das parallelisiert... http://tpcg.io/_74URNO
Die KI schreibt so um:
1=r
1=a
3,3356409519814=b
3,3356409519815=d
3,3356409519816=e
Lbl a
a/b=c
If c=round(c,0) Then
If max(factor(c))>100 Then
a+r=a
Goto a
Else
Disp a,"a-c=",factor(c),"a",factor(a)
a+r=a
Goto a
EndIf
Else
Goto b
EndIf
Lbl b
a/d=f
If f=round(f,0) Then
If max(factor(f))>100 Then
a+r=a
Goto a
Else
Disp a,"a-d=",factor(f),"a",factor(a)
a+r=a
Goto a
EndIf
Else
Goto c
EndIf
Lbl c
a/e=g
If g=round(g,0) Then
If max(factor(g))>100 Then
a+r=a
Goto a
Else
Disp a,"a-g=",factor(g),"g",factor(a)
a+r=a
Goto a
EndIf
Else
a+r=a
Goto a
EndIf
EndPrgm
Ich kann das am Ti Nspire nicht ausführen, online geht's auch nicht. Ich bräuchte nur ein Ergebnis.
Ich weiß nicht, ob du da überhaupt parallelisieren kannst. Die Sprache ist wahrscheinlich nicht dafür ausgelegt.
Dieser User ist ein echter Zahlenfreak, der zu deinem Problem was sagen könnte . Müsstest ihn aber wohl direkt anschreiben.
http://www.gerdlamprecht.de/start.html
.
PS : Schon mal überlegt , dass es keine Möglichkeit gibt ? Wäre schade , aber kann man denn sicher sein ,dass es eine gibt ?
Klar muss es eine Lösung geben bei unendlich vielen Zahlen
Damit ist für dieses Problem LibreOFFICE CALC nicht anwendbar vermute ich