Add 06/21 by Matteo

This commit is contained in:
Marco Realacci 2022-11-14 16:30:34 +01:00
parent 970467fe89
commit 1be2085d94
169 changed files with 962 additions and 0 deletions

View file

@ -0,0 +1,4 @@
L'input ad un sistema è costituito da un utente (umano) che preme due pulsanti etichettati, rispettivamente, con 1 ed 2.
L'utente può anche decidere di non premere alcun pulsante.
Con probabilità 0.2 l'utente preme il pulsante 1, con probabilità 0.3 l'utente preme il pulsante 2, con probabilità 0.5 non fa nulla (pulsante 0 per convenzione).
Quale dei seguenti modelli Modelica fornisce un modello ragionevole per l'utente di cui sopra?

View file

@ -0,0 +1,19 @@
model Env
Integer x; // Pulsante premuto dall'utente (0 nessun pulsante)
Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
x := 0;
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= 0.5)
then x := 0;
else
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= 0.4) then x := 1; else x:= 0; end if;
end if;
end when;
end Env;

View file

@ -0,0 +1,19 @@
model Env
Integer x; // Pulsante premuto dall'utente (0 nessun pulsante)
Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
x := 0;
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= 0.5)
then x := 0;
else
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= 0.3) then x := 0; else x:= 1; end if;
end if;
end when;
end Env;

View file

@ -0,0 +1,19 @@
model Env
Integer x; // Pulsante premuto dall'utente (0 nessun pulsante)
Real r1024;
Integer state1024[Modelica.Math.Random.Generators.Xorshift1024star.nState];
algorithm
when initial() then
state1024 := Modelica.Math.Random.Generators.Xorshift1024star.initialState(614657, 30020);
x := 0;
r1024 := 0;
elsewhen sample(0,1) then
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= 0.5)
then x := 0;
else
(r1024,state1024) := Modelica.Math.Random.Generators.Xorshift1024star.random(pre(state1024));
if (r1024 <= 0.2) then x := 1; else x:= 0; end if;
end if;
end when;
end Env;