Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Алгоритм] I=A*K+B*L, даны A, B, N; вывести I<=N 
V
    Опции темы
primax
Дата 26.11.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.12.2006
Где: НТУУ-КПИ.Киев

Репутация: нет
Всего: нет



Цитата(KasMP @ 26.11.2007,  17:49)
Цитата(primax @  25.11.2007,  02:47 Найти цитируемый пост)
Не заметил этого в условии изложеным тобой 
"... где K и L - целые неотрицательные числа."

Ой, я говорил про А, В... ведь мы ищем представления I прежде задав A, B, а если А, В (ух блин) < 0 то представлений I будет просто уйма. 
По условию (фраза "не превосходящих") I<N, а если одно из тех чисел отризательно то это условие выполняется всегда. Например: A>0, B<0 ==> K=const, L стремится к бесконечности ==> I стремится к минус бесконечности. Хотя это не особо важно.
Цитата(KasMP @  26.11.2007,  17:49 Найти цитируемый пост)
Нет, это моя задачка, она МОЯ, я хочу сама, не надо делать за меня, я просто прошу совет!!!!!!! 

Извини, просто за последнее время много чего по этому поводу проскочило, кто-то просит решение, кто-то консультацию и прочее-прочее....

Совет по той части которая у тебя пропущена (поиск для А и В одновременно, моя предложеная реализация выше): 
Цитата(primax @  18.11.2007,  20:20 Найти цитируемый пост)
самый простой вариант, это 2 вложеных логических цикла (вайл, репит) с проверкой "не проскочили ли мы условие I<N" и поочередным инкрементом L,K. Т.е. фактически тебе нужно организовать полный перебор выражения I=K*A+L*B используя твои условия по переменым K,L и константам A,B (константы - переменые которые не меняются на данном этапе, а не переменые-константы smile ).




Это сообщение отредактировал(а) primax - 26.11.2007, 19:30
PM WWW ICQ Skype   Вверх
KasMP
Дата 27.11.2007, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: 1
Всего: 30



Цитата(Akina @  26.11.2007,  18:46 Найти цитируемый пост)
ну и чего? берем и считаем:
Взгляни(те), пожалуйста, вот на эту тему smile .
Цитата(Akina @  26.11.2007,  18:46 Найти цитируемый пост)
все бОльшие этого значения представимые числа уже выведены ранее.
Вообще, судя по всему, стоит сказать, что был разговор на тему того, допустим ли вывод одних и тех же чисел (например, А=2 и В=4; тогда 2*4+4*2=2*2+4*3=16); после некоторых раздумий преподаватель пришел к выводу, что допустим (и даже в некотором смысле желателен), но только в том случае, когда пользователь сможет увидеть разложение на множители (что и реализовано в указанной выше теме).
______________________________________________________

Цитата(primax @  26.11.2007,  19:26 Найти цитируемый пост)
По условию (фраза "не превосходящих") I<N, а если одно из тех чисел отризательно то это условие выполняется всегда. Например: A>0, B<0 ==> K=const, L стремится к бесконечности ==> I стремится к минус бесконечности. Хотя это не особо важно.
Нет smile . В условии сказано: "По заданным натуральным числам A, B и N...".
Цитата(primax @  26.11.2007,  19:26 Найти цитируемый пост)
Извини, просто за последнее время много чего по этому поводу проскочило, кто-то просит решение, кто-то консультацию и прочее-прочее....
Ты всего 6 сообщений на форум написал, а уже что-то успело проскочить... Впечатлительный ты, однако smile .
Цитата(primax @  26.11.2007,  19:26 Найти цитируемый пост)
Совет по той части которая у тебя пропущена (поиск для А и В одновременно, моя предложеная реализация выше): 
 А если хочется чего-то большего, чем просто перебор?
PM MAIL   Вверх
Akina
Дата 27.11.2007, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



Цитата(KasMP @  27.11.2007,  01:07 Найти цитируемый пост)
только в том случае, когда пользователь сможет увидеть разложение на множители (что и реализовано в указанной выше теме).

Кто мешает в дополнение к числу выводить и то каким способом оно получено? это вообще не имеет отношения к алгоритму.

Цитата(KasMP @  27.11.2007,  01:07 Найти цитируемый пост)
Взгляни(те), пожалуйста, вот на эту тему

Вообще за дубли положено давать по шее. Рекомендую обратиться к модератору с просьбой перенести и объединить. А сравнивать 2 темы и выискивать, что из одной переползло в другую, мне откровенно влом. К тому же возможный алгоритм мною рассказан, а его программная реализация - совсем другой вопрос.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
KasMP
Дата 27.11.2007, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: 1
Всего: 30



Цитата(Akina @  27.11.2007,  00:45 Найти цитируемый пост)
Кто мешает в дополнение к числу выводить и то каким способом оно получено?
Никто. smile 
Цитата(Akina @  27.11.2007,  00:45 Найти цитируемый пост)
это вообще не имеет отношения к алгоритму.
 smile Имхо имеет. Возможны два случая:
  • выводим каждое число только один раз; используем НОД (показываем или нет разложение, значения не имеет);
  • выводим каждое число столько раз, сколько оно образуется; используем не НОД (обязательно показываем разложение).
Цитата(Akina @  27.11.2007,  00:45 Найти цитируемый пост)
Вообще за дубли положено давать по шее.
Правда? smile Извините, я не знала.
(напротив, даже несколько раз видела как некоторые люди создавали одинаковые (или очень похожие) темы в разных разделах; подумала, что это нормально, правильно и хорошо).
Цитата(Akina @  27.11.2007,  00:45 Найти цитируемый пост)
Рекомендую обратиться к модератору с просьбой перенести и объединить.
Так и сделаю. smile 
Цитата(Akina @  27.11.2007,  00:45 Найти цитируемый пост)
А сравнивать 2 темы и выискивать, что из одной переползло в другую, мне откровенно влом.
Разреши(те) написать в приват, выслав именно тот кусочек, на который я хочу обратить внимание. smile 
Цитата(Akina @  27.11.2007,  00:45 Найти цитируемый пост)
К тому же возможный алгоритм мною рассказан, а его программная реализация - совсем другой вопрос. 
Да, это бесспорно. smile 
PM MAIL   Вверх
Akina
Дата 27.11.2007, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



Цитата(KasMP @  27.11.2007,  08:33 Найти цитируемый пост)
Разреши(те) написать в приват, выслав именно тот кусочек, на который я хочу обратить внимание.

В привате я НЕ обсуждаю вопросов. Причина проста - то, что в привате, не видно остальным. А если оно кому-нибудь из тех, кто позже столкнется с подобным вопросом, понадобится? опять приват? нет, все в форуме.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
maxim1000
Дата 27.11.2007, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 24
Всего: 110



т.к. темы в разных разделах, то объединить у меня не получается
так что переношу в Центр помощи, тогда модераторы оттуда смогут объединить


--------------------
qqq
PM WWW   Вверх
KasMP
Дата 27.11.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: 1
Всего: 30



Цитата(Akina @  27.11.2007,  09:52 Найти цитируемый пост)
В привате я НЕ обсуждаю вопросов. Причина проста - то, что в привате, не видно остальным. А если оно кому-нибудь из тех, кто позже столкнется с подобным вопросом, понадобится? опять приват? нет, все в форуме. 
Какая отточенность и принципиальность smile .
ОК, пусть будет так smile .
Цитата(maxim1000 @  27.11.2007,  11:01 Найти цитируемый пост)
так что переношу в Центр помощи, тогда модераторы оттуда смогут объединить 
И я напишу им (модераторам "Центра помощи"), чтобы ускорить процесс (хотя, они и так достаточно оперативны).

Вобщем скоро темы объединят, Akina сможет увидеть то, что надо, и дальше что-то будет... smile 
PM MAIL   Вверх
primax
Дата 27.11.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.12.2006
Где: НТУУ-КПИ.Киев

Репутация: нет
Всего: нет



Цитата(KasMP @  27.11.2007,  00:07 Найти цитируемый пост)
Нет smile . В условии сказано: "По заданным натуральным числам A, B и N...".

Пардон)

Цитата(KasMP @  27.11.2007,  00:07 Найти цитируемый пост)
Ты всего 6 сообщений на форум написал, а уже что-то успело проскочить... Впечатлительный ты, однако smile .

Все ясно.
Такое очущение, что можно только на форуме что-то решать. 
Универ не в счет? Аболтусов которые покупают\просят помощи\еще что-то хотят - просто море.
А если говорить уже по поводу кол-ва сообщений, то я не особо люблю убивать время форумами. В последние месяца понял, что его уже давно реально не хватает.
Цитата(KasMP @  27.11.2007,  00:07 Найти цитируемый пост)
А если хочется чего-то большего, чем просто перебор? 
Ну сделай "не просто" перебор. Большинство задач сводятся к нему, данная не исключение. Одно дело полный перебор, а другое дело нет. Это уже как постараешься. 



Это сообщение отредактировал(а) primax - 27.11.2007, 17:21
PM WWW ICQ Skype   Вверх
KasMP
Дата 2.12.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: 1
Всего: 30



Так, теперь единственный smile вопрос, который у меня остался. smile 
Почему ниже приведенная процедура один раз выводит число I, превышающее N? (долго-долго искала smile - не нашла smile)
Код
{Если и А, и В не превосходят N,
то для поиска I будем использовать и А, и В.}
procedure AandB (a, b, n: integer);
    var     i, k, l, y, z: integer;
    begin
    writeln ('Для поиска I используем и A, и B:');
    k:=1; l:=1; z:=a*k; i:=z+b*l;
    while z<n do begin
        y:=n-b;
        repeat
            writeln (i, '=', k, 'A+', l, 'B (', i, '=', k, '*', a, '+', l, '*', b, ').');
            {в данном подцикле просто увеличиваем множитель L на единицу;
            (и, соответственно, число I увеличивается на B);
            на мой взгляд, все это лучше (быстрее, экономнее)
            сделать не так (l:=l+1; i:=a*k+b*l), а так:}
            inc (i, b); inc (l);
            until i>y;
        {теперь производим аналогичное действие во внешнем цикле:
        увеличиваем множитель К на единицу, тем самым увеличивая I
        (вернее, Z=A*K, водящее в состав I) ­на A}
        inc (k); inc (z, a);
        {­не забываем "обнулить" значение множителя подцикла L
        (присваиваем единицу, т.к. за значения I при множителе,
        равном нулю, отвечает процедура AorB)
        и "обнулить" значение числа I}
        l:=1; i:=z+b*l;
        end;
    end;
Спасибо! smile 
PM MAIL   Вверх
KasMP
Дата 9.12.2007, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: 1
Всего: 30



Ну помогите, пожалуйста!!
PM MAIL   Вверх
KasMP
Дата 15.12.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: 1
Всего: 30



тоже давно сдала (только проблемную процедуру из последнего сообщения немного видоизменила):
Код
procedure AandB (a, b, n: integer);
    var     i, k, l, z: integer;
    begin
    writeln ('Для поиска I используем и A, и B:');
    k:=1; l:=1; z:=a*k; i:=z+b*l;
    while z<n do begin
        while i<=n do begin
            writeln (i, '=', k, 'A+', l, 'B (', i, '=', k, '*', a, '+', l, '*', b, ').');
            inc (i, b); inc (l);
            end;
        inc (k); inc (z, a);
        l:=1; i:=z+b*l;
        end;
    end;

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.1406 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.