ALGORITHMEN TEIL XII: Cogito errare est

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • ALGORITHMEN TEIL XII: Cogito errare est

      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 :thumbsup:
      Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,xpse,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB3

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von p. specht ()

    • 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... ;-)

      Brainfuck-Quellcode

      1. Windowtitle "Relativistische Masse und Geschwindigkeit beschleunigter Elektronen"
      2. ' Demo einer Fortran-90-Übersetzung nach XProfan-11.2a
      3. ' (D) 2017-02 by P.Specht, Vienna/Austria; Ohne Gewähr!
      4. ' Q: http://jean-pierre.moreau.pagesperso-orange.fr/Fortran/rel_mass_f90.txt
      5. '!********************************************************
      6. '!* Calculate relativistic mass and speed of an electron *
      7. '!* accelerated in an electron gun *
      8. '!* ---------------------------------------------------- *
      9. '!* SAMPLE RUN: *
      10. '!* *
      11. '!* Give electron gun voltage in volts: 1e6 *
      12. '!* *
      13. '!* Relativistic mass (kg) and speed (m/s): *
      14. '!* 2.6933944E-30 2.8212490E+08 *
      15. '!* *
      16. '!* ---------------------------------------------------- *
      17. '!* Ref.: "Problem Solving with Fortran 90 By David R. *
      18. '!* Brooks, Springer-Verlag New York, 1997". *
      19. '!********************************************************
      20. '!Explanations:
      21. '!------------
      22. '!
      23. '! An electron accelerated by a voltage V in an electron gun
      24. '!
      25. '! 2 2
      26. '! acquires an energy of Ve = mc - m c, where
      27. '! 0
      28. '! -19
      29. '! charge on an electron e = 1.602 x 10 coulomb
      30. '!
      31. '! -31
      32. '! rest mass m = 9.109 x 10 kg
      33. '! 0
      34. '! 8
      35. '! speed of light c = 2.9979 x 10 m/s
      36. '!
      37. '! The speed v of an electron of relativistic mass m (kg) is
      38. '! obtained from
      39. '! 2
      40. '! m/m = 1 / sqrt(1 - (v/c) )
      41. '! 0
      42. '!
      43. '!-----------------------------------------------------------
      44. 'Program Rel_Mass
      45. ' Implicit None !All variables must be declared
      46. declare rest_mass!, rela_mass! '! kg
      47. declare voltage!,v$ '! volt
      48. declare speed! '! m/s
      49. declare e! '! electron charge in coulomb
      50. declare c! '! speed of light in m/s
      51. rep:
      52. e!=val("1.602e-19")
      53. c!=2.9979e8
      54. rest_mass!=val("9.109e-31")
      55. print "\n Give electron gun voltage in volts [V]: ";
      56. input v$:case v$>"":voltage!=val(v$)
      57. rela_mass! = (voltage!*e!+rest_mass!*sqr(c!))/sqr(c!)
      58. speed! = c!*sqrt(1.0-sqr(rest_mass!/rela_mass!))
      59. print "\n Relativistic mass [kg] and speed [m/s]:\n"
      60. print " ";format$("%g",rela_mass!);" , ";format$("%g",speed!)
      61. waitinput
      62. cls
      63. goto "rep"
      64. End' of file rel_mass.f90
      Alles anzeigen
    • 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.
      Gruss

      P.S.: Die Schlußfolgerungen bitte selbst ziehen, ich bin zu dümmst dazu...

      Quellcode

      1. Windowtitle "Alles OK: Beobachtungen an Zahlenformaten"
      2. Windowstyle 24:cls:font 2:declare x!,x$,s%:s%=57
      3. rept:
      4. Print "\n X = ";
      5. input x$
      6. x!=val(translate$(x$,",","."))
      7. print "\n Fmt: ";format$("%g",x!),:print tab(s%);" len: ";len(format$("%g",x!))
      8. set("decimals",136):print " 36: ";x!,:print tab(s%);" len: ";len(str$(x!))
      9. set("decimals",35):print " 35: ";x!,:print tab(s%);" len: ";len(str$(x!))
      10. set("decimals",34):print " 34: ";x!,:print tab(s%);" len: ";len(str$(x!))
      11. set("decimals",17):print " 17: ";x!,:print tab(s%);" len: ";len(str$(x!))
      12. print
      13. set("decimals", 5):print " * 5: ";x!,:print tab(s%);" len: ";len(str$(x!))
      14. set("decimals", 0):print " 0: ";x!,:print tab(s%);" len: ";len(str$(x!))
      15. set("decimals",-1):print " -1: ";x!,:print tab(s%);" len: ";len(str$(x!))
      16. set("decimals",-2):print " -2: ";x!,:print tab(s%);" len: ";len(str$(x!))
      17. set("decimals",-2):print " -2: ";-x!,:print tab(s%);" len: ";len(str$(-x!))
      18. set("decimals",-2147483648):print "\n ";get("decimals")
      19. set("decimals",-2147483649):print " ";get("decimals")
      20. if %csrlin>20:waitinput:cls:endif
      21. goto "rept"
      Alles anzeigen
    • 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.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von p. specht ()

    • 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ösungen

      Coole 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 n

      Quellcode

      1. WindowTitle "Daten mit mehr als 32767 Zeichen sukzessive in eine einheitliche \
      2. DynArray-Variable heben"
      3. WindowStyle 24:font 2:cls
      4. Vorbereiten:
      5. declare data$[],n&,tmp$[],m&
      6. n&=0
      7. Nun_immer_gleich:
      8. tmp$[]=explode("\
      9. null\n\
      10. eins\nzwei\ndrei\n\
      11. vi\
      12. er\ 'Schau an, das geht auch mitten im String!!
      13. \
      14. ","\n"):m&=sizeof(tmp$[]):whileloop 0,m&-1:data$[n&+&Loop]=tmp$[&Loop]:endwhile:inc n&,m&
      15. tmp$[]=explode("\
      16. \
      17. fünf\n\//hmm! Hier könnte man noch etwas anmerken!
      18. sechs\
      19. \
      20. ","\n"):m&=sizeof(tmp$[]):whileloop 0,m&-1:data$[n&+&Loop]=tmp$[&Loop]:endwhile:inc n&,m&
      21. tmp$[]=explode("\
      22. \
      23. sieben "und"\n\
      24. acht ´sowie´\n\
      25. `neun`\
      26. ","\n"):m&=sizeof(tmp$[]):whileloop 0,m&-1:data$[n&+&Loop]=tmp$[&Loop]:endwhile:inc n&,m&
      27. Ergebnis_Zeigen:
      28. n&=sizeof(data$[]):whileloop 0,n&-1:print data$[&Loop]:endwhile
      29. print "\n Inklusive Nullelement sind das ";n&;" Einträge! "
      30. print "\n Könnten auch mehr sein... - bis der Speicher platzt!"
      31. waitinput
      32. End
      Alles anzeigen

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von p. specht ()

    • 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...
      Gruss

      Quellcode

      1. WindowTitle ""
      2. WindowStyle 24
      3. Window 0,40-%maxx,1:cls rgb(200,200,255)
      4. var text$="Mia, Emma, Sofia / Sophia, Hannah / Hanna, Emilia, Anna, Marie, Mila, Lina, "+\
      5. "Lea / Leah, Lena, Leonie, Amelie, Luisa / Louisa, Johanna, Emily / Emilie, Clara / Klara, "+\
      6. "Sophie / Sofie, Charlotte, Lilly / Lilli, Lara, Laura, Leni, Nele / Neele, Ella, Maja / Maya, "+\
      7. "Mathilda / Matilda, Ida, Frieda / Frida, Lia / Liah / Lya, Greta, Sarah / Sara, Lotta, Pia, "+\
      8. "Julia, Melina, Paula, Alina, Marlene, Elisa, Lisa, Mira, Victoria / Viktoria, Anni / Annie / Anny, "+\
      9. "Nora, Mara / Marah, Isabell / Isabel / Isabelle, Helena, Isabella, Maria, Ben, Paul, Jonas, Elias, "+\
      10. "Leon, Finn / Fynn, Noah, Luis / Louis, Lukas / Lucas, Felix, Luca / Luka, Maximilian, "+\
      11. "Henry / Henri, Max, Oskar / Oscar, Emil, Liam, Jakob / Jacob, Moritz, Anton, Julian, Theo, Niklas "+\
      12. "/ Niclas, David, Philipp, Alexander, Tim, Matteo, Milan, Leo, Tom, Mats / Mads, Carl / Karl, "+\
      13. "Erik / Eric, Linus, Jonathan, Jan, Fabian, Leonard, Samuel, Rafael / Raphael, Jona / Jonah, "+\
      14. "Jannik / Yannik / Yannick / Yannic, Simon, Vincent, Mika, Hannes, Lennard / Lennart, Till, Aaron "
      15. text$=upper$(text$):var l&=len(text$):text$=text$+text$
      16. Repeat
      17. whileloop l&-1
      18. WindowTitle "|"+mid$(text$,&Loop,%maxx*0.155)
      19. sleep 100
      20. WindowTitle mid$(text$,&Loop,%maxx*0.155)
      21. sleep 100
      22. endwhile
      23. until 0
      24. end
      Alles anzeigen
    • 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.
      Gruss

      Quellcode

      1. WindowTitle "Profan-11: PS_Explode$, PS_Implode$ & PS_Revert$, PS_ArrayPrint$"
      2. cls
      3. declare s$,a1$[],t$,sz&
      4. s$="The quick brown fox jumps over the lazy dog!"
      5. a1$[]=PS_Explode$(s$," "):sz&=sizeof(a1$[])
      6. print " 0: ";a1$[0]
      7. print str$(int(sz&-1));": ";a1$[sz&-1]
      8. print " ---"
      9. s$=PS_Implode$(a1$[],"´")
      10. print s$
      11. print PS_Revert$(s$,"`")
      12. print
      13. PS_Arrayprint$(PS_Revert$(a1$[]),".......","|",6,"\n")
      14. waitinput
      15. end
      16. Proc PS_Explode$ :parameters s$,t$:declare arr$[]:if t$>""
      17. arr$[]=explode(s$,t$):else :setsize arr$[],len(s$)
      18. arr$[]=mid$(s$,1+&index,1):endif:return arr$[]
      19. Endproc
      20. Proc PS_Implode$ :parameters arr$[],t$:declare s$,sz&
      21. sz&=sizeof(arr$[]):whileloop 0,sz&-1:s$=if(s$="",s$,s$+t$)+\
      22. arr$[&Loop]:endwhile:return s$
      23. EndProc
      24. Proc PS_Revert$
      25. if left$(ptype$(1),2)="$[":parameters arr$[]
      26. declare ass$[],sz&:sz&=sizeof(arr$[]):casenot sz&:return arr$[]
      27. setsize ass$[],sz&:dec sz&:ass$[]=arr$[sz&-&index]:return ass$[]
      28. elseif ptype$(1)="$":parameters s$,t$:declare r$,sz&:sz&=len(s$)
      29. :Whileloop sz&:r$=mid$(s$,&Loop,1)+t$+r$:endwhile:return r$
      30. endif
      31. endproc
      32. proc PS_Arrayprint$
      33. if left$(ptype$(1),2)="$[":parameters a__$[],ra$,sp$,nbr&,t$
      34. declare sz&,ct&:sz&=sizeof(a__$[])
      35. print ra$;
      36. whileloop 0,sz&-1:inc ct&:print a__$[&Loop];sp$;
      37. if ct&=nbr&:print t$;ra$;:ct&=0:endif
      38. endwhile
      39. else:print " *type?* ";
      40. endif
      41. endproc
      Alles anzeigen
    • 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?

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von p. specht ()

    • 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)
      Gruss

      Abt. 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.

      Quellcode

      1. cls
      2. declare lo$,ro$,lu$,ru$,hz$,vt$,qu$,qo$,vr$,vl$,kz$,bk$,bk2$
      3. declare lo2$,ro2$,lu2$,ru2$,hz2$,vt2$,qu2$,qo2$,vr2$,vl2$,kz2$
      4. lo$=chr$(218):ro$=chr$(191):lu$=chr$(192):ru$=chr$(217):hz$=chr$(196):vt$=chr$(179)
      5. qu$=chr$(194):qo$=chr$(193):vr$=chr$(195):vl$=chr$(180):kz$=chr$(197):bk$=chr$(32)
      6. lo2$=chr$(201):ro2$=chr$(187):lu2$=chr$(200):ru2$=chr$(188):hz2$=chr$(205):vt2$=chr$(186)
      7. qu2$=chr$(203):qo2$=chr$(202):vr2$=chr$(204):vl2$=chr$(185):kz2$=chr$(206):bk2$=chr$(32)
      8. font 1:print
      9. print lo$; hz$;hz$; qu$; hz$;ro$
      10. print vt$; "a";"b"; vt$; "c";vt$
      11. print vr$; hz$;hz$; kz$; hz$;vl$
      12. print vt$; "d";"e"; vt$; "f";vt$
      13. print vt$; "g";"h"; vt$; "i";vt$
      14. print lu$; hz$;hz$; qo$; hz$;ru$
      15. font 1:print
      16. print lo2$;hz2$;hz2$;qu2$;hz2$;ro2$
      17. print vt2$;bk2$;bk2$;vt2$;bk2$;vt2$
      18. print vr2$;hz2$;hz2$;kz2$;hz2$;vl2$
      19. print vt2$;bk2$;bk2$;vt2$;bk2$;vt2$
      20. print vt2$;bk2$;bk2$;vt2$;bk2$;vt2$
      21. print lu2$;hz2$;hz2$;qo2$;hz2$;ru2$
      22. font 1:print
      23. print lo$; hz$;hz$; qu$; hz$;hz$; ro$
      24. print vt$; "a";"b"; vt$; "c";"c"; vt$
      25. print vt$; "a";"b"; vt$; "c";"c"; vt$
      26. print vr$; hz$;hz$; kz$; hz$;hz$; vl$
      27. print vt$; "d";"e"; vt$; "f";"c"; vt$
      28. print vt$; "g";"h"; vt$; "i";"c"; vt$
      29. print lu$; hz$;hz$; qo$; hz$;hz$; ru$
      30. font 1:print
      31. print lo$; hz$;hz$; qu$; hz$;hz$; ro$
      32. print vt$; "/";"\"; vt$; "c";"c"; vt$
      33. print vt$; "\";"/"; vt$; "c";"c"; vt$
      34. print vr$; hz$;hz$; kz$; hz$;hz$; vl$
      35. print vt$; "d";"e"; vt$; "f";"c"; vt$
      36. print vt$; "g";"h"; vt$; "i";"c"; vt$
      37. print lu$; hz$;hz$; qo$; hz$;hz$; ru$
      38. waitinput
      Alles anzeigen
    • 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



      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von p. specht ()

    • War wohl zu einfach... ich muß in Zukunft interessantere Rätsel finden! Lösung im Spoiler!
      Gruss
      Spoiler 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 = 511

      2. 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:

      Quellcode

      1. WindowStyle 24:WindowTitle "Rätsel 42"
      2. font 2:Print " Wie viele dreiziffrige positive ganze Zahlen kann man\n"+\
      3. " als Summe von genau neun verschiedenen Zweierpotenzen schreiben?\n\n"
      4. declare z&[9]:whileloop 0,9:z&[&Loop]=2^&Loop:endwhile
      5. declare ignore&,sum&,drei&[50],z&,tmp&,uniq&,i&,j&
      6. whileloop 9,0,-1:ignore&=&Loop:sum&=0
      7. :whileloop 0,9:case &loop<>ignore&:sum&=sum&+z&[&Loop]:endwhile
      8. :if (sum&>=100) and (sum&<1000):drei&[z&]=sum&:inc z&:endif
      9. endwhile:dec z&
      10. whileloop 0,z&:i&=&Loop:whileloop 0,z&:j&=&Loop:
      11. if drei&[i&]<drei&[j&]:tmp&=drei&[i&]:drei&[i&]=drei&[j&]:drei&[j&]=tmp&:endif
      12. endwhile:endwhile:print:print " Antwort: ";int(z&+1);" Zahlen:\n\n ";
      13. :whileloop 0,z&:i&=&Loop:print drei&[i&],:endwhile:waitinput
      Alles anzeigen

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von p. specht ()

    • 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?)
      Gruss
      Spoiler 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 Ganzzahlen

      I. Umformen:
      c2) RQ = 7 - BQ
      d2) RQ + RNQ = BQ + 3
      e2) RQ = BQ + BNQ + 2

      II. 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*BQ

      III. Gleiche Seiten: d4) mit e4) gleichsetzbar:
      g) 4 + RNQ = 5 - BNQ >>> g1) RNQ + BNQ = 1

      VI. 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 = 3

      IX. 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) =
      ...

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von p. specht ()