ALGORITHMEN - Teil XV : Das Müllen ist des Wandrers Lust

    • Neu

      Abt. Primzahllücken
      ==============
      Zum Rätsel WR 17 schulde ich noch das zugehörige Programm - Bittesehr!
      Gruss

      Quellcode

      1. WindowTitle " PRIMZAHLLÜCKEN (= AUFEINANDERFOLGENDE PRIMZAHLDIFFERENZEN) SUCHEN"
      2. WindowStyle 1 | 8 | 16 :cls:Declare Daten#,ZahlenAnzahl&,StartZeit&,PrimAnz&,n&
      3. 'Erstellt mit dem XProfan Datengenerator, (C) Frank Abbing
      4. 'C:\Users\Jonathan\Desktop\JWASM\PrimTurbo_Hauptschleife.BIN (orig.Dateigröße 162 Byte)
      5. Declare Code#,Luecke&,last&:Dim Code#,164:Clear Code#
      6. Long Code#,0=1397791846,1448563281,35048,-1959228672,12977264,21022208
      7. Long Code#,24=37799424,54576640,71353856,88131072,104908288,121685504
      8. Long Code#,48=16827904,16859334,441,-834977536,-796187532,311087363,1946286720
      9. Long Code#,76=-1047834384,-487075445,-1957113717,-958790696,-788332285
      10. Long Code#,96=-210315461,29087723,-1962934272,63013832,-150736757,225955387
      11. Long Code#,120=-1048374902,16416770,-347868555,63474671,428425679,1499094878
      12. Long Code#,144=-1654237093,321731,-854261760,-1957165221,49920: huh:
      13. Print "\n Primzahlbereich untersuchen bis: ";:Input ZahlenAnzahl&
      14. ZahlenAnzahl&=abs(ZahlenAnzahl&):case ZahlenAnzahl&=0:goto "huh"
      15. set("decimals",15):Dim Daten#,ZahlenAnzahl&+5:Long Daten#,0=ZahlenAnzahl&
      16. Long Daten#,4=(Sqrt(ZahlenAnzahl&)+1)\1
      17. WhileLoop 0,@SizeOf(Code#)-4:If @Long(Code#,&loop)=123456789
      18. Long Code#,&loop=Daten#:EndIf
      19. EndWhile:Print " Primzahlen werden ermittelt..."
      20. StartZeit&=&gettickcount:@Call(Code#):Dispose Code#
      21. Print " Benötigte Zeit: "+format$("%g",(&gettickcount-StartZeit&)/1000)+" Sekunden."
      22. Print " Gefundene Primzahlen: " + @Str$(@Long(Daten#, ZahlenAnzahl& + 1)):nochmaL:
      23. print "\n Welche Primzahldifferenz wird gesucht? ";:input Luecke&:n&=0
      24. case Luecke&=0:goto "exit"
      25. case (Luecke&>1) and ((Luecke& mod 2)>0):goto "Antwort"
      26. whileloop 1,Zahlenanzahl&
      27. IfNot @Byte(Daten#,&loop):if (&Loop-Last&)=Luecke&
      28. print Last&;"_";&Loop;" ";:inc n&:case n&=1:waitinput 3000
      29. endif:last&=&Loop:endif
      30. endwhile:Antwort:
      31. beep:font 2
      32. print "\n\n ";n&;" Lücken der Größe ";Luecke&;" gefunden im Bereich bis 0..";Zahlenanzahl&
      33. print "\n Lückenverhältnis (N / Anzahl Primzahlen): ";n&/@Long(Daten#,ZahlenAnzahl&+1)
      34. font 0:waitinput:goto "nochmaL": Exit:
      35. Dispose Daten#:font 2:print "\n Auf Wiedersehen! ":waitinput 2000
      36. END
      Alles anzeigen
    • Neu

      Abt. Interessante Links
      ==================
      Vortrag im Rahmen des 34. Jahrestreffens des Chaos Computer Clubs "34C3" Ende 2017 in Leipzig (insgesamt ca. 15000 Teilnehmer!):
      Englisch: "34C3 - Everything you want to know about x86 microcode, but might have been afraid to ask"
      Deutsch: "Wie man den Intel/AMD x86 MICROcode des Risc-Processors, der in 80x86 CPUs sitzt, patchen kann"

      Und hier noch ein Vortrag über letzte Hacker-Erkenntnisse zur CPU-internen "System Management Engine Intel ME", auf der dem Vernehmen nach ab Stromanschluss nicht abschaltbar das Linux-OS MINIX läuft.
      Gruss

      P.S.: Besonders aktuell wegen des Meltdown/Spectre Hardwarebugs;
      Ermittlungsstand gilt aber nur für CPUs bis Ende 2013.

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

    • Neu

      Abt. Realistische Bewegung von 3D-Game Figuren
      =====================================
      durch Einsatz von künstlichen neuronalen Netzen: Youtube-Video: Atemberaubend!
      Vor kurzem sah das noch so aus: Youtube-Link

      Gruss

      P.S.: Wo wird das enden? Werden Spielfiguren für mehr Realismus z.B. simulierte künstliche Schmerzen erleben? Für sie sind diese nämlich überhaupt nicht künstlich, sondern Schmerzen! Tierschutzparagraphen für Spielfiguren!?
    • Neu

      Abt. XProfan X4: Floats mit Inline-FPU-Befehlen direkt bearbeiten
      ================================================
      EDIT: Das bezieht sich auch auf die Alphaversion hier im Board: LINK
      Gruss

      Quellcode

      1. CLS
      2. ASM "MULfa",3
      3. MOV ECX,par3
      4. MOV EAX,par1
      5. FLD QWORD PTR [EAX]
      6. MOV EAX,par2
      7. FLD QWORD PTR [EAX]
      8. FMUL
      9. FSTP QWORD PTR [ECX]
      10. ENDASM
      11. Var a! = 2e3
      12. var b! = 1.234
      13. var c! = 0
      14. MULfa( addr(a!), addr(b!), addr(c!) )
      15. print format$("%g",c!)
      16. waitinput
      Alles anzeigen

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

    • Neu

      Abt. Skalarprodukt zweier Vektoren mittels X4-ASM ermitteln
      =============================================
      Alpha-Version ohne jede Gewähr (Bei mir hat´s funktioniert).
      Gruss

      Brainfuck-Quellcode

      1. WindowTitle "Skalarprodukt zweier Float-Vektoren mit X4-ASM"
      2. WindowStyle 24:cls
      3. set("AsmMode",0)
      4. ASM "aDOTPRODf",4
      5. MOV EAX,par1
      6. MOV EBX,par2
      7. MOV EDI,par3 'Size
      8. MOV ECX,par4 'addr(DotProd!)
      9. XOR EDX,EDX '&Loop
      10. FLDZ 'Sum=0
      11. Rept:
      12. FLD QWORD PTR [EAX]
      13. FLD QWORD PTR [EBX]
      14. FMUL
      15. FADD
      16. INC EDX
      17. CMP EDI,EDX
      18. JE Exyt
      19. ADD EAX,8
      20. ADD EBX,8
      21. JMP Rept
      22. Exyt:
      23. FSTP QWORD PTR [ECX]
      24. ENDASM
      25. '--------------------------
      26. Var vecsize& = 1000000 ' ... Beispiel
      27. '--------------------------
      28. print "\n Skalarprodukt zweier Vektoren der Dimension ";format$("#,##0",vecsize&)
      29. var tmp&=&gettickcount
      30. declare a![vecsize&-1],b![vecsize&-1],dotprod!
      31. tmp&=&gettickcount-tmp&
      32. Print "\n Vektoren deklariert in ";tmp&;" ms."
      33. print "\n Werte zugewiesen in ... ";
      34. tmp&=&gettickcount
      35. Randomize
      36. a![]=rnd() ' 2e10
      37. b![]=rnd() ' -1.1e10
      38. tmp&=&gettickcount-tmp&
      39. print tmp&; " ms."
      40. var tm&=&gettickcount
      41. aDOTPRODf(addr(a![0]),addr(b![0]),sizeof(a![]),addr(dotprod!))
      42. tm&=&gettickcount-tm&
      43. font 2:print "\n\n Ergebnis = ";format$("%g",dotprod!)
      44. print "\n ... errechnet in ";tm&;" ms."
      45. waitinput
      Alles anzeigen