![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
cru3l |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 7.8.2008 Репутация: нет Всего: нет |
есть такое выражение
a/b * c/d = x где, x — входные данные a,b,c,d — должна подобрать программа как сделать оптимальнее всего? |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
a = 1; b = 1; c = x; d = 1; *** можно брутфорсом подбирать
Это сообщение отредактировал(а) zim22 - 7.11.2009, 13:24 |
|||
|
||||
A5uKa |
|
||||
TЋ♥s F1rȜ iƧ BurȠiƞg ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 2 Всего: 16 |
Мне кажется вы что-то недоговариваете |
||||
|
|||||
IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
Мне кажется, что надо найти все комбинации, а не только один. zim22, в твоем коде в конце вместо a / b * c / d лучше написать (a*c)/(b*d), так как a, b, c, d типа int, и будет неправильный результат, например в случае x = 1, a = 3, b = 2, c = 6, d = 9; будет выведено 0, а не 1. То есть так:
-------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
я знаю. это псевдокод у меня был ![]() количество комбинаций бесконечно Это сообщение отредактировал(а) zim22 - 7.11.2009, 14:25 |
|||
|
||||
cru3l |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 7.8.2008 Репутация: нет Всего: нет |
блин
![]() на самом деле задача такая a/b * c/d = x где, x — входные данные и есть массив чисел например (20,20,20,21,35,36,40,50,70,85,90,88) — каждое значение можно использовать только один раз a,b,c,d — это числа из массива взятые таким образом чтобы выражение было правильным, если конечно это возможно. И есть условие a+b>72 ; c+d>72 можно упростить формулу до a/b=x (т.е. представить что c=1 и d=1) если решить задачу можно только таким образом ![]() |
|||
|
||||
Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 11 Всего: 88 |
Ты всё вспомнил или ещё что-то есть? Давай, лучше, выкладывай оригинальный текст задания, нечего тут в кошки-мышки играть... ![]() -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
cru3l |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 7.8.2008 Репутация: нет Всего: нет |
уже написал сам (правда на javascript, а не c++) , но теперь есть другая проблема
вот код, если кому интересно (от c++ отличается немногим)
вообщем, как видно, x — не целое число, и перебирать его необходимо с точностью пять знаков после запятой (0,00001). если честно я так и не дождался пока программа заработает. если же работать с целыми числами то все ок. Как можно оптимизировать скрипт, может для таких случаев есть другие алгоритмы? Это сообщение отредактировал(а) cru3l - 7.11.2009, 19:11 |
|||
|
||||
cru3l |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 7.8.2008 Репутация: нет Всего: нет |
ну что, никаких идей?
|
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
например для массива из 10 чисел существует 5040 уникальных комбинаций из 4 элементов(a,b,c,d) далее необходимо отбросить те комбинации, для которых сумма 4 элементов меньше 144 для оставшихся комбинаций перебирать каждую 4! раз меняя местами элементы a,b,c,d и сравнивая с ИКС |
|||
|
||||
cru3l |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 7.8.2008 Репутация: нет Всего: нет |
zim22, я не случайно в своем коде выбрал именно 100 значений для массивов.
Мои массивы будут включать в себя до 100 значений. Я думаю при выборе алгоритма это важно |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |