Herzlich Willkommen im zwölftes Kapitel
unseres gemeinsamen Versuches, Wahnsinn als Normalität und Irren als logisch zu tarnen, und puren Zufall als "Denken" zu kaschieren. Wer macht wieder mit beim Vorstellen eigener Programmdisaster, Softwarekatastrophen und logischer Eigentore? Um zahlreiche Hinweise, Informatik-Findel und den einen oder anderen im Recyclingverfahren noch ganz brauchbaren Algorithmus wird gebeten - selbstverständlich wie immer ohne jede Gewähr zu fordern!
Gruss
ALGORITHMEN TEIL XII: Cogito errare est
-
-
-
Abt. Was wiegt ein schnelles Elektron?
=============================
Wer immer schon wissen wollte, wie schnell ein Elektron fliegen muß, um einem Kilogramm Masse zu entsprechen, der kann sich mit dem nachstehenden Programm mal die Beschleunigungsspannung ansehen, die dazu nötig wäre...Code
Alles anzeigenWindowtitle "Relativistische Masse und Geschwindigkeit beschleunigter Elektronen" ' Demo einer Fortran-90-Übersetzung nach XProfan-11.2a ' (D) 2017-02 by P.Specht, Vienna/Austria; Ohne Gewähr! ' Q: http://jean-pierre.moreau.pagesperso-orange.fr/Fortran/rel_mass_f90.txt '!******************************************************** '!* Calculate relativistic mass and speed of an electron * '!* accelerated in an electron gun * '!* ---------------------------------------------------- * '!* SAMPLE RUN: * '!* * '!* Give electron gun voltage in volts: 1e6 * '!* * '!* Relativistic mass (kg) and speed (m/s): * '!* 2.6933944E-30 2.8212490E+08 * '!* * '!* ---------------------------------------------------- * '!* Ref.: "Problem Solving with Fortran 90 By David R. * '!* Brooks, Springer-Verlag New York, 1997". * '!******************************************************** '!Explanations: '!------------ '! '! An electron accelerated by a voltage V in an electron gun '! '! 2 2 '! acquires an energy of Ve = mc - m c, where '! 0 '! -19 '! charge on an electron e = 1.602 x 10 coulomb '! '! -31 '! rest mass m = 9.109 x 10 kg '! 0 '! 8 '! speed of light c = 2.9979 x 10 m/s '! '! The speed v of an electron of relativistic mass m (kg) is '! obtained from '! 2 '! m/m = 1 / sqrt(1 - (v/c) ) '! 0 '! '!----------------------------------------------------------- 'Program Rel_Mass ' Implicit None !All variables must be declared declare rest_mass!, rela_mass! '! kg declare voltage!,v$ '! volt declare speed! '! m/s declare e! '! electron charge in coulomb declare c! '! speed of light in m/s rep: e!=val("1.602e-19") c!=2.9979e8 rest_mass!=val("9.109e-31") print "\n Give electron gun voltage in volts [V]: "; input v$:case v$>"":voltage!=val(v$) rela_mass! = (voltage!*e!+rest_mass!*sqr(c!))/sqr(c!) speed! = c!*sqrt(1.0-sqr(rest_mass!/rela_mass!)) print "\n Relativistic mass [kg] and speed [m/s]:\n" print " ";format$("%g",rela_mass!);" , ";format$("%g",speed!) waitinput cls goto "rep" End' of file rel_mass.f90
-
Abt. Grenzverhalten des set("decimals", ) -Befehls
=====================================
Zur Auslotung der Robustheit von Programmen wie XProfan bedarf es gelegentlich eines DAU (= Dümmster anzunehmender User). Ich erhebe hiermit Anspruch auf diesen Titel, was mich zu Aktionen wie im nachstehenden Programm befähigt.
GrussP.S.: Die Schlußfolgerungen bitte selbst ziehen, ich bin zu dümmst dazu...
Code
Alles anzeigenWindowtitle "Alles OK: Beobachtungen an Zahlenformaten" Windowstyle 24:cls:font 2:declare x!,x$,s%:s%=57 rept: Print "\n X = "; input x$ x!=val(translate$(x$,",",".")) print "\n Fmt: ";format$("%g",x!),:print tab(s%);" len: ";len(format$("%g",x!)) set("decimals",136):print " 36: ";x!,:print tab(s%);" len: ";len(str$(x!)) set("decimals",35):print " 35: ";x!,:print tab(s%);" len: ";len(str$(x!)) set("decimals",34):print " 34: ";x!,:print tab(s%);" len: ";len(str$(x!)) set("decimals",17):print " 17: ";x!,:print tab(s%);" len: ";len(str$(x!)) print set("decimals", 5):print " * 5: ";x!,:print tab(s%);" len: ";len(str$(x!)) set("decimals", 0):print " 0: ";x!,:print tab(s%);" len: ";len(str$(x!)) set("decimals",-1):print " -1: ";x!,:print tab(s%);" len: ";len(str$(x!)) set("decimals",-2):print " -2: ";x!,:print tab(s%);" len: ";len(str$(x!)) set("decimals",-2):print " -2: ";-x!,:print tab(s%);" len: ";len(str$(-x!)) set("decimals",-2147483648):print "\n ";get("decimals") set("decimals",-2147483649):print " ";get("decimals") if %csrlin>20:waitinput:cls:endif goto "rept"
-
Der Physik-Nobelpreis 2016
======================
wurde eigentlich für den Nachweis von Gravitationswellen erwartet - doch nein!: Der Preis (830.000 Euro) ging gemeinsam an 3 US-Forscher für 2 neue Theorien:Die erste neue Erklärung betrifft den sogenannten Quanten-Hall-Effekt (auch Von-Klitzing-Effekt genannt): Klitzing hatte in den 80er-Jahren dünne Schichten zwischen zwei Halbleitern in immer stärkeren Magnetfeldern untersucht. Dabei stellte er fest, dass sich der elektrische Widerstand nicht linear, sondern in Stufen erhöht. Ein solches Phänomen kannten Physiker bis dahin eigentlich nur aus der Quantenwelt. Der untersuchte Halbleiter war allerdings viel zu groß, um solche Quanteneffekte zu zeigen.
Die zweite theoretische Erklärung betrifft Vorgänge bei Drehimpuls-Änderungen von Teilchen (Spins) - auch bezeichnet als Kosterlitz-Thouless-Übergänge. Die Forscher ermöglichen damit eine neue Form von Elektronik: "Spintronics".
Bei beiden neuen Theorien wurden mathematische Ergebnisse der Topologie genutzt: Ein Köper kann nun mal nur eine ganzzahlige Anzahl von Löchern haben: Krapfen (0), Donut (1), 8-er (2), Brezel (3) etc. Festkörperphysiker nutzen dies gerade, um Eigenschaften neuer Materialien vorherzusagen. Man spricht dann von "topologischen Materialien", die ziemlich exotische neue Eigenschaften aufweisen können. Bis zur Markteinführung ist allerdings noch einiges an Grundlagenforschung notwendig.
Gruss -
Der Chemie-Nobelpreis 2016
====================
ging an drei Molekülforscher. Sie haben kleine Maschinen aus einzelnen Molekülen gebaut: Ein Miniaturfahrstuhl, künstliche Muskeln, ein klitzekleiner Motor mit Planetengetriebe. Bereits 1983 waren ja zwei ringförmige Moleküle ineinander gefügt worden wie die Glieder einer Kette. Anschließend wurde ein ringförmiges Molekül drehbar auf eine aus einem langen Molekül bestehende Achse gesetzt. 1999 folgte der erste Nanomotor, nicht viel später ein "Nanoauto" bestehend aus vier Einzelmotoren an einem zentralen Trägermolekül in T-Form. Um das fahrende Molekül in Bewegung zu versetzen, wurde es von oben über die Spitze eines Rastertunnelmikroskops mit Strom versorgt. Ein neues Feld hatte sich aufgetan: Die Nanochemie!Der Nobelpreis für Medizin 2016
=======================
geht an einen Japaner, der die Mechanismen der "Zell-Selbstverdauung" aufklären konnte. Der Vorgang ist an sich bekannt: Im Gehirn werden Zellverbindungen (Synapsen), die nicht gebraucht werden abgebaut ("Vergessen"), um ihre Bausteine für die Bildung und Verstärkung von stark gebrauchten Verbindungen ("Lernen und Festigen") zu verwenden. Daß das zugleich auch die Erklärung für einige Krebsarten und Nervenleiden ist, ermöglicht neue Medikamente und Heilungschancen. -
Fields-Medaille 2014
===============
Dieser höchste Mathematik-Preis, der nur alle vier Jahre verliehen wird, ging 2014 an vier Mathematiker, darunter erstmals an eine Frau: Maryam Mirzakhani aus dem Iran. Ausgezeichnet wurde sie für Beiträge zur Dynamik und Geometrie von Riemannschen Flächen: "Ihre Arbeiten vereinen Methoden verschiedenster Gebiete wie algebraische Geometrie, Topologie und Wahrscheinlichkeitsrechnung", so die Jury. Untersucht wurden u.a.geschlossene Kurven auf hyperbolischen Flächen, deren Länge sich nicht ändert, auch wenn man sie verformt.Drei weitere Forscher erkannten neue Gesetzmäßigkeiten: - beim Entstehen von Chaos an Schrödinger-Operatoren - das sind Gleichungen, mit denen quantenmechanische Systeme beschrieben werden,- ferner in der Zahlentheorie (als weitere Folge des 1995 gelungenen Beweises der Fermatschen Vermutung), - sowie Erkenntnisse bei der Anwendung partieller Differentialgleichungen, mit deren Hilfe beispielsweise das Klima auf der Erde simuliert wird - insbesondere auch Differentialgleichungen, in denen Zufallterme das Rauschen an den Aktienmärkten abbilden oder zeigen, auf welche Weise z.B. Papier verbrennt.
Gruss
-
Der Nevanlinna-Preis für theoretische Informatik
=====================================
Dieser "Nobelpreis der Informatik" wird (neben vielen anderen prestigeträchtigen Preisen) seit 1982 alle vier Jahre vergeben. Bisherige Ehrungen umfaßten folgende Erkenntnisse:1982 Entwurf besonders effizienter Algorithmen
1986 Algebraische Komplexitätstheorie, effiziente stochastisch bewertete Algorithmen
1990 Untere Schranke der Komplexität von Schaltkreisen; Fortschritte bei künstlicher Intelligenz
1994 Verifikation von "geheimen Beweisen" mit stochastischen Kriterien (interaktive Beweise)
1998 Polynomieller Algorithmus zur Faktorisierung ganzer Zahlen für Quantencomputer, Quanteninformatik
2002 Probabilistisch überprüfbares Beweisen; Nicht-Approximierbarkeit, Fehlerkorrigierende Codes
2006 Konzept der Globalen Informationsumgebung (Verbesserung von Suchmaschinen und Internet-Routing)
2010 Kombinatorisches wissenschaftliches Rechnen, geglättete Analyse der Effizienz von Algorithmen,
sowie wichtige Beiträge zur Lösung des Kadison-Singer-Problems aus 1959
2014 Unique Games Conjecture - ein Fortschritt bei der Beurteilung der Komplexität von NäherungslösungenCoole Sache das!
Gruss -
Abt. Datei direkt im Programmtext
=========================
Wer viele Festwerte, z.B. ein kleines Lexikon, nicht in externe Dateien auslagern möchte, sondern eine einheitliche EXE-Datei erzeugen will, bekommt bei der Stringgrenze ab 32768 Zeichen Probleme. Dennoch möchte man die Daten einheitlich z.B. in Form einer Textarray-Variable halten, um z.B. im gesamten Text einheitlich suchen zu können. Anbei mein Lösungsvorschlag dazu.
Gruss
P.S.: Für die EXE könnte man z.B. den Text verschlüsseln, aber doch sehr rasch zugreifen und dekodieren.
PPS: Das Ende-Zeichen \n\ erzeugen: Man ersetze \n durch \\___\\\n,dann ___ durch nCode
Alles anzeigenWindowTitle "Daten mit mehr als 32767 Zeichen sukzessive in eine einheitliche \ DynArray-Variable heben" WindowStyle 24:font 2:cls Vorbereiten: declare data$[],n&,tmp$[],m& n&=0 Nun_immer_gleich: tmp$[]=explode("\ null\n\ eins\nzwei\ndrei\n\ vi\ er\ 'Schau an, das geht auch mitten im String!! \ ","\n"):m&=sizeof(tmp$[]):whileloop 0,m&-1:data$[n&+&Loop]=tmp$[&Loop]:endwhile:inc n&,m& tmp$[]=explode("\ \ fünf\n\//hmm! Hier könnte man noch etwas anmerken! sechs\ \ ","\n"):m&=sizeof(tmp$[]):whileloop 0,m&-1:data$[n&+&Loop]=tmp$[&Loop]:endwhile:inc n&,m& tmp$[]=explode("\ \ sieben "und"\n\ acht ´sowie´\n\ `neun`\ ","\n"):m&=sizeof(tmp$[]):whileloop 0,m&-1:data$[n&+&Loop]=tmp$[&Loop]:endwhile:inc n&,m& Ergebnis_Zeigen: n&=sizeof(data$[]):whileloop 0,n&-1:print data$[&Loop]:endwhile print "\n Inklusive Nullelement sind das ";n&;" Einträge! " print "\n Könnten auch mehr sein... - bis der Speicher platzt!" waitinput End
-
Abt. Beliebteste Taufnamen 2016 (D)
===========================
Eigentlich wollte ich nur was ausprobieren und benötigte Scrolltext. So heißen also die, die mal unsere Pensionen blechen werden...
GrussCode
Alles anzeigenWindowTitle "" WindowStyle 24 Window 0,40-%maxx,1:cls rgb(200,200,255) var text$="Mia, Emma, Sofia / Sophia, Hannah / Hanna, Emilia, Anna, Marie, Mila, Lina, "+\ "Lea / Leah, Lena, Leonie, Amelie, Luisa / Louisa, Johanna, Emily / Emilie, Clara / Klara, "+\ "Sophie / Sofie, Charlotte, Lilly / Lilli, Lara, Laura, Leni, Nele / Neele, Ella, Maja / Maya, "+\ "Mathilda / Matilda, Ida, Frieda / Frida, Lia / Liah / Lya, Greta, Sarah / Sara, Lotta, Pia, "+\ "Julia, Melina, Paula, Alina, Marlene, Elisa, Lisa, Mira, Victoria / Viktoria, Anni / Annie / Anny, "+\ "Nora, Mara / Marah, Isabell / Isabel / Isabelle, Helena, Isabella, Maria, Ben, Paul, Jonas, Elias, "+\ "Leon, Finn / Fynn, Noah, Luis / Louis, Lukas / Lucas, Felix, Luca / Luka, Maximilian, "+\ "Henry / Henri, Max, Oskar / Oscar, Emil, Liam, Jakob / Jacob, Moritz, Anton, Julian, Theo, Niklas "+\ "/ Niclas, David, Philipp, Alexander, Tim, Matteo, Milan, Leo, Tom, Mats / Mads, Carl / Karl, "+\ "Erik / Eric, Linus, Jonathan, Jan, Fabian, Leonard, Samuel, Rafael / Raphael, Jona / Jonah, "+\ "Jannik / Yannik / Yannick / Yannic, Simon, Vincent, Mika, Hannes, Lennard / Lennart, Till, Aaron " text$=upper$(text$):var l&=len(text$):text$=text$+text$ Repeat whileloop l&-1 WindowTitle "|"+mid$(text$,&Loop,%maxx*0.155) sleep 100 WindowTitle mid$(text$,&Loop,%maxx*0.155) sleep 100 endwhile until 0 end
-
Abt. Implode?
==========
Grün vor Eifersucht, daß Michael Wodrichs IMPLODE-Funktion in Profan X3.1 so gut funktioniert, konnt ich einfach nicht länger ruhen noch rasten, solange nicht für mein Profan-11 etwas zumindest Ähnliches gebastelt ward. In 11 geht das natürlich nicht so elegant wie in X3, für Meiner-einen muss es aber reichen.
Nachstehend präsentiere ich jenes Machwerk - extra angefertigt für unsere Software-Müllkippe hier.
GrussCode
Alles anzeigenWindowTitle "Profan-11: PS_Explode$, PS_Implode$ & PS_Revert$, PS_ArrayPrint$" cls declare s$,a1$[],t$,sz& s$="The quick brown fox jumps over the lazy dog!" a1$[]=PS_Explode$(s$," "):sz&=sizeof(a1$[]) print " 0: ";a1$[0] print str$(int(sz&-1));": ";a1$[sz&-1] print " ---" s$=PS_Implode$(a1$[],"´") print s$ print PS_Revert$(s$,"`") print PS_Arrayprint$(PS_Revert$(a1$[]),".......","|",6,"\n") waitinput end Proc PS_Explode$ :parameters s$,t$:declare arr$[]:if t$>"" arr$[]=explode(s$,t$):else :setsize arr$[],len(s$) arr$[]=mid$(s$,1+&index,1):endif:return arr$[] Endproc Proc PS_Implode$ :parameters arr$[],t$:declare s$,sz& sz&=sizeof(arr$[]):whileloop 0,sz&-1:s$=if(s$="",s$,s$+t$)+\ arr$[&Loop]:endwhile:return s$ EndProc Proc PS_Revert$ if left$(ptype$(1),2)="$[":parameters arr$[] declare ass$[],sz&:sz&=sizeof(arr$[]):casenot sz&:return arr$[] setsize ass$[],sz&:dec sz&:ass$[]=arr$[sz&-&index]:return ass$[] elseif ptype$(1)="$":parameters s$,t$:declare r$,sz&:sz&=len(s$) :Whileloop sz&:r$=mid$(s$,&Loop,1)+t$+r$:endwhile:return r$ endif endproc proc PS_Arrayprint$ if left$(ptype$(1),2)="$[":parameters a__$[],ra$,sp$,nbr&,t$ declare sz&,ct&:sz&=sizeof(a__$[]) print ra$; whileloop 0,sz&-1:inc ct&:print a__$[&Loop];sp$; if ct&=nbr&:print t$;ra$;:ct&=0:endif endwhile else:print " *type?* "; endif endproc
-
Abt. Rätselecke Nr. 38
=================
Eine Festveranstaltung findet schon immer jedes Jahr am DRITTEN DONNERSTAG IM MÄRZ statt. Was ist das späteste Datum im März, auf das diese Veranstaltung fallen kann? -
Wenn der erste März auf einen Freitag fällt, also am 21. 3.
Gruß Volkmar
-
Korrekt, Volkmar:
01 02 03 04 05 06 _07__ 08 09 10 11 12 13 _14__ 15 16 17 18 19 20 _21.__
Fr Sa So Mo Di Mi _Do1_ Fr Sa So Mo Di Mi _Do2_ Fr Sa So Mo Di Mi _Do3_Rätselecke Nr. 40:
==============
Ein Papierquadrat wird in neun gleichmaßige Felder geteilt und längs der Teilungslinien in irgendeiner beliebgen Reihenfolge und Richtung zu einem kleinen Quadrat gefaltet. Vom resultierenden kleinen Quadrat wird dann eine Ecke schief abgeschnitten und das Papier anschließend wieder entfaltet. Wie viele Löcher sind nun im Inneren des Blatts? -
Die Antwort zu Rätsel 40 lautet: 1 Loch (bei 3 x 3-Faltung); kein Loch bei 9 x 1 Faltung. (Anders sind 9 gleiche Felder durch falten nicht zu erzielen - und das war eigentlich das übersprungene Rätsel 39)
GrussAbt. Font 1-Rahmen zeichnen
======================
Eine gewisse Vereinfachung kann durch "sprechende" Stringvariablen erzielt werden:
ro = rechts_oben, hz = horizontal, vt=vertikal, qu = quer+unten, kz = Mittenkreuz, etc. etc.Code
Alles anzeigencls declare lo$,ro$,lu$,ru$,hz$,vt$,qu$,qo$,vr$,vl$,kz$,bk$,bk2$ declare lo2$,ro2$,lu2$,ru2$,hz2$,vt2$,qu2$,qo2$,vr2$,vl2$,kz2$ lo$=chr$(218):ro$=chr$(191):lu$=chr$(192):ru$=chr$(217):hz$=chr$(196):vt$=chr$(179) qu$=chr$(194):qo$=chr$(193):vr$=chr$(195):vl$=chr$(180):kz$=chr$(197):bk$=chr$(32) lo2$=chr$(201):ro2$=chr$(187):lu2$=chr$(200):ru2$=chr$(188):hz2$=chr$(205):vt2$=chr$(186) qu2$=chr$(203):qo2$=chr$(202):vr2$=chr$(204):vl2$=chr$(185):kz2$=chr$(206):bk2$=chr$(32) font 1:print print lo$; hz$;hz$; qu$; hz$;ro$ print vt$; "a";"b"; vt$; "c";vt$ print vr$; hz$;hz$; kz$; hz$;vl$ print vt$; "d";"e"; vt$; "f";vt$ print vt$; "g";"h"; vt$; "i";vt$ print lu$; hz$;hz$; qo$; hz$;ru$ font 1:print print lo2$;hz2$;hz2$;qu2$;hz2$;ro2$ print vt2$;bk2$;bk2$;vt2$;bk2$;vt2$ print vr2$;hz2$;hz2$;kz2$;hz2$;vl2$ print vt2$;bk2$;bk2$;vt2$;bk2$;vt2$ print vt2$;bk2$;bk2$;vt2$;bk2$;vt2$ print lu2$;hz2$;hz2$;qo2$;hz2$;ru2$ font 1:print print lo$; hz$;hz$; qu$; hz$;hz$; ro$ print vt$; "a";"b"; vt$; "c";"c"; vt$ print vt$; "a";"b"; vt$; "c";"c"; vt$ print vr$; hz$;hz$; kz$; hz$;hz$; vl$ print vt$; "d";"e"; vt$; "f";"c"; vt$ print vt$; "g";"h"; vt$; "i";"c"; vt$ print lu$; hz$;hz$; qo$; hz$;hz$; ru$ font 1:print print lo$; hz$;hz$; qu$; hz$;hz$; ro$ print vt$; "/";"\"; vt$; "c";"c"; vt$ print vt$; "\";"/"; vt$; "c";"c"; vt$ print vr$; hz$;hz$; kz$; hz$;hz$; vl$ print vt$; "d";"e"; vt$; "f";"c"; vt$ print vt$; "g";"h"; vt$; "i";"c"; vt$ print lu$; hz$;hz$; qo$; hz$;hz$; ru$ waitinput
-
Abt. Rätselecke Nr. 41
==============
Wie viele regelmäßige Vielecke gibt es, deren Winkel (in Grad) ganzzahlig sind?
Antworthinweis nachstehend! Gruss!Spoiler anzeigen
Innenwinkelsumme eines n-Ecks = ( n - 2 ) · 180°
Antwort per Programm:Spoiler anzeigen
WindowTitle "Rätsel 41: \qGanzzahlige Winkel in\
regelmäßigen Vielecken\q: Berechnung läuft..."
Windowstyle 24:Cls:font 2:print
declare n&,z&,Innenwinkelsumme!,Winkel!
whileloop 3,10000:n&=&Loop
Innenwinkelsumme! = (n&-2)*180
Winkel!=Innenwinkelsumme!/n&
if Winkel!=round(Winkel!,0):inc z&
print " "+str$(n&)+"-Ecke haben "+str$(n&)+\
" Winkel a ";format$("%g",Winkel!);"° ",
print tab(43);"mit Innenwinkel-Summe = ";\
format$("%g",Innenwinkelsumme!);"° "
endif
endwhile
sound 1000,100
repeat
windowTitle " Antwort: "+str$(z&)+\
" Vielecke haben ganzzahlige Innenwinkel !"
waitinput 1000
WindowTitle ""
waitinput 500
until %key
End -
Rätselecke Nr. 42
===========
Wie viele dreiziffrige positive ganze Zahlen kann man als Summe von genau neun verschiedenen Zweierpotenzen schreiben? -
War wohl zu einfach... ich muß in Zukunft interessantere Rätsel finden! Lösung im Spoiler!
GrussSpoiler anzeigen
1. Die kleinste Summe von 9 verschiedenen 2er-Potenzen ist
2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^5 + 2^6 + 2^7 + 2^8 = 2^9 - 1 = 5112. Die zweitkleinste mögliche Summe von 9 verschiedenen 2er-Potenzen erhält man,
wenn man 2^8 durch 2^9 ersetzt, also
2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^5 + 2^6 + 2^7 + 2^9 = 511 - 2^8 + 2^9 = 767.3. Die drittkleinste Summe erhält man, wenn man nun weiters 2^7 durch 2^8 ersetzt, also
2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^5 + 2^6 + 0 + 2^8 + 2^9 = 767 27 + 28 = 895.4. Für die viertkleinste Summe ersetzt man weiters 2^6 durch 2^7, also
2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^5 + 2^7 + 2^8 + 2^9 = 895 - 2^6 + 2^7 = 959.5. Für die fünftkleinste Summe ersetzt man weiters 2^5 durch 2^6, also
2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^6 + 2^7 + 2^8 + 2^9 = 959 - 2^5 + 2^6 = 991.Fur die sechstkleinste Summe WÜRDE man 2^4 durch 2^5 ersetzen, aber das gibt schon
2^0 + 2^1 + 2^2 + 2^3 + 2^5 + 2^6 + 2^7 + 2^8 + 2^9 = 959 - 2^4 + 2^5 = 1007.
Auch jede weitere mögliche Summe ist sicher gröer als 1007 und somit mindestens vierstellig.Antwort: Daher gibt es genau 5 verschiedene dreistellige Zahlen, die als Summe von genau 9 verschiedenen 2er-Potenzen dargestellt werden konnen.
Programm dazu:
Code
Alles anzeigenWindowStyle 24:WindowTitle "Rätsel 42" font 2:Print " Wie viele dreiziffrige positive ganze Zahlen kann man\n"+\ " als Summe von genau neun verschiedenen Zweierpotenzen schreiben?\n\n" declare z&[9]:whileloop 0,9:z&[&Loop]=2^&Loop:endwhile declare ignore&,sum&,drei&[50],z&,tmp&,uniq&,i&,j& whileloop 9,0,-1:ignore&=&Loop:sum&=0 :whileloop 0,9:case &loop<>ignore&:sum&=sum&+z&[&Loop]:endwhile :if (sum&>=100) and (sum&<1000):drei&[z&]=sum&:inc z&:endif endwhile:dec z& whileloop 0,z&:i&=&Loop:whileloop 0,z&:j&=&Loop: if drei&[i&]<drei&[j&]:tmp&=drei&[i&]:drei&[i&]=drei&[j&]:drei&[j&]=tmp&:endif endwhile:endwhile:print:print " Antwort: ";int(z&+1);" Zahlen:\n\n "; :whileloop 0,z&:i&=&Loop:print drei&[i&],:endwhile:waitinput
-
Abt. Rätselecke Nr. 43: "Quadrate sind auch Rechtecke"
===================================
Auf einer Tafel befinden sich blaue und rote Rechtecke:
- Genau 7 der Rechtecke sind Quadrate.
- Es gibt um 3 rote Rechtecke mehr als blaue Quadrate.
- Es gibt auch um zwei rote Quadrate mehr als blaue Rechtecke.Wie viele blaue Rechtecke befinden sich auf der Tafel?
-
Lösung zu Nr. 43
-------------------
Zugegeben, der Umgang mit formal unterbestimmten Gleichungssystemen ist eine der anspruchsvolleren Aufgaben bei solchen Texten. Eine Lösung ergibt sich dann meist aus nicht extra genannten Ganzzahligkeits- und Nichtnegativitätsbedingungen, wobei das Ergebnis nur eindeutig ist, wenn die Beispielangaben entsprechend gewählt wurden. Davon kann man bei Mathe-Übungen aber ausgehen (Im Grunde ist das ein bisschen unfair: Wie soll man das einem Computer beibringen?)
GrussSpoiler anzeigen
Gesucht: Wie viele blaue Rechtecke befinden sich auf der Tafel?
a) BR = BQ + BNQ (Anzahl Blaue_Rechtecke = Blaue_Quadrate + Blaue_Nichtquadrate)
b) RR = RQ + RNQ (Anzahl Rote_Rechtecke = Rote_Quadrate + Rote_Nichtquadrate)
c) BQ + RQ = 7 (Blaue_Quadrate + Rote_Quadrate = 7 )
d) RR = BQ + 3 (Rote_Rechtecke um 3 mehr als Blaue_Quadrate)
e) RQ = BR + 2 (Rote_Quaddrate um 2 mehr als Blaue_Rechtecke)
f) BR,RR,BQ,RQ .. alle: Nichtnegative GanzzahlenI. Umformen:
c2) RQ = 7 - BQ
d2) RQ + RNQ = BQ + 3
e2) RQ = BQ + BNQ + 2II. RQ aus c2) in d2) und in e2) einsetzen:
d3) 7 - BQ + RNQ = BQ + 3 >>> d4) 4 + RNQ = 2*BQ
e3) 7 - BQ = BQ + BNQ + 2 >>> e4) 5 - BNQ = 2*BQIII. Gleiche Seiten: d4) mit e4) gleichsetzbar:
g) 4 + RNQ = 5 - BNQ >>> g1) RNQ + BNQ = 1VI. Da RNQ und BNQ ganze Zahlen sein müssen, und
weiters gemeinsame 1 ergeben sollen, muß entweder
RNQ=1 und BNQ=0 sein oder umgekehrt (!!!)VII. Auch BQ muss eine ganze Zahl sein. Wenn wir die
beiden obigen Gleichungen betrachten sehen wir, daß...
d4) umgestellt d5) BQ = (4 + RNQ)/2 ergibt und
e4) umgestellt e5) BQ = (5 - BNQ)/2 gibt.Daraus wird klar: RNQ muß 0 sein und BNQ = 1, weil die
Brüche sonst nicht ganzzahlig werden können (!!!)VIII. Also gilt BQ = (4+0) / 2 = 2, und da BNQ = 1 war
ist die gesuchte Anzahl der Blauen Rechtecke:
BR = BQ + BNQ = 2 + 1 = 3IX. Probe: BR=3, BQ=2, BNQ=1, RNQ=0:
RQ = 7 - BQ = 5, RR = BQ + 3 = 5
q.e.d. -
Ausser Konkurrenz: Wieviel ist ...
sqrt( (2017+2017)+(2017-2017)+(2017*2017)+(2017/2017) )
Im Kopf bitte!Spoiler anzeigen
sqrt( (2017+2017)+(2017-2017)+(2017*2017)+(2017/2017) ) =
sqrt( (2*2017) + 0 + (2017)²+1 ) =
sqrt( (2017)² + 2*2017 +1 ) =
sqrt( 2017² + 2*2017 +1 ) = ... (Substitution:)
sqrt( a² + 2*a*b + b ) =
sqrt( (a + b)² ) =
sqrt((2017 + 1)²) =
(2017 + 1) =
... -
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!