Rev 3265 | Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
20 | reyssat | 1 | !if $wims_read_parm!=slib_header |
2 | !goto proc |
||
3 | !endif |
||
4 | slib_title=Generation of linear congruential random integers |
||
5 | slib_parms=4\ |
||
6 | ,n\ |
||
7 | ,a\ |
||
8 | ,b\ |
||
9 | ,m |
||
10 | slib_author=Bernadette PERRIN-RIOU |
||
11 | slib_out=n integers generated by the linear congruences ax+b mod m |
||
12 | slib_synonyme= |
||
13 | slib_comment=The length of the data numbers is limited. |
||
14 | slib_example=10, 3,7,11 |
||
15 | !exit |
||
16 | |||
17 | :proc |
||
18 | slib_out= |
||
19 | |||
20 | !distribute item $wims_read_parm into slib_n,slib_a,slib_b,slib_m |
||
21 | slib_A=!randint $slib_m |
||
22 | |||
23 | slib_out=!exec pari {slib_L=vector($slib_n);slib_A=$slib_A;\ |
||
24 | for(slib_k=1,$slib_n,\ |
||
25 | slib_A=lift(Mod($slib_a*slib_A+$slib_b,$slib_m));\ |
||
26 | slib_L[slib_k]=slib_A);print(slib_L);} |
||
27 | |||
28 | slib_out =!trim $slib_out |