Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2015, 18:02   #1
Pascaler
Пользователь
 
Регистрация: 08.04.2010
Сообщений: 45
По умолчанию Дано действительное x. Вычислить.

Дано действительное x. Вычислить. [Pascal]

(x-1)(x-3)(x-7)...(x-63)
(x-2)(x-4)(x-8)...(x-64)

Буду благодарен, если будут решения похожиx задач.
Pascaler вне форума Ответить с цитированием
Старый 25.01.2015, 18:11   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Если x нецелое - то ничего интересного..
А если оно целое, то начинается самое интересное..
Давайте скажем, мол если в некоторый момент x-smt принимает отрицательное значение, мы подсчитаем - и если что потом умножим ответ на -1.. А пока будем брать натуральные x, больше 64
Вот..
Давайте бахнем так :
опишем некую функцию, которая будет принимать массив, и некое число
Массив будем структурка.. Там будет два поля.. Ключ и значение..
В нашем случае : ключ = простой множитель, значение - кол-во
Давайте делать так..
Будем раскладывать число на множители.. И увеличивать\уменьшать кол-во этих множителей в массиве
Вот.. Можно отсортировать ключи.. и тогда будем искать бинарным поиском.. Правда иногда нужно будет вставлять простые множители.. а это будет у нас неэффективно.. Поэтому этот вопрос спорный.. Можно написать какое-нить дерево.. Чтобы искать, добавлять за log N..
Вот..
А еще чтобы описать одну и туже процедурку для числителя и знаменателя, будем использовать 3-ий параметр, равный +1 или -1
Вот
В конце у нас останутся простые множители.. Мы их красиво перемножим, предварительно возведя в степень, которую будет показывать значение ключа..
Вот..
Ляпота!
Я бы так шпарил

Последний раз редактировалось Poma][a; 25.01.2015 в 18:15.
Poma][a вне форума Ответить с цитированием
Старый 25.01.2015, 18:27   #3
Pascaler
Пользователь
 
Регистрация: 08.04.2010
Сообщений: 45
По умолчанию

Я не совсем понимаю как это все сделать.
Pascaler вне форума Ответить с цитированием
Старый 25.01.2015, 18:37   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Вот.. Так должно быть понятнее
Изображения
Тип файла: jpg 14221966253191256581581.jpg (32.5 Кб, 121 просмотров)
Poma][a вне форума Ответить с цитированием
Старый 25.01.2015, 18:42   #5
Pascaler
Пользователь
 
Регистрация: 08.04.2010
Сообщений: 45
По умолчанию

Код:
Program x3;
uses crt;
Var i,p:integer;
    x,s:real;
Begin
clrscr;
writeln('Vvedite dejstvitelnoe x=');
readln(x);
s:=1;
p:=1;
for i:=1 to 6 do
 begin
  p:=p*2;
  s:=s*(x-p-1)/(x-p);
 end;
writeln('s=', s:5:2);
readln;
end.
У меня есть черновик, но где ошибка я не могу найти
Pascaler вне форума Ответить с цитированием
Старый 25.01.2015, 18:54   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

А.. Ну ясно.. Я малясь перегнул..

Косяк в i := 1 to 6.. Там другое что-то надо
Poma][a вне форума Ответить с цитированием
Старый 25.01.2015, 19:00   #7
Pascaler
Пользователь
 
Регистрация: 08.04.2010
Сообщений: 45
По умолчанию

Там в цикле 2 возводится в степень от 1 до 6, так 2^6 это и есть 64
Там все в поряде думаю
Pascaler вне форума Ответить с цитированием
Старый 25.01.2015, 19:05   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Да. Пардон. Был уверен, что там x-1, x-3, x-5, x-7 и т.д

А почему Вы думаете, что где-то ошибка?
Poma][a вне форума Ответить с цитированием
Старый 25.01.2015, 19:06   #9
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

Верно все... вычисляет не правильно?

Последний раз редактировалось kta87; 25.01.2015 в 19:09.
kta87 вне форума Ответить с цитированием
Старый 25.01.2015, 19:06   #10
Pascaler
Пользователь
 
Регистрация: 08.04.2010
Сообщений: 45
По умолчанию

Я попробовал его выполнить, у меня не выходит правильно.
Pascaler вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal Дано действительное число х. Вычислить yzen Помощь студентам 3 28.10.2012 11:14
Дано действительное число а. Вычислить f(a) для функции f(x) Artem1987 Помощь студентам 11 11.11.2010 09:51
Дано действительное число x. Вычислить hewlett Помощь студентам 2 26.06.2010 08:30
Дано действительное число x ttjke Помощь студентам 3 30.11.2009 23:33
Дано действительное число х. Вычислить Incognitoal Помощь студентам 7 09.03.2009 12:27