Hallo

ich habe das nur gemacht, um mich selbst herauszufordern, nicht für eine echte Anwendung ... 2021
Um Zufälligkeit zu erzeugen, habe ich mit 3,14 (π) angefangen, die Zahl an der Dezimalstelle verschoben, wo sie über die System-Float-Präzision hinausgeht, aber nicht so weit, dass ein Fehler ausgelöst wird, und das dann mit variabler Dauer von Dateioperationen und Makroschleifen kombiniert.
Kurz gesagt, ich habe Nachkommastellen einer irrationalen Zahl gesucht, die jenseits der Controller-Präzision (als Variablentyp) liegen, und das mit G-Code-Prozessen kombiniert, die instabile Ausführungszeiten haben.
Wie auf dem Bild zu sehen, sind die Zahlen nicht identisch, aber es lässt sich eine Tendenz erkennen ... diese Tendenz kann weiter genutzt werden, als Faktor zur Erzeugung noch größerer Variation; sobald eine Tendenz bemerkt wird, kann sie z. B. verwendet werden, um einen Gauß (oder etwas anderes) auszulösen

Vielen Dank an alle, das war's fürs Erste

QUELLTEXT
G305
NOEX VBNCT = 1
$ V9 = 100 ( ordinul numerelor aleatoare : 10 - 10000, etc )
$ V1 = VPAI V7 = 01 V8 = 01 (*7)
$
$ ( * )
$
$ V05 = 0
$ V11 = 0 V12 = 0 V13 = 0 V14 = 0
$ V15 = 0 V16 = 0 V17 = 0
$ V18 = 0 V19 = 0
$ V20 = 0
CALL OFLASH LVA = 10
CALL OFLASH LVA = 20
CALL OFLASH LVA = 30
CALL OFLASH LVA = 40
NOEX V52 = 0 V54 = 0 V56 = 0 V58 = 0
FWRITC numbers.txt;(AC)C
NBEGIN NOEX
$ V2 = DROUND [ V1 ] V3 = FIX [ V2 ]
$ V4 = ABS [ V1 - V3 ] V5 = V5 + 1 (*6)
IF [ ABS [ V4 ] LE 0.0000001 ] NBREAK (*1b)
IF [ MOD [ V5 , V7 ] EQ 0 ] NTRUE
( nfalse ) NOEX V1 = V4 * V9
GOTO NDONE
NTRUE IF [ V4 GE 0.10 ] NJUMP1 (*1a)
NOEX V4 = V4 * 10
GOTO NTRUE
NJUMP1 NOEX V1 = V4 * V4 * V9
IF [ MOD [ V5 , V8 ] NE 0 ] NJUMP3
NOEX V6 = MOD [ VDIN [ 1000 ] , 10 ] (*2)
IF [ V6 GE 0.5 ] NJUMP2 (*3)
NOEX V6 = 1
NJUMP2 NOEX V1 = V1 * V6 * 11 / 100
NJUMP3 NOEX
NDONE NOEX
( IF [ V5 LT 10 ] NBEGIN ) (*4) (*5)
CALL OHS1
CALL OHS2
CALL OHS3
CALL OHS4
NOEX PUT ' ' PUT V1
$ PUT ' ' PUT V2 , 7 ( DROUND [ V1 ] )
$ PUT ' ' PUT V3 , 5 ( FIX [ V2 ] )
$ PUT ' ' PUT V4 ( ABS [ V1 - V3 ] )
$ PUT ' ' PUT V5 , 4 ( V5 = V5 + 1 )
$ PUT ' ' PUT V6 , 1 ( MOD [ VDIN [ 1000 ] , 10 ] )
$ PUT ' ' PUT V7 , 3 ( *.sdf )
$ PUT ' ' PUT V8 , 3 ( *.sdf )
$ PUT ' ' PUT V11 , 4
$ PUT ' ' PUT V12 , 4
$ PUT ' ' PUT V13 , 4
$ PUT ' ' PUT V14 , 4
$ PUT ' ' PUT V15 , 4
$ PUT ' ' PUT V16 , 4
$ PUT ' ' PUT V17 , 4
$ PUT ' ' PUT V18 , 4
$ PUT ' ' PUT V19 , 4
$ PUT ' ' PUT V20 , 4
WRITE C
IF [ V5 LT 1000 ] NBEGIN
NBREAK CLOSE C
FWRITC clase.txt;A
NOEX PUT ' ' PUT V7 , 3
$ PUT ' ' PUT V8 , 3
$ PUT ' ' PUT V11 , 4
$ PUT ' ' PUT V12 , 4
$ PUT ' ' PUT V13 , 4
$ PUT ' ' PUT V14 , 4
$ PUT ' ' PUT V15 , 4
$ PUT ' ' PUT V16 , 4
$ PUT ' ' PUT V17 , 4
$ PUT ' ' PUT V18 , 4
$ PUT ' ' PUT V19 , 4
$ PUT ' ' PUT V20 , 4
WRITE C
CLOSE C
FWRITC his.txt;A
NOEX PUT ' ' PUT V52 , 3
$ PUT ' ' PUT V54 , 3
$ PUT ' ' PUT V56 , 3
$ PUT ' ' PUT V58 , 3
WRITE C
M02
(
)
OFLASH
NOEX VC [ LVA + 01 ] = 0
$ VC [ LVA + 02 ] = 0
$ VC [ LVA + 03 ] = 0
$ VC [ LVA + 04 ] = 0
$ VC [ LVA + 05 ] = 0
$ VC [ LVA + 06 ] = 0
$ VC [ LVA + 07 ] = 0
$ VC [ LVA + 08 ] = 0
$ VC [ LVA + 09 ] = 0
$ VC [ LVA + 10 ] = 0
RTS
OHS1
NOEX V51 = VDIN [ 1000 ]
IF [ V3 LE V9/10*1 ] NC01
IF [ V3 LE V9/10*2 ] NC02
IF [ V3 LE V9/10*3 ] NC03
IF [ V3 LE V9/10*4 ] NC04
IF [ V3 LE V9/10*5 ] NC05
IF [ V3 LE V9/10*6 ] NC06
IF [ V3 LE V9/10*7 ] NC07
IF [ V3 LE V9/10*8 ] NC08
IF [ V3 LE V9/10*9 ] NC09
GOTO NC10
NC01 NOEX V11 = V11 + 1
GOTO NC99
NC02 NOEX V12 = V12 + 1
GOTO NC99
NC03 NOEX V13 = V13 + 1
GOTO NC99
NC04 NOEX V14 = V14 + 1
GOTO NC99
NC05 NOEX V15 = V15 + 1
GOTO NC99
NC06 NOEX V16 = V16 + 1
GOTO NC99
NC07 NOEX V17 = V17 + 1
GOTO NC99
NC08 NOEX V18 = V18 + 1
GOTO NC99
NC09 NOEX V19 = V19 + 1
GOTO NC99
NC10 NOEX V20 = V20 + 1
GOTO NC99
NC99 NOEX V52 = V52 + VDIN [ 1000 ] - V51
RTS
OHS2
NOEX V53 = VDIN [ 1000 ]
IF [ V3 GT V9/10*01 ] NC02
NOEX LVA = 01
GOTO NC99
NC02 IF [ V3 GT V9/10*02 ] NC03
NOEX LVA = 02
GOTO NC99
NC03 IF [ V3 GT V9/10*03 ] NC04
NOEX LVA = 03
GOTO NC99
NC04 IF [ V3 GT V9/10*04 ] NC05
NOEX LVA = 04
GOTO NC99
NC05 IF [ V3 GT V9/10*05 ] NC06
NOEX LVA = 05
GOTO NC99
NC06 IF [ V3 GT V9/10*06 ] NC07
NOEX LVA = 06
GOTO NC99
NC07 IF [ V3 GT V9/10*07 ] NC08
NOEX LVA = 07
GOTO NC99
NC08 IF [ V3 GT V9/10*08 ] NC09
NOEX LVA = 08
GOTO NC99
NC09 IF [ V3 GT V9/10*09 ] NC10
NOEX LVA = 09
GOTO NC99
NC10 NOEX LVA = 10
NC99 NOEX LVA = LVA + 10*2 VC [ LVA ] = VC [ LVA ] + 1 V54 = V54 + VDIN [ 1000 ] - V53
RTS
OHS3
NOEX LVA = 0 V55 = VDIN [ 1000 ]
NLOOP NOEX LVA = LVA + 01
IF [ V3 LE V9/10*LVA ] NDONE
GOTO NLOOP
NDONE NOEX LVA = LVA + 10*3 VC [ LVA ] = VC [ LVA ] + 1 V56 = V56 + VDIN [ 1000 ] - V55
RTS
OHS4
NOEX LVA = DROUND [ V3 / 10 ] LVA = FIX [ LVA ] V57 = VDIN [ 1000 ]
IF [ [ [ LVA - V3 / 10 EQ 0 ] AND [ LVA NE 0 ] ] EQ 1 ] NDONE
NOEX LVA = LVA + 1
NDONE NOEX LVA = LVA + 10*4 VC [ LVA ] = VC [ LVA ] + 1 V58 = V58 + VDIN [ 1000 ] - V57
RTS
( <=10
x x/10 []
0 0 0 1
7 0.7 0 1
9 0.9 0 1
10 1 1 1 OK
15 1.5 1 2
100 10 10 10 OK
IF '{}<>0 OR [] =0 ' THEN ++
IF NOT '{}<>0 OR [] =0 ' THEN JUMP
IF '{} =0 SI []<>0 ' THEN JUMP
)
Der Beitrag wurde von burs bearbeitet: 27.08.2025, 09:28 Uhr
Angehängte Datei(en)

untitled.jpg ( 100.13KB )
Anzahl der Downloads: 11