Groups | Search | Server Info | Login | Register
Groups > de.sci.electronics > #353350
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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