Цитата
a1 a2 a3
A= b1 b2 b3
c1 c2 c3
detA= a1*(b2*c3-c2*b3)-a2*(b1*c3-c1*b3)+a3*(b1*c2-c1*b2)
A= b1 b2 b3
c1 c2 c3
detA= a1*(b2*c3-c2*b3)-a2*(b1*c3-c1*b3)+a3*(b1*c2-c1*b2)
Сообщение отредактировано: klem4 -
![]() ![]() |
| klem4 |
Сообщение
#21
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
да я забыл домножать на элементы первой строки
Цитата a1 a2 a3 A= b1 b2 b3 c1 c2 c3 detA= a1*(b2*c3-c2*b3)-a2*(b1*c3-c1*b3)+a3*(b1*c2-c1*b2) Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
| setare |
Сообщение
#22
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: 0 |
Извините, пожалуйста, volvo, но не могли бы вы еще раз но чуть по легче сказать то, что вы только что написали. Я не очень поняла как компьютер получает на вход частично заполненную матрицу?
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
| Дож |
Сообщение
#23
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: 1 |
Имелось ввиду нечто типа этого:
Type PAIResult=^TItemField -------------------- Доброго времени суток.
:nnn: |
| setare |
Сообщение
#24
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: 0 |
Ухты, ну и код. Здесь надо долго разбираться. А можно ведь и без указателей, правда? И busy(x) это функция? Кстати, отсечение обязательно. При том нужно дойти до конца и потом отсекать. С последнего уровня и идти наверх.
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
| Дож |
Сообщение
#25
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 179 Пол: Мужской Репутация: 1 |
Цитата Кстати, отсечение обязательно. При том нужно дойти до конца и потом отсекать. С последнего уровня и идти наверх. Ну если я правильно понимаю что ты имеешь ввиду под отсечением, то здесь оно вроде как присутствует- если встречается хороший ход, то остальные ходы не просматриваются...Цитата А можно ведь и без указателей, правда? Да наверно можно и без указателей, например, функция AI будет возвращать результат через глобальную переменную...Цитата И busy(x) это функция? Да это функция, возвращающая true, если в массиве нет ни одного нуля иначе False. Ну, только не спрашивай как ее реализовать, а то тебя в FAQ пошлют...код кое-как исправлен: Type PAIResult=^TItemField -------------------- Доброго времени суток.
:nnn: |
| setare |
Сообщение
#26
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: 0 |
Ладно не буду. Спасибо. А почему вы написали
Код For item:=0 to 255 do begin И почему X[i][i]? -------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
| volvo |
Сообщение
#27
|
|
Гость |
:no: Дож, это - не мой вариант. Мой вариант - что-то в таком духе:
Type |
| setare |
Сообщение
#28
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: 0 |
Извините за глупый вопрос, но что значит при отрисовке R.pos легко переведется в строку матрицы? И кстати, там , где вы написали выход их рекурсии, до этого рекурсия не использовалась, правильно? Она используется вами уже после, когда touse не равно " "?
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
| volvo |
Сообщение
#29
|
|
Гость |
Цитата(setare @ 18.09.2005 19:05) что значит при отрисовке R.pos легко переведется в строку матрицы? После того, как компьютер сделал свой ход, матрицу значений надо перерисовать, чтобы второй игрок видел картинку, правда? Но я в процедуре ComputerMove возвращаю НЕ 2 координаты (строку/столбец), а только одну, учитывая то, что при известном размере матрицы из 7-ой, например, позиции "растянутой" матрицы получить 3-ю строку и 1-ый столбец не составит труда... Цитата(setare @ 18.09.2005 19:05) И кстати, там , где вы написали выход их рекурсии, до этого рекурсия не использовалась, правильно? Она используется вами уже после, когда touse не равно " "? Ну да, это же основное правило составления рекурсивных подпрограмм: сначала проверяется условие выхода, и только если оно НЕ выполняется, рекурсивный вызов продолжается. Иначе очень просто получить бесконечную рекурсию, и как результат - переполнение стека и RunTime Error... |
| setare |
Сообщение
#30
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: 0 |
Спасибо за обьяснение! Если возникнут вопросы, я опять вас побеспокою! :D
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
| setare |
Сообщение
#31
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: 0 |
volvo Здравствуйте, извините, значит в вашей последней программе в последней процедуре уже ничего не надо добовлять?После вызова ai? Или нужно что-то делать с R.pos? Я уже несколько раз перечитывала ваше обьяснение, но никак не могла понять что надо еще что-то добавлять или нет?
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
| volvo |
Сообщение
#32
|
|
Гость |
Надо, конечно
AI(CurrMatrix, ToUse);будет известна оптимальная матрица, но нужно ведь еще выбрать очередной ход (их же может быть несколько...) Например, у нас на данный момент заполнено 3 элемента: Цитата(Текущая матрица) 0 0 0 а после вызова AI будет известна оптимальная матрица:1 2 3 0 0 0 Цитата(max_Matrix) 4 5 6 1 2 3 7 8 9 (это просто пример, так что не надо обращать внимание на конкретные значения... ) Так вот, процедура ComputerMove должна выбрать, какое из чисел, присутствующих во второй матрице, и НЕ присутствующих в первой будет очередным ходом компьютера, то есть, для моего примера, у компьютера есть возможность сделать 6 разных ходов, которые могут привести его к выигрышу: 4 в позицию (1, 1); 5 в позицию (1, 2) и т.д. Какой именно вариант выбрать и нужно решить сразу после вызова AI... |
![]() ![]() |
|
Текстовая версия | 19.08.2026 2:07 |