LINUX.ORG.RU
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]` 
33
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]` 
24
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]` 
35
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]` 
2
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]` 
38
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]` 
26
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]` 
7
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27` 
12
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27` 
14
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27` 
12
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27` 
8
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27` 
11
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27` 
9
drull@drull-laptop:/usr/share/man$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27` 
4
drull ★☆☆☆
()

denis@laptop:/etc/X11$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
expr: division by zero

на второй запуск поймал.

isden ★★★★★
()

метод Монте-Карло в помощь, если устроит результат с погрешностью.

qnikst ★★★★★
()

[code]~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53
~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53
~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53
~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53
~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53
~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53
~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53
~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53
~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53
~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53
~ > echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
53[/code]

Башизмы это плохо.

mydoom ★★★
()

Если в примере с 27 считать сумму трёх случайных чисел одной величиной, то вероятность получить деление на 27 без остатка будет достаточно большая - 1/111, если я не ошибаюсь.

GotF ★★★★★
() автор топика
Ответ на: комментарий от GotF

Я имею ввиду вероятность схлопотать деление на нуль.

GotF ★★★★★
() автор топика

btw, потестил на другой машинке -

[~]$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27`
8
[~]$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27`
8
[~]$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27`
8
[~]$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27`
8
[~]$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27`
8
[~]$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % 27`
8
[~]$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
74
[~]$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
74
[~]$ echo `expr $(($[$RANDOM % 999]+$[$RANDOM % 999]+$[$RANDOM % 999])) % $[RANDOM % 99]`
74

isden ★★★★★
()
Ответ на: комментарий от GotF

если считать сумму трёх чисел как надо то получается: 10139542/332334333 => 0.03045406486 считал как:

P1:=n->sum(sum(1,j=max(1,n-i-998)..min(n-i-1,998)),i=1..min(n-2,997))/999^3;
AP:=0;
for l from 1 to (111) do
 AP:=AP+P1(l*27):
od:
AP;

qnikst ★★★★★
()
Ответ на: комментарий от Deleted

VeGeek wrote:

Под чем запускали?

Это zsh, скорее всего. У него такая логика работы с RANDOM.

GotF ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.