1 Pages (8 items)
Вопрос по программе - Messages
#1 Posted: 4/29/2011 9:39:51 AM
Здравствуйте. Я хочу узнать сможет ли программа помочь мне в ситуации, которую я опишу ниже.
Например, имеется число 5000, которое состоит из суммы 250 различных чисел. Точно известно, что это число можно разбить на:
1. 2500, которое состоит из 100 различных чисел
2. 500, которое состоит из 120 различных чисел
3. 2000, которое состоит из 30 различных чисел
Мне нужно определить из каких конкретно чисел состоит 2500, 500 и 2000. Самому подбирать очень сложно.
Если программа может помочь мне, то подскажите как это реализовать в программе, чтобы мне не тратить много времени на изучение математических терминов и интерфейса программы.
Например, имеется число 5000, которое состоит из суммы 250 различных чисел. Точно известно, что это число можно разбить на:
1. 2500, которое состоит из 100 различных чисел
2. 500, которое состоит из 120 различных чисел
3. 2000, которое состоит из 30 различных чисел
Мне нужно определить из каких конкретно чисел состоит 2500, 500 и 2000. Самому подбирать очень сложно.
Если программа может помочь мне, то подскажите как это реализовать в программе, чтобы мне не тратить много времени на изучение математических терминов и интерфейса программы.
#2 Posted: 4/29/2011 10:16:40 AM
Пожалуйста, не оставляйте тему без ответа. Последний раз более-менее всерьез занимался математикой наверное классе в девятом в школе. Сейчас уже просто нет времени, чтобы заново всё изучить и понять что мне вообще нужно. А самому мне разобраться на данный момент нереально.
#3 Posted: 4/30/2011 4:09:07 AM
Это в какой же области такие задачи дают? А 250 чисел, из которых число 5000 состоит, известны? Или их тоже найти надо?
#4 Posted: 4/30/2011 4:18:57 AM
WroteЭто в какой же области такие задачи дают? А 250 чисел, из которых число 5000 состоит, известны? Или их тоже найти надо?
Известны.
#5 Posted: 5/1/2011 3:34:44 AM
QuoteЯ хочу узнать сможет ли программа помочь мне в ситуации, которую я опишу ниже
может! запустите SmS и явите своему взору панельку слева. в ней есть раздел Программирование (он шестой сверху или третий снизу) функции, имеющиеся там, добавлены специально для Вас! кароч, SmS позволяет создавать свои логические алгоритмы, с помощью которых можно решить поставленную вами задачу. а вот конкретный вид нужного вам алгоритма это уже совсем другая история... молоток у вас есть, гвозди дали, стену показали! вперед

как писать алгоритмы и пользоваться функциями программирования читать тутачки
неофициальный справочник https://sites.google.com/site/mikkhalichlab/home
jabber конференция smath@conference.jabber.ru
#6 Posted: 5/1/2011 4:52:45 AM
WroteQuoteкак писать алгоритмы и пользоваться функциями программирования читать тутачки
Спасибо за ссылку. Я изучил представленную там информацию, но к сожалению многое мне ещё только предстоит понять. Если вас не затруднит, помогите мне, пожалуйста.
Я упрощу своё изначальное условие. Допустим есть четыре числа: 1, 3, 6, 7. Что нужно сделать, чтобы программа сама провела перебор и выдала мне ответ на вопрос: какие из этих чисел нужно сложить, чтобы получить 8 и чтобы получить 9.
#7 Posted: 5/2/2011 3:19:20 AM
используй циклы for для перебора аргументов и if для проверки выполнения условия. еси будешь действовать просто методом перебора всех возможных значений, то расчет будет идти минут 10 даже на топовой тачке%) так что для начала лучше придумай толковый и оптимизированный математический алгоритм решения задачи
или просто скопипасти его откуда-нить, а уже потом думай как его реализовать с помощью логики SmS

неофициальный справочник https://sites.google.com/site/mikkhalichlab/home
jabber конференция smath@conference.jabber.ru
#8 Posted: 5/3/2011 7:49:52 AM
Quote
Спасибо за ссылку. Я изучил представленную там информацию, но к сожалению многое мне ещё только предстоит понять. Если вас не затруднит, помогите мне, пожалуйста.
Я упрощу своё изначальное условие. Допустим есть четыре числа: 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
Алгоритм, естесно, неполный, но как скелет пойдет...
З.Ы. Лично я для подобных вещей использовал бы какой-нить язык программирования...
1 users liked this post
olegator 5/3/2011 7:54:00 AM
1 Pages (8 items)
-
New Posts
-
No New Posts