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 174

  • Fortsetzung: Teil B


    20_100 Prog: Leistungsfähigkeit einer Volkswirtschaft absolut vs. Wachstum
    20_101 EaR 18 ´Durchschnittlicher Monat in 1000 Jahren´
    20_103 Antwort zu EaR 18
    20_104 EaR 19 ´Gorillakisten-Logik´
    20_105 EaR 20 ´Von Haus zu Haus-Weglänge´
    20_106 EaR 21 ´Mittelstreichung´ (Ziffernrätsel)
    20_107 Oldi-40 löst EaR 21
    20_108 Prog: Lösung zu EaR 21
    20_111 Auflösung von EaR 19, Lösung zu EaR 20
    20_112 EaR 22 Ziegelvolumen aus Seitenflächen
    20_115 EaR 23 Mindesturlaub für Sonnentage am Stück
    20_116 Lösung zu EaR 22
    20_117 Lösungsweg Nr. 2 zu EaR 22
    20_118 EaR 24 ´Wurzelgewusel´
    20_119 Lösung zu EaR 23
    20_120 Prog - Klassiker: Das N Damen-Problem
    20_121 Lösung zu EaR 24
    20_122 Youtube-Link: The Rise of Surveilance Capitalism
    20_123 Zwischenbilanz: Zugriffsstatistik der Reihe ´Algorithmen´
    20_124 EaR 25 ´8-stelliger Geheimcode´
    20_125 Prog: Auflösung zu EaR 25
    20_126 EaR 26 ´GESUNDE ZAHL´
    20_127 Prog: Webseite unkompliziert begrenzte Zeit anzeigen
    20_128 EaR 27 ´Das geht einfacher!´
    20_129 Lösung Nr. 1 zu EaR 26
    20_131 Lösungsweg Nr.2 zu EaR 26: Mit Logik!
    20_132 Lösung zu EaR 27
    20_133 Prog: HÄNGMÄN (Hangman deutsch)
    20_134 Genauigkeits-Benchmark für verschiedene Verfahren der Matrizen-Inversion
    20_135 Interessante Links: Neue Technologien
    20_136 Physik: Neue Festlegung physikalischer Basiskonstanten
    20_137 Ein allerletztes Rätsel - EaR 28
    20_138 Lösung zu EaR 28
    20_139 EaR 29 ´Wie oft?
    20_140 Verzweifelte200 löst EaR 29
    20_142 Achilles: Rätsel-Link
    20_143 EaR 30 Schallplattenrille
    20_144 Lösung zu EaR 30
    20_145 Links: Liste aktuell populärer SOCIAL MEDIA SERVICES
    20_146 Prüf-Prog: Mathematischer Rekord bei Multiplikativer Persistenz
    20_147 EaR 31 ´Ramanujans kubischer Near-miss´
    20_148 Prog: Thue-Morse: Fairste Spielfolge bezüglich ´Wer darf anfangen´
    20_149 Lösung zu EaR 31
    20_150 Sinusfunktion durch abgekürztes Kopfrechnen ermitteln
    20_151 Wie Piloten den Seitenwind überschlägig berechnen
    20_155 EaR 32 ´Fahrradcode vergessen´
    20_158 Lösung zu EaR 32
    20_159 EaR 33 Ur-Ur-Ur-Ur-Ur-Urgroßmütter
    20_160 Prog: Weitere Mathe-Rekorde - Superpermutation
    20_161 EaR 33 ´Wahrheitssuche auf der Insel´
    20_162 Lösung zur EaR 33.1 Ur-Omis
    20_163 Michael Wodrich löst EaR 33
    20_164 Offizielle Lösung zu EaR 33.2 Insel
    20_165 EaR 34 ´Junge Omi´
    20_166 Michael Wodrich löst EaR 34
    20_167 Prog: Anzahl der Vorfahren: Wir sind alle verwandt!
    20_168 Prog: Exponentielle Regression
    20_169 Wie das Leben so spielt: Compi abgeraucht
    20_170 Professor Chaos Musikprog. und Quiz
    20_171 H.Brill beantwortet 64-bit-Frage von Prof. Chaos
    20_172 ALGORITHMEN_XX-Themenübersicht
    ------------------------------------------------------------------
  • Wie schon Tradition am Ende eines Kapitels, gibt´s hier das chronologische ...

    ALGORITHMEN-TEIL XX - INHALTSVERZEICHNIS (in Teilen A und B)
    ============================================
    20_001 ALGORITHMEN - Teil XX: Zwischen Fersuch und Irrdumm
    20_002 Download-Link Inhalt bisheriger ALGORITHMEN-Kapitel
    20_003 ROSETTA CODE: The twelve days of Christmas
    20_004 200 Jahre Stille Nacht, heilige Nacht
    20_005 Erste Gehversuche um XML zu verstehen
    20_006 Oldi-40: XML ist Murks
    20_007 TS-Soft: XML ist kein Murks + Begründung
    20_008 Schlichtungsversuch
    20_009 Link: Die Gefahren der Gewöhnung (Ch. Sieber)
    20_011 _Ein allerletztes Rätsel EaR 1 ´Modular´
    20_012 _H.Brill löst EaR 1
    20_013 _Offizielles Lösungsproggramm zu EaR 1
    20_014 EaR 2 ´Bruch´
    20_016 Oldi-40 löst EaR 2
    20_018 Deviant Programming: Esotherische Strukturierungsbezeichner
    20_019 Lösung zu EaR 2
    20_020 EaR 3
    20_021 Prog: Erlaubt Windows die Option Ruhezustand?
    20_022 Lösung zu EaR 3
    20_023 PROSIT 11111100011
    20_024 Windows API-Variablentyp ´Variant Union´
    20_025 Dynamisch erweiterbares strukturiertes Bereichsarray
    20_026 Stange-ums-Eck Problem - Beitrag 2
    20_027 Ein allllerletztes Rätsel - EAR 4: Notepad
    20_028 H.BRill: Datei mit Inhalt .LOG - Lösung EaR 4
    20_029 Prog: Run-Befehl per API und Strings mit SendString an NotePad
    20_031 Ein alllllerletztes Rätsel - EaR 5
    20_032 Woran erkennt Notepad UNICODE Dateien
    20_034 Volkmar: Am BOM (Link)
    20_035 TS-Soft: Erklärung BOM-Flag - pro & contra
    20_036 Volkmar: Unklare .txt Endung bei Notepad
    20_037 TS-Soft: Codierungsfragen
    20_039 Lösungen zu EaR 5 und EaR 5a
    20_040 EaR 7 Was macht der ´God Mode´
    20_041 Volkmar löst EaR 7
    20_042 EaR 8 ´ms paint´
    20_043 EaR 9 Promi-Rätsel
    20_044 Volkmar löst EaR 8 und EaR 9
    20_045 Offizielle Lösungen EaR 8 und EaR 9
    20_046 EaR 10 ´Zuverlässigkeitsbericht anfordern´
    20_047 Lösung zu EaR 10
    20_048 EaR 11 ´Beifang`
    20_049 H.Brill: Wie löscht man freien Speicher eines NTFS-Laufwerkes
    20_050 Lösung zu EaR 11
    20_051 H.Brill ergänzt EaR 11-Lösung
    20_052 EaR 12 MS-Paint Cloning & 3D
    20_053 Lösung zu EaR 12
    20_054 Ein alllllllllllllerletztes Rätsel - EaR 13 ´CR LF´
    20_055 Deep Fakes: Fake-Pictures erkennen
    20_056 Manipulation und Desinformation im 21. Jahrhundert
    20_057 Neues von Pythagoras
    20_058 Lösung zu EaR 13
    20_059 Interessante Links: Geschichte Europas: Bevölkerung im Zeitraffer
    20_060 TS-Soft korrigiert: Aus LF wird CR LF !
    20_061 EaR 14 MS-Paintbild in WordPad einbinden
    20_062 Lösung zu EaR 14
    20_063 Prog: Verlegenheitslösung betr. Atomzeitserver
    20_064 Youtube-Link: Bewegungs- und Stil-kopierende Neuronale Netze
    20_065 Prog: Parametrierte Figuren - die Superformel
    20_065 Youtube-Link: Dazzle Bildschirmschoner
    20_066 Prog: Zeitbedarf für Message-abholendes Waitinput stark reduziert
    20_067 Fun-Fact: Wie schnell bewegen sich Programmierer durchs Weltall?
    20_069 Prog: Die Paralellogramm-Gleichung
    20_071 Prog: Speicherverwaltung dreidimensionaler Matrizen
    20_072 ProfAlt.Inc Include für ältere Profan-Sourcecodes, kompaktiert
    20_073 Prog: Torte teilen für Fortgeschrittene
    20_074 Prog: Vier-Ast-Kreuzungen eines vollständigen N-Sterngraphen
    20_075 Beispiel zu N-Sterngraph
    20_076 Prog: Anzahl der Flächenstücke einer N-Eckpunkte-Kreisteilung
    20_077 Mathematische Frustrationsformeln
    20_078 EaR 15 ´Die Superzahl´
    20_079 Lösung zu EAR 15
    20_080 Float-Gefahren mit Beispielen
    20_081 EaR 16 ´Irr Rational´: Tücken der Computerarithmetik
    20_082 Lösung zu EaR 16 mit Computer oder Grips
    20_083 Prog: Konvergenz der Ramanujan-PY Formel testen
    20_084 Beitrag FORMEN ERKENNEN: DAS HU-MOMENT EINES BILDES
    20_085 Prog: Berühmte Zahl erwürfeln
    20_086 Prog: Ist Ruhezustand erlaubt?
    20_087 Prog: Fair teilen bei 3 Beteiligten
    20_088 Link: Aktuelle Elektrosymbole
    20_089 Prog: Großkreisdistanzformel testen
    20_090 Youtube: Wie Computer Dezimalzahlen (nicht) repräsentieren können
    20_091 Prog: Spirograph als Wappengenerator
    20_092 Die 21 Regeln des Samurai
    20_093 EaR 17 Wie lange brauchen 3 Maler für 10 Fassaden
    20_095 Lösung zu EaR 17
    20_097 Harmonisches Mittel


    Folgt Teil B
  • Heya, hier ein Spaßexperiment. Und Wissensquiz: Wie heißt dieses Stück?

    Getestet unter FreeProfan32, XProfan 12.1 und Windows 7. Compiliert besser! Ich weiß leider nicht, wie es unter 3 Ghz läuft. Wenn es mal ruckelt, geht in ein anderes Fenster (Graphen werden solange nicht neugezeichnet). Unter FreeProfan64 funktioniert es irgendwie nicht (waveOutPrepareHeader gibt MMSYSERR_INVALPARAM zurück, sodass alles stumm ist).

    Erstmal die SYNTH.INC:

    Quellcode

    1. declare w#,h&[%voices-1],t&[%voices-1],i%[%voices-1]
    2. dim w#,306* %voices
    3. clear w#
    4. def FillMemory(3) !"KERNEL32","RtlFillMemory"
    5. def waveOutOpen(6) !"WINMM","waveOutOpen"
    6. def waveOutClose(1) !"WINMM","waveOutClose"
    7. def waveOutPrepareHeader(3) !"WINMM","waveOutPrepareHeader"
    8. def waveOutUnprepareHeader(3) !"WINMM","waveOutUnprepareHeader"
    9. def waveOutWrite(3) !"WINMM","waveOutWrite"
    10. def waveOutReset(1) !"WINMM","waveOutReset"
    11. proc TonAus
    12. parameters v%
    13. casenot h&[v%]:return
    14. waveOutReset(h&[v%])
    15. waveOutUnprepareHeader(h&[v%],w#+v%*306+256,32)
    16. waveOutClose(h&[v%])
    17. h&[v%]=0
    18. endproc
    19. proc TonEin
    20. parameters v%,i%,h%
    21. casenot h%:return
    22. i%[v%]=i%
    23. i%=v%*306+256
    24. h%=440*2^((h%-69)/12)*256
    25. long w#,i%+36=h%
    26. long w#,i%+40=h%
    27. i%=w#+i%
    28. TonAus v%
    29. case waveOutOpen(addr(h%),-1,i%+32,0,0,0):return
    30. h&[v%]=h%
    31. waveOutPrepareHeader(h%,i%,32)
    32. t&[v%]=&gettickcount
    33. GenWave
    34. waveOutWrite(h%,i%,32)
    35. endproc
    36. proc Fin
    37. whileloop 0,%voices-1
    38. TonAus &loop
    39. endwhile
    40. dispose w#
    41. endproc
    42. whileloop 0,%voices*306-1,306
    43. long w#,&loop+256=w#+&loop
    44. long w#,&loop+260=256
    45. long w#,&loop+272=12
    46. long w#,&loop+276=-1
    47. word w#,&loop+288=1
    48. word w#,&loop+290=1
    49. word w#,&loop+300=1
    50. word w#,&loop+302=8
    51. TonEin &loop\306,0,1
    52. endwhile
    Alles anzeigen

    Und dann das Hauptprogramm:

    Quellcode

    1. def %voices 6
    2. declare p%,a%,t&,x%,y%,f%,m%[%voices],c%[9],Fade%,Bass%,Hook%,Drum%,NoMorse%,Arp%
    3. def CreatePen(3) !"GDI32","CreatePen"
    4. def CreateSolidBrush(1) !"GDI32","CreateSolidBrush"
    5. def SelectObject(2) !"GDI32","SelectObject"
    6. c%[0]=CreatePen(0,0,$33ff99):c%[5]=CreateSolidBrush($33ff99)
    7. c%[1]=CreatePen(0,0,$33ff33):c%[6]=CreateSolidBrush($33ff33)
    8. c%[2]=CreatePen(0,0,$339966):c%[7]=CreateSolidBrush($339966)
    9. c%[3]=CreatePen(0,0,$335533):c%[8]=CreateSolidBrush($335533)
    10. c%[4]=CreatePen(0,0,$333333):c%[9]=CreateSolidBrush($333333)
    11. usermessages 16
    12. windowtitle "Tasten 1-6 = Stummschaltung"
    13. windowstyle $1A
    14. window 800,600
    15. case $profver>="11":startpaint %hdc
    16. proc GenWave
    17. parameters v%
    18. x%=&gettickcount-t&[v%]
    19. select i%[v%]
    20. caseof 0 ' stumm
    21. p%= 0
    22. a%= 0
    23. caseof 1 ' Bass
    24. p%= 55+x%\9
    25. a%= 60-x%\2
    26. caseof 2 ' Morse
    27. p%= 80
    28. a%= 30
    29. caseof 3 ' Hook
    30. p%= 16+x%\9
    31. a%= 63-x%\11:case a%<24:a%=24
    32. caseof 4 ' Melodie
    33. p%=if(x%<500,110-x%\7,20+x%\30)
    34. a%=80-x%\7
    35. ' Sustain
    36. case not(Hook%) and (a%<20):a%=20
    37. ' Tremolo schnell
    38. y%=x% mod 105:case y%>=56:y%=112-y%
    39. a%=a%+y%*if(x%<500,3,2)\7
    40. ' Tremolo langsam
    41. y%=x% mod 900:case y%>=480:y%=960-y%
    42. a%=a%+y%\20
    43. ' Release
    44. case a%<0:a%=0
    45. caseof 5 ' Piano
    46. p%=140+x%\50
    47. a%= 20-x%\60:case a%<10:a%=10
    48. caseof 6 ' Chor
    49. p%= 50+x% mod 150:case p%>=125:p%=250-p%
    50. a%= 15
    51. caseof 7 ' Xylophon
    52. p%=128
    53. a%= 30-x%\2:case a%<0:a%=0
    54. caseof 8 ' Becken
    55. p%= 0
    56. a%= 64-x%\9:case a%<0:a%=0
    57. caseof 9 ' Trommel
    58. p%=128
    59. a%=127-x%:case a%<0:a%=0
    60. endselect
    61. p%=p% & 255
    62. a%=a%*f%\256
    63. x%=w#+v%*306
    64. y%=m%[v%]
    65. if y% & 2
    66. FillMemory(x% ,256 ,128 )
    67. elseif i%[v%]<8
    68. FillMemory(x% , p%,128-a%)
    69. FillMemory(x%+p%,256-p%,128+a%)
    70. else
    71. dec x%,w#
    72. whileloop x%,x%+p%- 1:byte w#,&loop=128-rnd(a%):endwhile
    73. whileloop x%+p%,x%+255:byte w#,&loop=128+rnd(a%):endwhile
    74. endif
    75. casenot getactivewindow()=%hwnd:return
    76. case (y% & 1)=iskey(49+v%):m%[v%]=(y%+1) & 3
    77. x%=(v% mod 3)*260
    78. y%=v%\3*260
    79. inc p%,x%
    80. SelectObject(%hdc,c%[4])
    81. SelectObject(%hdc,c%[9])
    82. if i%[v%]<8
    83. rectangle x%,y% -x%+256,y%+128-a%:inc y%,128
    84. rectangle p%,y% -x%+256,y% -a%
    85. rectangle x%,y% -p% ,y% +a%
    86. rectangle x%,y%+128-x%+256,y% +a%
    87. SelectObject(%hdc,c%[m%[v%]])
    88. SelectObject(%hdc,c%[m%[v%]+5])
    89. rectangle x%,y% -p% ,y% -a%
    90. rectangle p%,y% -x%+256,y% +a%
    91. else
    92. rectangle x%,y%-x%+256,y%+256:inc y%,128
    93. SelectObject(%hdc,c%[m%[v%]])
    94. whileloop x%,p%- 1:line &loop,y%-&loop,y%-rnd(a%):endwhile
    95. whileloop p%,x%+255:line &loop,y%-&loop,y%+rnd(a%):endwhile
    96. endif
    97. endproc
    98. $I SYNTH.INC
    99. proc Akkord
    100. case %umessage=16:return
    101. parameters i%,1%,2%,3%
    102. TonEin 1,i%,1%
    103. TonEin 2,i%,2%
    104. TonEin 3,i%,3%
    105. endproc
    106. proc Takt
    107. whileloop 0,31
    108. case %umessage=16:break
    109. TonEin 0,1,Bass%+6*(&loop & 2)
    110. if Drum%
    111. casenot &loop:TonEin Drum%,8,20
    112. casenot ((&loop-9) & 24) or (&loop=13) or (Bass%=33):TonEin Drum%,9,80-&loop*4
    113. endif
    114. ifnot NoMorse%
    115. inc f%,Fade%
    116. if not(&loop & 9) or ((&loop & 15)=3) or ((&loop & 15)=12)
    117. TonEin 5,2,74-(Bass%=33) and (&loop=28)
    118. elseif (&loop+10) & 12
    119. TonEin 5,0,1
    120. endif
    121. else
    122. casenot &loop & 3:TonEin 5,4,&(4+&loop\4)
    123. endif
    124. if Hook%
    125. case ((Bass%=38) and (&loop=16)) or (&loop=20) or ((&loop & 27)=26):Akkord 0, 1, 1, 1
    126. case (Bass%=38) and (&loop= 2) :Akkord 3,62,65,69
    127. case (Bass%=38) and ((&loop=18) or (&loop=28)) :Akkord 3,62,67,71
    128. case (Bass%=38) and (&loop=24) :Akkord 3,62,67,72
    129. case (Bass%=33) and ((&loop= 2) or (&loop=24)) :Akkord 3,57,62,67
    130. case (Bass%=33) and (&loop=28) :Akkord 3,57,61,67
    131. endif
    132. case Arp%:TonEin 4,7,&(12+&loop mod 3)
    133. t&=t&+120
    134. case abs(&gettickcount-t&)>300:t&=&gettickcount
    135. getmessage
    136. while &gettickcount<t&
    137. whileloop 0,%voices-1
    138. GenWave &loop
    139. endwhile
    140. endwhile
    141. endwhile
    142. endproc
    143. proc Melodie
    144. Hook%=0:Bass%=38:Takt 0,0,0,69, 0, 0, 0, 0,77,76,74,81,77,74
    145. Takt 0,0,0,69, 0, 0, 0, 0,62,64,65,74,81,77
    146. Akkord 5,60,64,67:Takt 0,0,0,64, 0, 0, 0, 0,60,62,64,79,76,72
    147. Akkord 5,57,62,64:Takt 0,0,0,62, 0,57, 0,50,62,69,79,81,77,74
    148. Takt 0,0,0,76, 0, 0, 0, 0,77,76,74,81,77,74
    149. Takt 0,0,0,69, 0, 0, 0, 0,62,64,65,74,81,77
    150. Akkord 5,60,64,67:Takt 0,0,0,64, 0, 0, 0, 0,60,62,64,79,76,72
    151. Akkord 5,57,62,64:Takt 0,0,0,62, 0,57, 0,50, 0, 0, 0,81,77,74
    152. Akkord 6,62,67,71:Takt 0,0,0,74, 0, 0, 0, 0, 0,74,76,83,79,74
    153. Akkord 6,70,74,77:Takt 0,0,0,77, 0, 0, 0, 0, 0, 0,77,86,81,77
    154. Akkord 6,72,76,79:Takt 0,0,0,79, 0, 0, 0, 0,77,76,74,86,81,77
    155. Bass%=33:Akkord 6,69,73,76:Takt 0,0,0,76, 0, 0, 0, 0,79,77,76,86,81,77
    156. casenot %umessage=16:TonEin 5,4,74
    157. endproc
    158. proc Hook
    159. Hook%=1:Bass%=38:Takt 0,0,0, 0, 0, 0, 0, 0, 0, 0, 0,81,77,74
    160. Takt 0,0,0, 0, 0, 0, 0, 0, 0, 0, 0,81,77,74
    161. Takt 0,0,0, 0, 0, 0, 0, 0, 0, 0, 0,81,77,74
    162. Bass%=33:Takt 0,0,0, 0, 0, 0, 0, 0, 0, 0, 0,86,81,77
    163. endproc
    164. settimer 0
    165. whilenot %umessage=16
    166. clear Hook%,Drum%,Arp%
    167. Bass%=38:Fade%=2:Takt:Takt:Takt:Takt
    168. Fade%=0:Hook
    169. Drum%=4:Hook
    170. NoMorse%=1:Drum%=0:Melodie
    171. Drum%=4:Hook:Hook
    172. Arp%=1:Drum%=0:Melodie
    173. Arp%=0:Drum%=4:Hook
    174. Arp%=1:Drum%=5:Hook:Takt 0,0,0,0
    175. NoMorse%=0:Drum%=1:Hook
    176. Fade%=-1:Hook:Hook
    177. endwhile
    178. killtimer
    179. Fin
    180. whileloop 0,9:deleteobject c%[&loop]:endwhile
    181. case $profver>="11":endpaint
    Alles anzeigen
  • Abt. Wie das Leben so spielt
    =====================
    Wie das Leben so spielt, ist mir vorige Woche mein Win7-64 Laptop abgeraucht. Ich war aber selber schuld, hatte ihn über Nacht mit Youtube-Videos im Auto-Run Modus gequält, war dabei eingeschlafen und hatte morgens überall feinen weissen Staub im Zimmer - und in der Lunge. Merke: Ein COMPI gehört nicht ins Schlafzimmer! Oder zumindest innen der Staubfilz von Jahren aus den Lüftungskanälen und von den Heat Sinks.

    Aber das ist ja kein Problem, man hat ja noch den Vierkerner-PC. Nur dass der 1 Jahr und 4 Monate nun nicht in Betrieb war. Eingeschaltet, quittierte erst mal AVIRA Antivirus die Lizenz und verweigert seither manuelle Scans und jegliches Update. Lässt sich aber nicht löschen. Naja - wird schon nix passieren. Nur dass auch Windows-Update sich weigerte, Win-7 so lange zurück mit Updates zu versorgen. Naja, wird schon nix passieren...

    Zack: BLUESCREEN. Hochfahren im Protected Mode, schauen was los ist - nix besoneres. Also wieder im Normalmodus hoch, Scan mittels Windows Essientials-Scanner. Der sich nicht updated. Naja - wird wohl nur ein kurzer Stromausfall schuld sein, oder?

    Zack - der nächste Bluesccreen. Das ganze nochmal, nun merkwürdiger Weise mit einem neuen Adimin$ Account - der aber nur Userberechtigung hat. Very merkwürdig. Also Virus-Vollscan mit dem was vor eineinhalb Jahren aktuell war. Und siehe da: Volles Gebimmel: 62 Funde, und bei jedem Scan-Durchgang werden es mehr... Auch wird der Rechner immer langsamer und langsamer ... jetzt auch wieder ... Mit letzter Geduld:
    Gruss

    P.S.: Plane Neukauf eines Compi. Man gönnt sich ja sonst nix.
  • Abt. Exponentielle Regression
    ======================
    Die obigen Bevölkerungs-Tabellen lassen eine gewisse Abschätzung von Zwischenwerten zu. Da man das Wachstumsgesetz von Populationen (- ohne Störungen wie Kriege etc.) aber kennt (Exponentialfunktion y= a*exp(b*x) ), geht das sogar noch etwas genauer, wenn man eine fehlerminimierte Exponentialkurve durch die bekannten Wertepaare legt. Logarithmiert man die y-Werte, kann man dazu die bekannte Methode der kleinsten Quadrate von Gauss verwenden.
    Gruss

    Brainfuck-Quellcode

    1. WindowTitle "Exponential-Regression Y=a*EXP(b*X)"
    2. '(XW) Experimentalware 2019-04 ohne jede Gewähr by P.Specht, Vienna/Austria
    3. 'Q: Internet-Wiki, div. Studienliteratur
    4. WindowStyle 24:Window 0,0-%maxx,%maxy:print:font 2
    5. var xh&=width(%hwnd)\2:var yh&=height(%hwnd)\2
    6. '{Datentabellen nach numerisch konvertieren}
    7. var db&=3 'Anzahl Datentabellen
    8. font 2:cls:Declare Data$[db&-1]
    9. Data$[0] = \
    10. "x-Wert,Testfunktionswert y=1*exp(1*x);"+\
    11. "-1,0.36787944117144232;"+\
    12. "0,1;"+\
    13. "0.1,1.10517091807564762;"+\
    14. "0.2,1.22140275816016983;"+\
    15. "0.5,1.64872127070012815;"+\
    16. "1 ,2.71828182845904524;"+\
    17. "2 ,7.38905609893065023;"+\
    18. "3 ,20.0855369231876677;"+\
    19. "10 ,22026.4657948067165;"+\
    20. "100,2.688117141816135449e+43;"+\
    21. "150,1.3937095806663796973e+65;"+\
    22. "233,1.55100887702963581e+101"
    23. Data$[1]= \
    24. "Jahr,Weltbevölkerung[Mio],Geburtenrate[1/1000],AbLetzterPeriodeGelebte[Mrd];"+\
    25. "-50000,0.000002,0,0;"+\
    26. "-8000,5,80,1.1;"+\
    27. "1,300,80,46;"+\
    28. "1200,450,60,26.6;"+\
    29. "1650,500,60,12.7;"+\
    30. "1750,795,50,3.2;"+\
    31. "1850,1265,40,4;"+\
    32. "1900,1656,40,2.9;"+\
    33. "1950,2516,34.5,3.4;"+\
    34. "1995,5760,31,5,4;"+\
    35. "2011,6987,23,2.1"
    36. Data$[2]= \
    37. "Jahr,Bevölkerung[Mio],Wachstumsrate[%/a],Zuwachs[Mio/a],Durchschnittsalter;"+\
    38. "1950,2530,1.86,47.1,23.5;"+\
    39. "1960,3030,1.9,60.6,22.7;"+\
    40. "1970,3690,2.0,76.0,21.5;"+\
    41. "1980,4450,1.8,82.9,22.6;"+\
    42. "1990,5320,1.5,84.2,24.1;"+\
    43. "2000,6130,1.2,77.3,26.3;"+\
    44. "2010,6920,1.2,81.7,28.5;"+\
    45. "2020,7720,0.9,73.3,31.0;"+\
    46. "2030,8420,0.7,63.7,33.2;"+\
    47. "2040,9040,0.6,54.0,34.6;"+\
    48. "2050,9550,0.5,43.1,36.1"
    49. Declare rec$[],tmp$[], dbkidx&,Z&,S&, i&,j&, A![db&-1, 50,5]
    50. 'Alle Datentabellen einlesen in A![Tabellennummer(0..db&-1), Max.Zeilen, MaxSpalten]
    51. Whileloop 0,2:dbkidx&=&Loop
    52. clear rec$[],tmp$[]
    53. rec$[]=explode(Data$[dbkidx&],";"):Z&=sizeof(rec$[])
    54. tmp$[]=explode(rec$[0],",") :S&=sizeof(tmp$[])
    55. ' font 2:print "\n ";rec$[0];":":print:font 1
    56. whileloop 1,z&-1:i&=&loop
    57. clear tmp$[]:tmp$[]=explode(rec$[i&],",")
    58. whileloop 0,sizeof(tmp$[])-1:j&=&Loop
    59. A![dbkidx&, i&,j&]=val(tmp$[j&])
    60. ' print tab(5+j&*15);format$("%g",A![dbkidx&, i&,j&]);if(j&<(s&-1)," ",""),
    61. endwhile':print:print
    62. endwhile':print
    63. Endwhile
    64. '}
    65. '{Auswahl der Datenspalten der verwendeten Tabelle
    66. Declare dbk&,x![z&],y![z&],retn![9]'= Antwortliste von Proc ExpRegr
    67. Print "\n Tabelle wählen, 0=Testtabelle, max=";int(db&-1)," Gewählt: ";
    68. input dbk&
    69. cls
    70. print "\n Verwendete DatenTabelle: Nr. ";dbk&:print
    71. '--------- Erläuterung:
    72. 'A![dbk&, Zeile, Spalte] mit Spalte x:Jahr, y:Bevölkerung
    73. whileloop 1,z&-1:i&=&loop
    74. x![i&] = A![dbk&, i&,0]
    75. y![i&] = A![dbk&, i&,1]
    76. print " ";i&;".:";tab(8);format$("%g",x![i&]),tab(20);format$("%g",y![i&])
    77. endwhile
    78. 'print z&-1, sizeof(y![])-2 'Check Anzahl
    79. '}
    80. Main:
    81. ExpRegr y![],x![],retn![]
    82. PrtExpRegr retn![]
    83. ToClip:
    84. CLEARCLIP:Whileloop 0,9:PUTCLIP format$("%g",retn![&Loop])+"\n":endwhile
    85. print "\n *** Ergebniswerte in Zwischenablage! ***"
    86. beep
    87. declare x!,y!,a!,b!
    88. a!=retn![1]:b!=retn![2]
    89. lup:
    90. Print "\n\n X-Wert: ";
    91. Input x!
    92. locate %csrlin-1,40
    93. print "Zugehöriger Y-Wert: ";format$("%g",a!*exp(b!*X!))
    94. goto "lup"
    95. waitinput
    96. END
    97. Proc ExpRegr :parameters y![],x![],retn![]
    98. var tm&=&GetTickCount:var n&=Sizeof(y![])-2
    99. declare z![n&],i&,s1!,s2!,s3!,s4!,s5!,s!,a!,b!,k!,f!
    100. Whileloop N&:I&=&Loop
    101. z![i&] = LN(y![i&])
    102. s1!=s1!+x![i&]
    103. s2!=s2!+z![i&]
    104. s3!=s3!+sqr(x![i&])
    105. s4!=s4!+sqr(z![i&])
    106. s5!=s5!+x![i&]*z![i&]
    107. endwhile
    108. b!=(n&*s5!-s2!*s1!)/(n&*s3!-sqr(s1!))
    109. a!=(s2!-b!*s1!)/n&
    110. s1!=b!*(s5!-s1!*s2!/n&)
    111. s4!=s4!-sqr(s2!)/n&
    112. s2!=s4!-s1!
    113. s5!=s1!/s4!
    114. k!=Sqrt(s5!)
    115. s!=Sqrt(s2!/(n&-2))
    116. if s2!<>0
    117. f!=s1!/s2!*(n&-2)
    118. else
    119. f!=1e100
    120. endif
    121. a!=Exp(a!)
    122. clear retn![]
    123. retn![0]=N& 'Wertepaare
    124. retn![1]=a! 'Fehlerminimierte Beiwerte der Gleichung
    125. retn![2]=b! 'Y = a * EXP( b * X )
    126. retn![3]=k! 'Exponentieller Korrelationskoeffizient
    127. retn![4]=s! 'Standardabweichung
    128. retn![5]=s5! 'Statist. Sicherheit: s5>=0.95: wahrscheinlich,
    129. ' >=0.98: signifikant, >=0.995: hochsignifikant
    130. retn![6]=f! 'Tabellen-F-Wert für F-Test
    131. retn![7]=1 'F1 Zählerfreiheitsgrade
    132. retn![8]=N&-2'F2 Nennerfreiheitsgrade
    133. retn![9]=&GetTickCount-tm& 'Berechnungszeit [ms]
    134. 'Implizites return retn![] (byVarAddr)
    135. Endproc
    136. Proc PrtExpRegr :parameters retn![]
    137. print "\n ============================================================="
    138. Print " E R G E B N I S : "
    139. print " ============================================================="
    140. print "\n Wertepaare: ";format$("%g",retn![0])
    141. print "\n Gefundene Gleichung: Y = ";format$("%g",retn![1]);\
    142. " * EXP(";format$("%g",retn![2]);" * X)"
    143. print "\n Expon.Korrelation: ";format$("%g",retn![3])
    144. print "\n Standardabweichung: ";format$("%g",retn![4])
    145. print "\n Statist. Sicherheit: ";format$("%g",retn![5]);" ... Prädikat: ";
    146. if retn![5]<0.95:print " Nicht nachweisbar"
    147. elseif retn![5]<0.98:print " Wahrscheinlich"
    148. elseif retn![5]<0.995:print " Signifikant"
    149. elseif retn![5]>=0.995:print " Hoch-signifikant"
    150. else: print " Unbekannt / Error"
    151. endif
    152. print "\n F-Wert für Tabellen-F-Test: ";format$("%g",retn![6])
    153. print "\n Zähler-Freiheitsgrade F1: ";format$("%g",retn![7])
    154. print "\n Nenner-Freiheitsgrade F2: ";format$("%g",retn![8])
    155. print "\n Rechendauer: ";format$("%g",retn![9]);" ms"
    156. print "\n =============================================================";
    157. EndProc
    Alles anzeigen
  • Korrekte Lösung, Michael!

    Wusstest du übrigens, daß wir verwandt sind? Vor spätestens 27 Generationen, wahrscheinlich früher, hatten wir alle die gleichen Vorfahren. Gibt´s das? Ja: 2 Eltern, 4 Großeltern, 8 Urgroßeltern ...
    2^28 Vorfahren + 2^27 gleichzeitig lebende Vor-Vorfahren = 268.5 Mio + 135 Mio = 403.5 Mio Menschen stellen die Gesamtbevölkerungszahl der damaligen Welt dar. Schränkt man das wegen der schwierigeren Mobilitätsverhältnisse auf Europa ein, dann stellen 25 Generationen zurück den Bevölkerungsstand Europas dar. Wir sind also (etwas weitläufig) Cousins!
    Gruss

    Quellcode

    1. WindowTitle "Exponential-Regression"
    2. WindowStyle 24:Window 0,0-%maxx,%maxy
    3. var xh&=width(%hwnd)\2:var yh&=height(%hwnd)\2
    4. font 2:cls
    5. Declare Data$[]
    6. Data$[0]= \
    7. "Jahr,Weltbevölkerung[Mio],Geburtenrate[1/1000],AbletztePeriodeGelebte[Mrd];"+\
    8. "-50000,0.000002,0,0;"+\
    9. "-8000,5,80,1.1;"+\
    10. "1,300,80,46;"+\
    11. "1200,450,60,26.6;"+\
    12. "1650,500,60,12.7;"+\
    13. "1750,795,50,3.2;"+\
    14. "1850,1265,40,4;"+\
    15. "1900,1656,40,2.9;"+\
    16. "1950,2516,34.5,3.4;"+\
    17. "1995,5760,31,5,4;"+\
    18. "2011,6987,23,2.1"
    19. Data$[1]= \
    20. "Jahr,Bevölkerung[Mio],Wachstumsrate[%/a],Zuwachs[Mio/a],Durchschnittsalter;"+\
    21. "1950,2530,1.86,47.1,23.5;"+\
    22. "1960,3030,1.9,60.6,22.7;"+\
    23. "1970,3690,2.0,76.0,21.5;"+\
    24. "1980,4450,1.8,82.9,22.6;"+\
    25. "1990,5320,1.5,84.2,24.1;"+\
    26. "2000,6130,1.2,77.3,26.3;"+\
    27. "2010,6920,1.2,81.7,28.5;"+\
    28. "2020,7720,0.9,73.3,31.0;"+\
    29. "2030,8420,0.7,63.7,33.2;"+\
    30. "2040,9040,0.6,54.0,34.6;"+\
    31. "2050,9550,0.5,43.1,36.1"
    32. Declare rec$[],tmp$[], dbk&,Z&,S&, i&,j&
    33. Declare A![0--1,50,5]
    34. Whileloop 0,1:dbk&=&Loop
    35. clear rec$[]:rec$[]=explode(Data$[dbk&],";"):Z&=sizeof(rec$[])
    36. clear tmp$[]:tmp$[]=explode(rec$[0],",") :S&=sizeof(tmp$[])
    37. clear A![z&,s&]
    38. font 2:print "\n ";rec$[0];":":print:font 1
    39. whileloop 1,z&-1:i&=&loop
    40. clear tmp$[]:tmp$[]=explode(rec$[i&],",")
    41. whileloop 0,s&-1:j&=&Loop
    42. A![dbk&, i&,j&]=val(tmp$[j&])
    43. print tab(5+j&*15);format$("%g",A![dbk&, i&,j&]);if(j&<(s&-1)," ",""),
    44. endwhile:print:print
    45. endwhile:print
    46. Endwhile
    47. locate 2,90
    48. Whileloop 54
    49. locate %csrlin,90
    50. print int(2000-23.5*&Loop);" ",
    51. print if(&Loop<10," ","");&Loop," Generation"+if(&Loop>1,"en","")+\
    52. " vorher: ",format$("#,0",2^&Loop),"Vorfahren"
    53. endwhile
    54. waitinput
    Alles anzeigen