Neue Antwort erstellen

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

Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

Neu erstellte Beiträge unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

Informationen
Frage Bitte beantworten Sie die untenstehende Frage bzw. lösen Sie die untenstehende Aufgabe.
Nachricht
Internet-Adressen werden automatisch erkannt und umgewandelt.
Smiley-Code wird in Ihrer Nachricht automatisch als Smiley-Grafik dargestellt.
Sie können BBCodes zur Formatierung Ihrer Nachricht nutzen.

Vorherige Beiträge 86

  • Abt. Ist "Ruhezustand" erlaubt?
    ========================
    Insbesondere auf Laptops und ab Windows-10 oft als Normalzustand wird beim Shutdown das aktive System auf die Platte gerettet, um beim Wiedereinschalten rasch zur Verfügung zu stehen. Manchmal verhindern bestimmte Softwarepakete bzw. Systemzustände den Einsatz dieser Möglichkeit. Nach dem untenstehenden Hinweis (er stammt von A. Miethe+) lässt sich das aber abfragen.
    Gruss

    Quellcode

    1. Print "Ruhezustand erlaubt?:",If(External("PowrProf.dll","IsPwrHibernateAllowed") = 1,"Ja","Nein")
    2. Waitinput 20000
  • Abt. Berühmte Zahl erwürfeln
    ======================

    Quellcode

    1. Windowtitle "Berühmte Zahl erwürfeln"
    2. 'Q: https://www.youtube.com/watch?v=-2PA7SbWoJ0
    3. Windowstyle 24
    4. CLS
    5. font 2
    6. set("decimals",17)
    7. randomize
    8. declare sum!,n&,m&,avg&,e!,z&
    9. z& = 100000 'Durchläufe
    10. Whileloop z&
    11. sum!=0
    12. n&=0
    13. case rnd()<=0.0001:print "*";'Lebenszeichen
    14. while sum!<1 'Das Experiment
    15. sum!=sum!+rnd()
    16. inc n&
    17. endwhile
    18. inc avg&,n&
    19. inc m&
    20. endwhile
    21. e!=avg&/m&
    22. print
    23. print "\n Nach ";format$("#,0";m&);" Zufallsexperimenten:"
    24. print "\n Zufallsergebnis:",e!
    25. print "\n Berühmte Zahl e:",exp(1)
    26. print "\n Abweichung Diff:",format$("%g",e!-exp(1))
    27. print "\n Relativer Fehler",format$("%g",100*abs((e!-exp(1))/exp(1)));" %"
    28. beep:waitinput:End
    Alles anzeigen
    Gruss
  • Abt. FORMEN ERKENNEN: DAS HU-MOMENT EINES BILDES
    =========================================
    Hab´ eben etwas Interessantes gefunden, allerdings keine Zeit es auszuprogrammieren. XProfan ist da wohl auch nicht erste Wahl, aber XPIA bzw. XPSE vielleicht? Hier das Link zum Originaltext (PDF). Die Bilder dort zeigen, was geht - geeignete Bildaufbereitung vorausgesetzt.
    Gruss

    P.S.: Verbesserungsvorschläge für den Hu-Algorithmus gibt es auch schon: Link

    Spoiler anzeigen

    HU-MOMENTS
    'nach Ming-Kuei Hu, "Visual Pattern Recognition by Moment Invariants",

    (0) I[x,y]=Ortsintensität des Pixels, üblicherweise digitalisierte Intensität 0..127 = 0, 127..255=1

    'Procedure HU_Moments :parameters Pic.raw = I(Zeile,Spalte)
    (1) M = SUM(x, SUM(y, I[x,y]) ) 'Einfaches Moment (wäre Trägheitsmoment, wenn massebehaftet gedacht)

    (2) M[i,j] = SUM(x, SUM(y, x^i*y^j*I[x,y]) ) 'Rohes Moment
    (3) xm = M[1,0]/M_[0,0] ; ym = M[0,1]/M[0,0] 'Zentroid
    (4) µ[i,j] = SUM(x, SUM(y, (x-xm)^i *(y-ym)^j *I[x,y]) ) 'Zentrales Moment
    (5) eta[i,j] = µ[i,j] / ( µ[0,0]^((i+j)/2 +1) ) 'Skalennormiertes zentrales Moment
    (6) Die 7 Hu-Momente: Translations-, Rotations- und Größenunabhängige Momente
    'Def.: Hu Moments (Hu moment invariants) are a set of 7 numbers calculated
    'using central moments that are invariant to image transformations.
    'The first 6 moments have been proved to be invariant to
    'translation, scale, and rotation, and reflection,
    'while the 7th moment’s sign changes for image reflection.
    h[0]=e[2,0]+e[0,2]
    h[1]=(e[2,0]-e[0,2])^2+4*e[1,1]^2
    h[2]=(e[3,0]-3*e[1,2])^2+(3*e[2,1]-e[0,3])^2
    h[3]=(e[3,0]+e[1,2])^2+(e[2,1]+e[0,3])^2
    h[4]=(e[3,0]-3*e[1,2])*(e[3,0]+e[1,2])*((e[3,0]+e[1,2])^2-3*(e[2,1]+e[0,3])^2)+(3*e[2,1]-e[0,3])*(3*(e[3,0]+e[1,2])^2-(e[2,1]+e[0,3])^2)
    h[5]=(e[2,0]-e[02])*((e[3,0]+e[1,2])^2-(e[2,1]+e[0,3])^2+4*e[1,1]*(e[3,0]+e[1,2])*(e[2,1]+e[0,3]))
    h[6]=(3*e[2,1]-e[0,3])*(e[3,0]+e[1,2])*( (e[3,0]+e[1,2])^2-3*(e[2,1]+e[0,3])^2 )+(e[3,0]-3*e[1,2])*(e[2,1]+e[0,3])*( 3*(e[3,0]+e[1,2])^2-(e[2,1]+e[0,3])^2 )
    'h[6]=(3*e21 - e03 )*( e30 + e12 )*[ ( e30 + e12 )^2-3*( e21 + e03 )^2 ]+( e30 -3* e12 )*( e21 + e03 )*[ 3*( e30 + e12 )^2-( e21 + e03 )^2 ]

    (7) H_ = -1*sign(h[i])*if(h[i]=0, 0, log(abs(h[i])) )'Log-Transformation

    (8) Shape Matching using Hu Moments
    'As mentioned earlier, all 7 Hu Moments are invariant under translations (move in x or y direction),
    'scale and rotation. If one shape is the mirror image of the other, the seventh Hu Moment flips in sign.
    'Isn’t that beautiful?: 6 images and their Hu Moments.

    (9) Shape Matching
    'Contour-Distance D2 between two shapes using matchShapes:
    'How to use Hu Moments to find the distance between two shapes.
    'If the distance is small, the shapes are close in appearance
    'and if the distance is large, the shapes are farther apart in appearance.

    (10) A,B sind Grauskalenbilder. D1,D2,D3 geben ähnliche Ergebnisse:
    (Ein empfehlenswertes und bewährtes Konturendistanzmaß ist vor allem D2(A,B) )
    D1(A,B) = SUM(i=0..6; abs(1/HB[i]-1/HA[i]) )
    D2(A,B) = SUM(i=0..6; abs(HA[i]-HB[i]) ) 'empfohlen
    D3(A,B) = SUM(i=0..6; abs(HA[i]-HB[i])/abs(HA[i]) )

    (11) Individuelle Distanzmaße sind möglich, z.B. Euklidische Distanz:
    'First, you calculate log transformed Hu Moments as mentioned in the previous section,
    'and then calculate the distance yourself:
    D(A,B) = sqrt(SUM(i=0..6;(HB-HA[i])^2) 'Nachteil: Rechenintensiv
    ---
  • Abt. Ohne Worte
    ============

    Quellcode

    1. WindowTitle "Konvergenz der Ramanujan-PY Formel testen"
    2. 'https://www.youtube.com/watch?v=ZoaEPXEcLFI
    3. cls:appendmenubar 100,"Dauer ca. 3 min"
    4. set("Decimals",17)
    5. declare py!,vz&
    6. vz&=-1
    7. whileloop 1,10000000,2
    8. case rnd()<0.00001:print "*";
    9. vz&=-vz&
    10. py!=py!+vz&/&Loop
    11. endwhile
    12. py!=4*py!
    13. print "\n ";py!;"\n -";pi();"\n Abs.Fehler: ";format$("%g",abs(py!-pi()))
    14. py!=9801/(1103*sqrt(8))
    15. print "\n ";py!;"\n -";pi();"\n Abs.Fehler: ";format$("%g",abs(py!-pi()))
    16. beep:waitinput
    17. End
    Alles anzeigen
  • Lösung zu EaR 16
    -----------------
    a) händisch: Sqrt( 4 + 2 * Sqrt(3) ) - Sqrt(3) = X
    Da Quadratwurzel in Quadratwurzel vorkommt, handelt es sich um die Lösung einer Minimalpolynomgleichung vierten Grades. Daher treten durch die jeweils zwei möglichen Wurzelvorzeichen acht mögliche Lösungen auf, von denen jeweils zwei vorzeicheninvers gekoppelt sind. Erst aus der Aufgabenstellung ergibt sich, welcher Satz an Lösungen tatsächlich realisiert wird:
    + + + : 1
    + + - : 4.46410161513775
    + - + : -1
    + - - : 2.46410161513775
    - + + : -4.46410161513775
    - + - : -1
    - - + : -2.46410161513775
    - - - : 1

    b) Die meisten Computersprachen berücksichtigen nur den Absolutwert von Wurzeln. Die Computerlösung lautet daher 1.
  • Abt. Float-Gefahren
    ===============
    XProfans 64-bit lange "Double precision floating point"-Variablen, etwa x!, bergen bekanntlich Gefahren in sich, die man als Anwender kennen sollte. Folgende Operationen liefern nur Ergebnisse begrenzter Genauigkeit, und verlässt man dabei übliche Zahlenbereiche, kommt es nicht nur zu Rundungsfehlern wie sie jedermann/jederfrau auch beim normalen Dividieren und Subtrahieren passieren können, sondern es kommt noch die Tatsache hinzu, daß es Zahlen gibt, die im Dezimalsystem zwar exakt darstellenbar sind, binär aber nur näherungsweise.

    1 - 0.9 ist exakt 0.1, der Computer macht daraus 0.099999999999999998
    ... und schon gehen Vergleichsabfragen wie größer oder größer gleich schief.

    1 - dieser obige Wert sollte also 0.9 liefern: 1 - 0.099999999999999998 lierfert aber 0.9000000000000002

    1/3 liefert nicht 0.33333333333333333, sondern 0.33333333333333331

    2/3 liefert nicht 0.66666666666666667, sondern 0.66666666666666663

    1 - 1/3 sollte auch 2/3 ergeben, liefert aber 0.66666666666666674

    usw. usw.

    Krass wird die Sache, wenn man in die Randbereiche binärer Darstellungsmöglichkeiten gerät. Hier beginnt der Rechner die Zahlen immer gröber und gröber zu behandeln und phanatsiert schon mal Einer-, Zehner- und Hunderterstellen hinzu. Fachleute nennen das den "De-Normalisierungsbereich". Da leidet allerdings nur die Genauigkeit. Die absoluten Katastrophen aber treten ein, wenn man folgende Werte über- bzw. unterschreitet:

    Werte größer als
    +\- 8.98846567431158E307 = 2^1024, rückkonvertiert +/- 898846567431157954E+298
    Folge: Fataler Fehler mit Programmabbruch

    Werte kleiner als
    +\- 4.9406564584127E-324 = 2^-1074, rückkonvertiert +\- 494065645841246544E-341
    Unerklärliche Not-a-number-Nullwerte (NAN), die bei Folgeoperationen zu völlig unerklärlichem Verhalten führen können, bzw. bei Divisionen zu nicht abfangbaren Abstürzen.

    Gruss
  • Lösung zu EAR 15
    -----------------
    Entweder mit Computer-Power:

    Quellcode

    1. Windowtitle "Superzahl 1-9 bzw. 1-9 & 0 ermittlen"
    2. WindowStyle 24:CLS:font 2
    3. declare x0&,x1&,x2&,x3&,x4&,x5&,x6&,x7&,x8&,x9&,z!
    4. Whileloop 1,9:x0&=&Loop
    5. Whileloop 0,9:x1&=&Loop
    6. case x1&=x0&:continue
    7. z!=10*x0&+x1&
    8. casenot z!=2*int(z!/2):continue
    9. Whileloop 1,9:x2&=&Loop
    10. case x2&=x1&:continue
    11. case x2&=x0&:continue
    12. z!=100*x0&+10*x1&+x2&
    13. casenot z!=3*int(z!/3):continue
    14. Whileloop 0,9:x3&=&Loop
    15. case x3&=x2&:continue
    16. case x3&=x1&:continue
    17. case x3&=x0&:continue
    18. z!=1000*x0&+100*x1&+10*x2&+x3&
    19. casenot z!=4*int(z!/4):continue
    20. Whileloop 1,9:x4&=&Loop
    21. case x4&=x3&:continue
    22. case x4&=x2&:continue
    23. case x4&=x1&:continue
    24. case x4&=x0&:continue
    25. casenot (x4&=0) or (x4&=5):continue
    26. Whileloop 0,9:x5&=&Loop
    27. case x5&=x4&:continue
    28. case x5&=x3&:continue
    29. case x5&=x2&:continue
    30. case x5&=x1&:continue
    31. case x5&=x0&:continue
    32. z!=100000*x0&+10000*x1&+1000*x2&+100*x3&+10*x4&+x5&
    33. casenot z!=6*int(z!/6):continue
    34. Whileloop 0,9:x6&=&Loop
    35. case x6&=x5&:continue
    36. case x6&=x4&:continue
    37. case x6&=x3&:continue
    38. case x6&=x2&:continue
    39. case x6&=x1&:continue
    40. case x6&=x0&:continue
    41. z!=1000000*x0&+100000*x1&+10000*x2&+\
    42. 1000*x3&+100*x4&+10*x5&+x6&
    43. casenot z!=7*int(z!/7):continue
    44. Whileloop 0,9:x7&=&Loop
    45. case x7&=x6&:continue
    46. case x7&=x5&:continue
    47. case x7&=x4&:continue
    48. case x7&=x3&:continue
    49. case x7&=x2&:continue
    50. case x7&=x1&:continue
    51. case x7&=x0&:continue
    52. z!=10000000*x0&+1000000*x1&+100000*x2&+\
    53. 10000*x3&+1000*x4&+100*x5&+10*x6&+x7&
    54. casenot z!=8*int(z!/8):continue
    55. Whileloop 1,9:x8&=&Loop
    56. case x8&=x7&:continue
    57. case x8&=x6&:continue
    58. case x8&=x5&:continue
    59. case x8&=x4&:continue
    60. case x8&=x3&:continue
    61. case x8&=x2&:continue
    62. case x8&=x1&:continue
    63. case x8&=x0&:continue
    64. z!=100000000*x0&+10000000*x1&+1000000*x2&+\
    65. 100000*x3&+10000*x4&+1000*x5&+100*x6&+10*x7&+x8&
    66. 'print z!,9*int(z!/9)
    67. casenot z!=9*int(z!/9):continue
    68. x9&=45-x0&-x1&-x2&-x3&-x4&-x5&-x6&-x7&-x8&
    69. casenot x9&=0:continue
    70. print "\n\n\n ";\
    71. x0&,x1&,x2&,x3&,x4&,x5&,x6&,x7&,x8&,"(";x9&;")"
    72. Endwhile
    73. Endwhile
    74. Endwhile
    75. Endwhile
    76. Endwhile
    77. Endwhile
    78. Endwhile
    79. Endwhile
    80. Endwhile
    81. print "\n\n\n OK"
    82. beep:waitinput
    83. End
    Alles anzeigen
    oder mit Grips :idee: : Youtube-Link (dt.)
  • Abt. EaR 15 ´Die Superzahl´
    =====================
    Gesucht ist eine ganze Zahl, die aus den Ziffern 1 bis 9 besteht und ...
    deren 1. Stelle durch 1 ohne Rest teilbar ist (trivial),
    deren durch die ersten beiden Stellen (von links gerechnet) gebildete Zahl durch 2 ohne Rest teilbar ist,
    deren durch die ersten 3 Stellen (von links gerechnet) gebildete Zahl durch 3 ohne Rest teilbar ist,
    ... usw., bis:
    deren durch alle 9 Stellen gebildete Zahl durch 9 ohne Rest teilbar ist.

    Programmierte Lösungen sind zulässig, es geht aber auch anders.
    Viel Spaß!
  • Abt. Frustrationsformeln
    ==================
    1) Die in Beitrag #73 angegebene Formel für Flächenstücke, die bei Kreisteilung zwischen N Randpunkten entstehen, verschafft Mathematikern Frustrationserlebnisse - geht die Reihe doch: 1, 2, 4, 8, 16, ... Jedem Normalo fällt sofort eine Fortsetzung ein: 32. Die Formel liefert aber korrekterweise 31. Ätsch!

    2) Der Größe gemeinsamte Teiler GgT von n^17+9 und (n+1)^17+9) ist stets 1 für alle n. So dachte man lange, bis ein findiger Zeitgenosse die Zahl n = 8424432925592889329288197322308900672459420460792433 fand. Ab da kommen dann alle möglichen GgT-Ergebnisse vor. Ätsch!

    3) Die Formel f(n)=n^2+n+41, so dachten viele Mathematiker vor Leonhard Euler, erzeugt lauter Primzahlen.
    Euler bewies dann: Nö, doch nicht, nur bis 39:
    Zwar gilt für f(1)=43 prim!, f(2)=47 prim!, ..., f(30)=971 alle prim! aaaaaaaber:
    n=40 liefert f(40)=1681 = 41*41 daher nicht prim, f(41)=1763 = 41*43 <> prim! ... Ätsch!

    4) Zahlreiche mathematische Vermutungen lassen sich mit Computerhilfe für jede einzelne Zahl bis in den Milliardenbereich nachrechnen - bisher fand man nicht eine einzige Abweichung. Dennoch gilt so etwas nicht als mathematischer Beweis - aus Gründen, die Beispiel 2 besonders deutlich zeigt. Erstaunlich, daß es doch immer wieder neue, hieb- und stichfeste mathematische Schlußfolgerungen und Axiome gibt - mit viel Grips halt. Im Kopf addieren können reicht da nicht aus...

    Gruss