Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 069
от 17.12.2002, 11:10

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 122
Отправлено ответов: 353
Активность: 289.3 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Tancho
Статус: Доверительный
Общий рейтинг: 131.57
[Подробней >>]
Pinman
Статус: Опытный
Общий рейтинг: 139.74
URL: Программирование и заработок
[Подробней >>]
Byter
Статус: Опытный
Общий рейтинг: 125.3
[Подробней >>]
 
Melkor
Статус: Доверительный
Общий рейтинг: 133.33
[Подробней >>]
portos
Статус: Опытный
Общий рейтинг: 122.27
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 118. Есть довольно простая задача, но меня что то заело и я не могу ее решить:) Нудно получить все возмож... (ответов: 5)

Вопросов: 1, ответов: 5


 Вопрос № 118

Есть довольно простая задача, но меня что то заело и я не могу ее решить:)
Нудно получить все возможные варианты получения суммы 100 из чисел 10, 20, 50
Не подскажите каким путем ее решить?



Вопрос отправлен: 13.12.2002, 18:48
Отправитель: Alexei

[Следующий вопрос >>] [Список вопросов]

Отвечает Tancho

Здравствуйте, Alexei!
то что ты просишь на языке математики называеться
решение в целых чисель уравнению 10x+20y+50z = 100.
Эти уравнении называються еще Диофантовы по имени
древногреческого математика - Диофант, которы впервы
занимался методов их решения.Алгоритм состоиться в общем
в перебора всех вариантов целых чисель который являеться
решении уравнению. Вот примерный :
1) Пологаем z = 1 и ищем решение у-ния 10x+20y = 50,
здесь полагаем y = 1 и ищем решении 10x = 30 здесь
все ясно x = 3 и вот тебе один вариант (x=3,y=1,z=1);
2) делаем шаг назад - полагаем y = 2, тогда х = 1 и вот
тебе второй вариант (x=1,y=2,z=1);
Если мы изключим 0(нуль) из целых чисель то это и все решения, а если не то
3) полагаем z = 2 и ищем в целых чисель решения
10x+20y=0, они только x=0, y=0- тройку (x=0,y=0,z=2)
другое решение уравнение 10x+20y=50, если положим y=0,
то тогда x=5 и тройку (x=5,y=0,z=1) другое решение.
Аналогично находим и другие решение (x=0,y=5,z=0),
(x=10,y=0,z=0),(x=8,y=1,z=0),(x=6,y=2,z=0) (x=4,y=3,z=0),(x=2,y=4,z=0)
И ето все резумируем
Все решения уравнения 10x+20y+50z=100 в целых чисель :
(5,0,1),(0,0,2),(1,2,1),(3,1,1),(0,5,0),
(10,0,0),(8,1,0),(6,2,0),(4,3,0),(2,4,0)
Если тебе нужна прога то пиши на мыло.



Ответ отправлен: 16.12.2002, 13:04
Отправитель: Tancho


Отвечает Pinman

Доброе время суток, Alexei!
var i,j,k:byte;
.
.
.
for i := 0 to 10 do
for j := 0 to 5 do
for k := 0 to 3 do
if 10*i+20*j+30*k=100 then WriteLn(i:5,j:5,k:5);

Ответ отправлен: 13.12.2002, 21:30
Отправитель: Pinman


Отвечает Byter

Добрый день, Alexei!
Вначале бери 10-ки
Потом 10-ки и 20-ку
Потом 10-ки и 20-ки(пока не возмешь максимум)
Потом одни 20-ки
Анологично с 50 и 20 ;с 10 и 20
Ну примерно также с 50 и 10 и 20
Просто лень писать на Паскале
Ведь если ты над ней думал ,новерное паймешь


Ответ отправлен: 14.12.2002, 17:36
Отправитель: Byter


Отвечает Melkor

Здравствуйте, Alexei!
Наиболее простой способ - полный перебор всех вариантов, например с помощью циклов


Приложение:

Ответ отправлен: 14.12.2002, 01:46
Отправитель: Melkor


Отвечает portos

Доброе время суток, Alexei!
самый простой вариант (но не самый быстрый) - берешь три счетчика к1,к2,к3 - по одному для каждого числа и делаешь три вложеных цикла for, к3, к2, к1. к1 - от нуля до 10, к2 - 0..5, к3 - 0..2, в последнем циклу проверяешь если к1*10+к2*20+к3*50=100 значит вот тебе и одно из решений

Ответ отправлен: 14.12.2002, 13:21
Отправитель: portos



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (39)
C / C++ (29)
Perl (6)
Delphi (23)
Pascal (25)
Basic / VBA (11)
Java / JavaScript (9)
PHP (5)
MySQL / MSSQL (7)
Пользователю
Windows 95/98/Me (34)
Windows NT/2000/XP (26)
"Железо" (33)
Поиск информации (15)
Администратору
Windows NT/2000/XP (10)
Linux / Unix (15)
Юристу
Гражданское право (10)
Семейное право (3)
Трудовое право (6)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное