Groups | Search | Server Info | Login | Register


Groups > de.sci.electronics > #353350

Re: random Statistik

From Helmut Schellong <var@schellong.biz>
Newsgroups de.sci.electronics
Subject Re: random Statistik
Date 2024-06-15 00:44 +0200
Message-ID <v4ih47$1lge3$1@solani.org> (permalink)
References (6 earlier) <v4cboo$1indd$1@solani.org> <v4ctle$1i87t$1@solani.org> <v4fflu$1kahr$1@solani.org> <v4gu3f$1kv5u$1@solani.org> <666C1D31.22DA75C6@proton.me>

Show all headers | View raw


Carla Schneider wrote:
> Helmut Schellong wrote:

> Chatgpt:
> -------
> The script appears to be written in a Unix shell scripting language,
> specifically using syntax and constructs typical of bash or sh.
> --------
> 
> Laeuft allerdings bei mir nicht:
> 
> ------
> bash: line 4: array: command not found
> Anzahl Zufallszahl SummeZ Mittelwert Abweichungen
> bash: line 8: syntax error near unexpected token `from'
> bash: line 8: `for n from 1 to 1000000 repeat'
> ------
> Ich vermute mal das ist fuer deine selbstgeschriebene Spezial-shell.

Selbstverständlich.
Ich wäre ja ein Vollidiot, würde ich nicht so wählen.
Nur in dieser Shell ist ein random-Spritz-Algorithmus implementiert.

Mindestens 90% der Möglichkeiten dieser Shell sind in keiner anderen Shell vorhanden.
Simple Beispiele:
[ for Name ] [ from a ] [ by i ] [ to b ] repeat
for 5  a b c - e  in  .....

> Es ist auch keine gute Idee sowas als shell script zu programmieren...

Es ist schlicht optimal, solch eine kleine Untersuchung per Skript zu implementieren.

> Gluecklicherweise gibts chatgpt um das ganze in C zu uebersetzen:

Ich wollte doch gezielt den kryptographischen Algorithmus Spritz untersuchen.

ChatGPT hat nachfolgend gewiß nicht mein bloßes Skript übersetzt, ohne weitere
Informationen (und Nacharbeiten).

> ---------
> #include <stdio.h>
> #include <stdlib.h>
> #include <time.h>
> #include <math.h>
> 
> int main() {
>      long double ARITH_FMT = 0.0;
>      long long r = 0, r0 = 0, z = 0, n = 0, e = 0, s = 0, m = 0, m0 = 0;
>      long double sa = 0.0, dp = 0.0, dm = 0.0;
>      int d0 = 0, d = 0, i = 0;
>      long long Z[7] = {0};  // Array to store counts of dice rolls from 1 to 6
>      long long count = 1000000;
> 
>      printf("Anzahl Zufallszahl SummeZ Mittelwert Abweichungen\n");
> 
>      // Initialize random number generator
>      srand(time(NULL));
> 
>      for (n = 1; n <= count; n++) {
>          r = (rand() % 6) + 1;  // Generate random number between 1 and 6
>          d = r - r0;
>          r0 = r;
> 
>          if (d >= 0) {
>              dp += d;
>          } else {
>              dm -= d;
>          }
> 
>          s += r;
>          m = s / (long double)n;
>          sa += m - 3.5;
>          Z[r]++;
> 
>          if (d == 0) {
>              d0++;
>          }
> 
>          printf("%lld %lld %lld %.6Lf %lld\n", n, r, s, m, llround(sa));
>      }
> 
>      r = (count - 1) / 6;
> 
>      printf("%lld %lld %lld %lld %lld %lld  Anzahlen von 1 2 3 4 5 6\n",
>             Z[1], Z[2], Z[3], Z[4], Z[5], Z[6]);
> 
>      printf("%lld %lld %lld %lld %lld %lld  %% Differenzen zum Erwartungswert\n",
>             Z[1] - r, Z[2] - r, Z[3] - r, Z[4] - r, Z[5] - r, Z[6] - r);
> 
>      printf("%.6Lf %.6Lf %d  Summen der pos. und neg. Differenzen und Gleichheiten Z-Z0\n", dp, dm,
> d0);
> 
>      return 0;
> }
> -----------
> 
> Wenn man aufs ausdrucken der count Zeilen verzichtet laeuft es sogar richtig schnell:
> 
> 
> Anzahl Zufallszahl SummeZ Mittelwert Abweichungen
> 166214 166518 166529 166583 167060 167096  Anzahlen von 1 2 3 4 5 6
> -452 -148 -137 -83 394 430  % Differenzen zum Erwartungswert
> 973651.000000 973646.000000 166457  Summen der pos. und neg. Differenzen und Gleichheiten Z-Z0
> 
> 
> Mit count=1000000000 (100*100 Mio)  dauert es 4 Minuten:
> 
> bash-5.2# date; ./script2 ; date
> Fri Jun 14 12:19:19 CEST 2024
> Anzahl Zufallszahl SummeZ Mittelwert Abweichungen
> 1666727685 1666703808 1666627423 1666644804 1666640939 1666655341  Anzahlen von 1 2 3 4 5 6
> 61019 37142 -39243 -21862 -25727 -11325  % Differenzen zum Erwartungswert
> 9722203361.000000 9722203357.000000 1666717345  Summen der pos. und neg. Differenzen und
> Gleichheiten Z-Z0
> Fri Jun 14 12:23:34 CEST 2024
> 
> 
> Man sieht schoen dass die Differenzen wie erwartet etwa 100 mal so gross geworden sind.
> Wenn man eine Statistik ueber die Differenzen machen will sollte man das ganze aber oefter
> rechnen, also statt 10Mrd lieber 10000 mal eine Mio.
> 
> 
> Nochmal das 100fache waeren mit dann 400Minuten auch kein Problem und an einem Tag machbar.

Ich sehe keinen Sinn darin, mehr als 100000 random-Zahlen zu untersuchen.
Eigentlich reicht eine Generierung von 10000 Zahlen, um die Qualität zu beurteilen.
Genau deshalb habe ich _meine_ Shell, nicht jedoch C, als Werkzeug gewählt.

Aktuelles Skript:
--------------------------------------------------------------------------------------
ARITH_FMT='%.6Lf'
set r:025 r0:025 z:025 n:020 e:020 s:025 m:025 m0:025
set sa:025 dp:025 dm:025 d0:025 c61:020 c16:020 c22:020
s=0 m=0.0 m0=-1.0 sa=0.0 d=00 skip=00 i=0000000000
array 1 6  Z  $i $i $i $i $i $i

echo Anzahl Zufallszahl SummeZ Mittelwert Abweichungen

for n from 1 to 100000 repeat
do
    let "r= random(6)+1" "d=r-r0" "d>=0"
    run? "let 'dp+=d'" "let 'dm-=d'"
    if let "skip==0"
    then
      if   let "r0==6 && r==1"
      then let "++c61, skip=1"
      elif let "r0==1 && r==6"
      then let "++c16, skip=1"
      elif let "r0==2 && r==2"
      then let "++c22, skip=1"
      fi
    else skip=0
    fi
    let "s+=r" "m=s/$n.0" "sa+=m-3.5" "++Z[r]" "d==0" && let "++d0"
    let "r0=r"
    echo "$n $r $s $m $((llround(sa)))"
done

let "r=($n-1)/6"
echo "%n$Z1 $Z2 $Z3 $Z4 $Z5 $Z6  " Anzahlen von 1 2 3 4 5 6
echo "$((Z1-r)) $((Z2-r)) $((Z3-r)) $((Z4-r)) $((Z5-r)) $((Z6-r))  " %
        Differenzen zum Erwartungswert
echo "$dp $dm $d0  " Summen der pos. und neg. Differenzen und Gleichheiten Z-Z0
echo "$c61 $c16 $c22  " Anzahlen der Zahlenfolgen 61, 16, 22
--------------------------------------------------------------------------------------
999986 4 3499025 3.499074 -779
999987 5 3499030 3.499075 -779
999988 6 3499036 3.499078 -779
999989 5 3499041 3.499079 -779
999990 5 3499046 3.499081 -779
999991 3 3499049 3.499080 -779
999992 2 3499051 3.499079 -779
999993 1 3499052 3.499076 -779
999994 3 3499055 3.499076 -779
999995 5 3499060 3.499077 -779
999996 6 3499066 3.499080 -779
999997 2 3499068 3.499078 -779
999998 3 3499071 3.499078 -779
999999 2 3499073 3.499076 -779
1000000 2 3499075 3.499075 -779

166369 167418 166832 166125 166662 166594   Anzahlen von 1 2 3 4 5 6
-297 752 166 -541 -4 -72   Differenzen zum Erwartungswert
972396 972394 166237   Summen der pos. und neg. Differenzen und Gleichheiten Z-Z0
23898 23555   Anzahlen der Zahlenfolgen 61 und 16

99989 4 350117 3.501555 340
99990 3 350120 3.501550 340
99991 1 350121 3.501525 340
99992 2 350123 3.501510 340
99993 3 350126 3.501505 340
99994 5 350131 3.501520 340
99995 6 350137 3.501545 340
99996 2 350139 3.501530 340
99997 6 350145 3.501555 340
99998 2 350147 3.501540 340
99999 6 350153 3.501565 340
100000 6 350159 3.501590 340

16625 16690 16581 16773 16667 16664   Anzahlen von 1 2 3 4 5 6
-41 24 -85 107 1 -2   Differenzen zum Erwartungswert
97303 97297 16614   Summen der pos. und neg. Differenzen und Gleichheiten Z-Z0
2409 2408 2350   Anzahlen der Zahlenfolgen 61, 16, 22
--------------------------------------------------------------------------------------



-- 
Mit freundlichen Grüßen
Helmut Schellong   var@schellong.biz
http://www.schellong.de/c.htm  http://www.schellong.de/c2x.htm  http://www.schellong.de/c_padding_bits.htm
http://www.schellong.de/htm/bishmnk.htm  http://www.schellong.de/htm/rpar.bish.html  http://www.schellong.de/htm/sieger.bish.html
http://www.schellong.de/htm/audio_proj.htm  http://www.schellong.de/htm/audio_unsinn.htm  http://www.schellong.de/htm/tuner.htm
http://www.schellong.de/htm/string.htm  http://www.schellong.de/htm/string.c.html  http://www.schellong.de/htm/deutsche_bahn.htm
http://www.schellong.de/htm/schaltungen.htm  http://www.schellong.de/htm/math87.htm  http://www.schellong.de/htm/dragon.c.html

Back to de.sci.electronics | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-10 11:24 +0200
  Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-10 17:05 +0200
    Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-11 11:48 +0200
      Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-11 13:00 +0200
        Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-11 15:50 +0200
          Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-11 16:26 +0200
            Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-11 17:51 +0200
      Re: random Statistik Rolf Bombach <rolfnospambombach@invalid.invalid> - 2024-06-11 14:31 +0200
      Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-11 15:45 +0200
      Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-12 05:04 +0200
        Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-12 08:43 +0200
          Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-12 16:36 +0200
            Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-12 21:41 +0200
              Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-13 21:01 +0200
                Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-14 10:13 +0200
                Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-14 12:36 +0200
                Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-15 00:44 +0200
                Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-15 13:05 +0200
                Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-15 15:10 +0200
                Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-16 11:17 +0200
                Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-16 22:59 +0200
                Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-17 12:10 +0200
                Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-17 15:05 +0200
                Re: random Statistik Rolf Bombach <rolfnospambombach@invalid.invalid> - 2024-06-15 20:34 +0200
                Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-15 23:12 +0200
                Re: random Statistik Rolf Bombach <rolfnospambombach@invalid.invalid> - 2024-06-17 15:16 +0200
                Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-17 16:40 +0200
                Re: random Statistik - Windows PowerShell Helmut Schellong <var@schellong.biz> - 2024-06-18 00:17 +0200
            Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-13 09:43 +0200
              Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-13 12:55 +0200
                Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-13 14:05 +0200
                Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-13 16:11 +0200
                Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-13 16:57 +0200
                Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-13 20:47 +0200
                Re: random Statistik Carla Schneider <carla_schn@proton.me> - 2024-06-18 10:59 +0200
                Re: random Statistik Helmut Schellong <var@schellong.biz> - 2024-06-18 17:37 +0200

csiph-web