Показать сообщение отдельно
Старый 09.03.2010, 13:34
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 20  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Собственно все и так ясно.
Выражение
Код AS1/AS2:
а[Math.round(Math.random() * 4)]++
это тоже самое, что и
Код AS1/AS2:
а[Math.round(Math.random() * 4)] = а[Math.round(Math.random() * 4)] + 1
Из этого видно, что индексы в правой и левой части будет в основном отличаться (вызов будет два раза), что и приводит к тому, что сумма не равна 100.
С b все ясно, так как "k" в выражении
Код AS1/AS2:
b[k] = b[k] + 1
будет совпадать для обоих частей

В avm2 переписали инкремент, поэтому левая часть для a берется из правой части.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 09.03.2010 в 13:38.