Rev 20 | Rev 4161 | Go to most recent revision | Details | Compare with Previous | 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 |
||
3265 | bpr | 15 | slib_require=pari |
20 | reyssat | 16 | !exit |
17 | |||
18 | :proc |
||
19 | slib_out= |
||
20 | |||
21 | !distribute item $wims_read_parm into slib_n,slib_a,slib_b,slib_m |
||
22 | slib_A=!randint $slib_m |
||
23 | |||
24 | slib_out=!exec pari {slib_L=vector($slib_n);slib_A=$slib_A;\ |
||
25 | for(slib_k=1,$slib_n,\ |
||
26 | slib_A=lift(Mod($slib_a*slib_A+$slib_b,$slib_m));\ |
||
27 | slib_L[slib_k]=slib_A);print(slib_L);} |
||
28 | |||
29 | slib_out =!trim $slib_out |