Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.05.2006, 00:20
Скрипун вне форума Посмотреть профиль Отправить личное сообщение для Скрипун Найти все сообщения от Скрипун
  № 11  
Ответить с цитированием
Скрипун
 
Аватар для Скрипун

Регистрация: Aug 2005
Сообщений: 687
Записей в блоге: 1
Отправить сообщение для Скрипун с помощью ICQ
Код:
///////////////////////////////////////////////
/////////////////Skripun to Russian flasher////////////////////
///////////25-05-06////////22-20/////////
///////////////////////////////////////////////
// Модули
// Ввод-Вывод
#include <iostream.h> 
#include <stdio.h>
// RAND & SRAND
#include <stdlib.h>
//  TIME
#include <time.h>
int main(void)
{
// Начнём... 
 cout << "--------------------------------" << "\n";
// Размер массива
 const unsigned int sz=10;
// время выдержки.Чем больше сам массив тем больше должно быть для более эффективного
// разброса.Можно поставить на sz.Или тоже через рандом, но не меньше чем число элементов массива!
 int looptime=100;
// unsigned int looptime=sz;
// Преинициализация массива
// Так
// int mas[]={0,1,2,3,4,5,6,7,8,9};
// Или так
 int mas[sz];for (int i=0;i<sz;i++) mas[i]=i;
 
 
// Для замены мест
 int r1,r2;
// Новая стартовая точка для Rand ! 
 srand((unsigned)time(NULL));
 
 for ( i=0;i<looptime;i++)
 {
 // Находим, какие элементы меняем местами 
  do 
  {
  r1=rand()%10;
  r2=rand()%10;}
  while (r1==r2) ;
 // Выводим по приколу меняемые элементы (паранойя) 
  cout << "mas[" << r1 << "]=" << mas[r1] ; 
  cout << "   mas[" << r2 << "]=" << mas[r2] ; 
 // Меняем местами (не C-прогеру будет сложно понять)
 // Операция модуль 2 (Bitwise-exclusive-OR assignment)
 // РАБОТАЕТ ТОЛЬКО С ЦЕЛОЧИСЛЕННЫМИ ТИПАМИ!!!!!!!!!!!!! 
  mas[r1]^= mas[r2]^=mas[r1]^=mas[r2];
 // Альтернативная замена - ВЕЗДЕ РАБОТАЕТ!!!!!!!!!!!!!!
 /*
  mas[r1]=mas[r1]+mas[r2];
  mas[r2]=mas[r1]-mas[r2];
  mas[r1]=mas[r1]-mas[r2];
 */
 // Результат замены (ещё паранойя) 
  cout << " changed on  mas[" << r1 << "]=" << mas[r1] ; 
  cout << "   mas[" << r2 << "]=" << mas[r2] << "\n"; 
 };
// Выводим и радуемся жизни
 for (i=0;i<sz;i++)
 {
  cout << mas[i] << "\n";
 };
// Это ради крутости - 0 значит всё в порядке!
 return 0;
// P.S.: комментарии писались много дольше самой проги!!!
}


Последний раз редактировалось Nirth; 26.05.2006 в 09:44.
Старый 26.05.2006, 00:21
Скрипун вне форума Посмотреть профиль Отправить личное сообщение для Скрипун Найти все сообщения от Скрипун
  № 12  
Ответить с цитированием
Скрипун
 
Аватар для Скрипун

Регистрация: Aug 2005
Сообщений: 687
Записей в блоге: 1
Отправить сообщение для Скрипун с помощью ICQ
на АС думаю перенести не составит проблем...

Старый 26.05.2006, 09:43
World Architect вне форума Посмотреть профиль Отправить личное сообщение для World Architect Найти все сообщения от World Architect
  № 13  
Ответить с цитированием
World Architect

Регистрация: May 2006
Сообщений: 57
В стандартной библиотеке C++ стоит фиговый генератор псевдослуч чисел.
Если хочешь иметь нормальный, используй библиотеку Boost. Там можно даже распределение случайной величины выбрать.

Старый 26.05.2006, 14:42
Alex T вне форума Посмотреть профиль Отправить личное сообщение для Alex T Найти все сообщения от Alex T
  № 14  
Ответить с цитированием
Alex T

Регистрация: Nov 2005
Адрес: Donetsk
Сообщений: 203
всем спасибо за советы...

World Architect:
еще вопрос - библиотеку boost.dll? и почему именно ее?

Старый 27.05.2006, 15:06
Скрипун вне форума Посмотреть профиль Отправить личное сообщение для Скрипун Найти все сообщения от Скрипун
  № 15  
Ответить с цитированием
Скрипун
 
Аватар для Скрипун

Регистрация: Aug 2005
Сообщений: 687
Записей в блоге: 1
Отправить сообщение для Скрипун с помощью ICQ
не boost.dll а boost.h , уже сказали почему...

Лучше напиши свою

Старый 28.05.2006, 13:58
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 16  
Ответить с цитированием
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
Цитата:
Сообщение от Скрипун
Вообщето я знаю многих которые пишут свои myRandom() ф-иии, т.к. уж очень часто наблюдаются сбои в стандартной...
имхо, это глупости.

я всю жизнь использую random() во флэше и не видел таких высоко-точных задач, когда этого не достаточно.

если же требуется какое-то определенное распределение случайных величин - экспоненциальное, по гауссу и т. п., то можно взять соответствующую функцию (изобретать которую не нужно).

Цитата:
заказчик просит использовать С-ный random
а ты не пробовал спросить - зачем? :)
либо у вас какая-то сильно хитрая задача,
либо заказчик просто не понимает, что хрен редьки не слаще.

Старый 28.05.2006, 22:14
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 17  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
да сказать ему (Заказчику), что именно сишный здесь акурат и подошел, спасибо за подсказку, дескать..

Старый 29.05.2006, 22:14
Скрипун вне форума Посмотреть профиль Отправить личное сообщение для Скрипун Найти все сообщения от Скрипун
  № 18  
Ответить с цитированием
Скрипун
 
Аватар для Скрипун

Регистрация: Aug 2005
Сообщений: 687
Записей в блоге: 1
Отправить сообщение для Скрипун с помощью ICQ
А у меня во флэш часто глюки... к примеру если я задам рандомное число до 100 выпадет 24... и так несколько раз подряд.. хотя может и случайность А еще у меня морской бой: кораблики почему-то больше по правую сторону располагаются... хотя все случаи равновероятные...

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.