Полная версия этой страницы:
Алгоритмы и формулы
nosferatu
05 Sep 2010, 14:10
Как-то так?
Выбор одного из двух вариантов да - 60%, нет - 40%
Код
Program 1
var
a,k,S1,S2: integer;
begin
k:=0;
randomize;
repeat
a:=random(1);
inc(k);
If k<60
Then S1:= S1+a;
Else
k:=0;
randomize;
repeat
a:=random(1);
inc(k);
If k<40
Then S2:=S2+a;
Else
If S1<S2
Then Write('Yes');
Else Write('No');
end.
П.С. прогу не проверял, потому уверен, что надопускал кучу ошибок, прошу не ругать меня неразумного, а исправить (или переписать, если дело совсем плохо) и выложить правильный вариант.
Berserker
05 Sep 2010, 14:14
А для чего тебе это?
nosferatu
05 Sep 2010, 14:22
Для ФРПГ, лень с кубиками возиться.
Добавлено ([mergetime]1283685744[/mergetime]):
Немного поправил, чтобы можно было вводить вероятность
Код
Program 1
var
a,k,S1,S2: integer; V:real;
begin
read(V);
If V>99
Then V:=99;
k:=0;
randomize;
repeat
a:=random(1);
inc(k);
If k<v
Then S1:= S1+a;
Else
k:=0;
randomize;
repeat
a:=random(1);
inc(k);
If k<100-V
Then S2:=S2+a;
Else
If S1<S2
Then Write('Yes');
Else Write('No');
end.
Berserker
05 Sep 2010, 14:38
nosferatu
05 Sep 2010, 14:59
Ну, можно и так)))
gamecreator
05 Sep 2010, 20:52
лучше используй рандомную прогу Берса (или сайт про ГСЧ), а то у тебя в коде действительно фигня. например, рандомайз только раз надо делать.
Теперь я понимаю, почему мне всегда говорят TAB'ить код
nosferatu
05 Sep 2010, 21:00
Я же этого не знаю.
Код
randomize;
repeat
a:=random(1);
Этот кусок я нашел в инете, остальное накорябал по памяти.
Потому и спрашивал.
Вообще вопрос с прогой отпал благодаря EtherniDee, разве что мне захочется создать прогу, сочетающую в себе свойства рандома и картостроя, эдакий полноценный симулятор боя, подстроенный под мою ФРПГ и который можно будет легко модернизировать... Но это уже не скоро.
Носф, делай сразу МУД
nosferatu
05 Sep 2010, 21:14
Не, лучше сразу сделать игру, которая будет сочитать все плюсы и прелести Спора, Фола, НоММ и ДаО.
Не катит, тогда ГМ наф не нужен, и ты останешься без работы
gamecreator
05 Sep 2010, 21:18
Цитата(nosferatu @ 05 Sep 2010, 22:14)
Не, лучше сразу сделать игру, которая будет сочитать все плюсы и прелести Спора, Фола, НоММ и ДаО.
и из этого списка вычеркнуть все кроме НоММ
Почему использование 128-битных регистров не дает прибавки к скорости в данном случае?:
Это основная часть цикла, верхняя и нижняя ничего особенного не содержат.
Код
@@loop:
{$IFDEF XMM} //отключено
movups xmm0,[ecx]
movups [ebx],xmm0
add ecx,16
add ebx,16
sub edi,16
{$ELSE}
mov eax,[ecx] //перемещение 4 байт
mov [ebx],eax // - // -
add ecx,4 //прочитано из источника
add ebx,4 //записано в результат
sub edi,4 // - // -
{$ENDIF}
{$IFDEF XMM}
sub esi,4
{$ELSE}
dec esi //счетчик движения по линии
{$ENDIF}
jg @@loop //следующий пиксел
может я как-то неправильно тестил - зацикливал весь код много раз и в обоих вариантах время выполнения было примерно одинаковым, хоть и достаточно низким
Etoprostoya
06 Oct 2010, 14:42
MOVUPS - медленная команда, медленнее четырёх обычных MOV (для большинства процессоров). Используй MOVAPS, но для этого нужны блоки памяти смещённые __align(16), то есть что-то вроде
int __declspec(align(16)) X[1024], Y[1024];
__asm{
mov ecx, X;
mov edx, Y;
movaps xmm0, [ecx];
movaps [edx], xmm0;
}
А ещё быстрее будет код
__asm{
mov ecx, X;
mov edx, Y;
xor ebx, ebx;
LOOP:
movaps xmm0, [ecx+ebx];
movaps [edx+ebx], xmm0;
add ebx, 16;
cmp ebx, 1024;
jb LOOP;
}
Граждане товарищи, помогите с математикой...
Некоторый объект имеет 3 параметра, означающие его текущий поворот относительно трех осей координат. У объекта есть некоторая точка - точка наблюдения - так вот, относительно нее определено лево, право, верх и низ, и соответственно направление по/против часовой стрелки. Как изменить исходные значения поворота по заданным трем значениям поворота вправо, вверх и по часовой стрелке?
tolich
25 Oct 2010, 11:41
Преобразовать в
кватернион, повернуть, преобразовать обратно.
Кстати, указанные тобой углы (влево-вправо, вверх-вниз, по ЧС- против ЧС) —
называются сответственно "рысканье", "тангаж" и "крен".
Я вот что-то не пойму... если хранить в векторной форме угловую скорость/ускорение (при этом модуль - величина, и что-то вроде точки на поверхности сферы которая задает направление), как его привести к форме "вектор оси и угол, на который вокруг нее осуществляется вращение" (а лучше сразу в кватернион). Наверное что-то простое, только увы не пойму...
что-то тут не так, 3 степени свободы вращения походу нельзя засунуть в вектор...
ChASnock
11 Dec 2010, 12:56
Цитата(ChASnock @ 11 Dec 2010, 12:56)

Помогите реализовать электричество в игре
Притом мне не надо рекурсивных алгоритмов
Надо найти, каким будет заряд (а также ток) на концах проводника (концов: 1..4) сопротивлением R ом через t (микро)секунд, если даны начальные заряды на концах (именно на концах!).
Уиии, надо спереть для мутноМейза
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.