Русскоязычный форум закрыт из-за отсутствия активности (доступен только для чтения).
Пожалуйста, пользуйтесь англоязычной его версией. Приносим извинения за неудобства
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Вход


Опции
К последнему сообщению К первому непрочитанному
Offline olegator  
#1 Оставлено : 29 апреля 2011 г. 16:39:51(UTC)
olegator

Статус: Newbie

Группы: Registered
Зарегистрирован: 29.04.2011(UTC)
Сообщений: 4

Сказал(а) «Спасибо»: 1 раз
Здравствуйте. Я хочу узнать сможет ли программа помочь мне в ситуации, которую я опишу ниже.
Например, имеется число 5000, которое состоит из суммы 250 различных чисел. Точно известно, что это число можно разбить на:
1. 2500, которое состоит из 100 различных чисел
2. 500, которое состоит из 120 различных чисел
3. 2000, которое состоит из 30 различных чисел
Мне нужно определить из каких конкретно чисел состоит 2500, 500 и 2000. Самому подбирать очень сложно.
Если программа может помочь мне, то подскажите как это реализовать в программе, чтобы мне не тратить много времени на изучение математических терминов и интерфейса программы.

Wanna join the discussion?! Login to your Форум проекта SMath forum account. Новые регистрации запрещены.

Offline olegator  
#2 Оставлено : 29 апреля 2011 г. 17:16:40(UTC)
olegator

Статус: Newbie

Группы: Registered
Зарегистрирован: 29.04.2011(UTC)
Сообщений: 4

Сказал(а) «Спасибо»: 1 раз
Пожалуйста, не оставляйте тему без ответа. Последний раз более-менее всерьез занимался математикой наверное классе в девятом в школе. Сейчас уже просто нет времени, чтобы заново всё изучить и понять что мне вообще нужно. А самому мне разобраться на данный момент нереально.
Offline kasper  
#3 Оставлено : 30 апреля 2011 г. 11:09:07(UTC)
kasper


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 21.05.2009(UTC)
Сообщений: 155
Мужчина
Российская Федерация
Откуда: Россия, Новочеркасск

Сказал «Спасибо»: 21 раз
Поблагодарили: 13 раз в 9 постах
Это в какой же области такие задачи дают? А 250 чисел, из которых число 5000 состоит, известны? Или их тоже найти надо?
Offline olegator  
#4 Оставлено : 30 апреля 2011 г. 11:18:57(UTC)
olegator

Статус: Newbie

Группы: Registered
Зарегистрирован: 29.04.2011(UTC)
Сообщений: 4

Сказал(а) «Спасибо»: 1 раз
kasper написал:
Это в какой же области такие задачи дают? А 250 чисел, из которых число 5000 состоит, известны? Или их тоже найти надо?

Известны.
Offline zhuk  
#5 Оставлено : 1 мая 2011 г. 10:34:44(UTC)
zhuk


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 16.02.2010(UTC)
Сообщений: 114
Мужчина
Откуда: /dev/random

Сказал «Спасибо»: 4 раз
Поблагодарили: 13 раз в 11 постах
Цитата:
Я хочу узнать сможет ли программа помочь мне в ситуации, которую я опишу ниже

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

как писать алгоритмы и пользоваться функциями программирования читать тутачки
неофициальный справочник https://sites.google.com/site/mikkhalichlab/home

jabber конференция smath@conference.jabber.ru
Offline olegator  
#6 Оставлено : 1 мая 2011 г. 11:52:45(UTC)
olegator

Статус: Newbie

Группы: Registered
Зарегистрирован: 29.04.2011(UTC)
Сообщений: 4

Сказал(а) «Спасибо»: 1 раз
zhuk написал:
Цитата:
как писать алгоритмы и пользоваться функциями программирования читать тутачки

Спасибо за ссылку. Я изучил представленную там информацию, но к сожалению многое мне ещё только предстоит понять. Если вас не затруднит, помогите мне, пожалуйста.
Я упрощу своё изначальное условие. Допустим есть четыре числа: 1, 3, 6, 7. Что нужно сделать, чтобы программа сама провела перебор и выдала мне ответ на вопрос: какие из этих чисел нужно сложить, чтобы получить 8 и чтобы получить 9.
Offline zhuk  
#7 Оставлено : 2 мая 2011 г. 10:19:20(UTC)
zhuk


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 16.02.2010(UTC)
Сообщений: 114
Мужчина
Откуда: /dev/random

Сказал «Спасибо»: 4 раз
Поблагодарили: 13 раз в 11 постах
используй циклы for для перебора аргументов и if для проверки выполнения условия. еси будешь действовать просто методом перебора всех возможных значений, то расчет будет идти минут 10 даже на топовой тачке%) так что для начала лучше придумай толковый и оптимизированный математический алгоритм решения задачиGood или просто скопипасти его откуда-нить, а уже потом думай как его реализовать с помощью логики SmS
неофициальный справочник https://sites.google.com/site/mikkhalichlab/home

jabber конференция smath@conference.jabber.ru
Offline kasper  
#8 Оставлено : 3 мая 2011 г. 14:49:52(UTC)
kasper


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 21.05.2009(UTC)
Сообщений: 155
Мужчина
Российская Федерация
Откуда: Россия, Новочеркасск

Сказал «Спасибо»: 21 раз
Поблагодарили: 13 раз в 9 постах
Цитата:

Спасибо за ссылку. Я изучил представленную там информацию, но к сожалению многое мне ещё только предстоит понять. Если вас не затруднит, помогите мне, пожалуйста.
Я упрощу своё изначальное условие. Допустим есть четыре числа: 1, 3, 6, 7. Что нужно сделать, чтобы программа сама провела перебор и выдала мне ответ на вопрос: какие из этих чисел нужно сложить, чтобы получить 8 и чтобы получить 9.


Алгоритм примерно следующий. Имеется два вектора, в одном содержатся те числа, которые нужно получить (8 и 9), в другом - числа, из которых нужно составлять эти числа (1,3,6,7). Во втором векторе числа должны быть расположены по возрастанию либо по убыванию. Делаем следующие действия:
1. Выбираем первое число из первого вектора (8)
2. Выбираем наибольшее число из второго вектора (7)
3. Сравниваем эти два числа. Если число из первого вектора (8) больше числа из второго вектора (7), то
4. Берем второе по величине число из второго вектора (6), складываем его с первым числом (7), получаем их сумму (13)
5. Если сумма (13) равна числу из первого вектора (8) то выбираем второе число первого вектора (9) и идем к п.2
6. Если сумма (13) больше числа из первого вектора (8), то вычитаем из суммы (13) второе по величине число (6), берем третье по величине число (3) и складываем его с текущей суммой (7), получаем (10), идем к п.5
7. Если при сложении последнего числа из второго вектора (1) текущая сумма меньше, чем текущее число из второго вектора (8), то обнуляем текущую сумму, выбираем второе число из второго вектора (6) и идем к п.3

Алгоритм, естесно, неполный, но как скелет пойдет...
З.Ы. Лично я для подобных вещей использовал бы какой-нить язык программирования...
thanks 1 пользователь поблагодарил kasper за этот пост.
olegator оставлено 03.05.2011(UTC)
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.