2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 рекурсивные функции
Сообщение20.09.2008, 23:30 


20/09/08
5
Алгоритм вычисления произведения делителей числа n в виде рекурсивной функции.

 Профиль  
                  
 
 
Сообщение21.09.2008, 00:19 
Заслуженный участник
Аватара пользователя


22/11/06
1096
Одесса, ОНУ ИМЭМ
Открою тайну, известную лишь избранным: в русском языке есть такая категория, как сказуемое. Говорят, помогает высказываться яснее.

 Профиль  
                  
 
 
Сообщение21.09.2008, 12:03 


20/09/08
5
Разработать алгоритм..........Извините, думала интуитивно понятно

 Профиль  
                  
 
 
Сообщение21.09.2008, 14:07 
Заслуженный участник
Аватара пользователя


22/11/06
1096
Одесса, ОНУ ИМЭМ
Хм, давайте начнем с формул. Чему, по-вашему, равно произведение делителей числа $n=p_1^{\alpha_1}\cdot\ldots\cdot p_k^{\alpha_k}$?

 Профиль  
                  
 
 
Сообщение21.09.2008, 18:53 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Судя по названию темы, эти формулы лишь усложнят дело.

Вам что нужно: доказать рекурсивность функции, значение которой на произвольном натуральном числе равно произведению делителей этого числа?

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

 Профиль  
                  
 
 
Сообщение21.09.2008, 19:46 


20/09/08
5
f(n) - рекурсивная функция, "значение которой на произвольном натуральном числе равно произведению делителей этого числа", разработать алгоритм ее вычисления.

Последним вопросом в задании идет :определить к какому классу рек. ф-ий принадлежит f(n) (примитивно-рек, частично-рек. или общерекурсивна).

О тезисе Чёрча в лекциях не было ни слова, доказывали по определению.

 Профиль  
                  
 
 
Сообщение21.09.2008, 19:57 
Заслуженный участник


09/02/06
4382
Москва
Вроде очевидно, что это произведение равно $n^{m(n)}$, где $m(n)$ половина числа делителей $m(n)=\frac 12 (k_1+1)...(k_l+1),n=\prod_i p_i^{k_i}$.

 Профиль  
                  
 
 
Сообщение21.09.2008, 20:20 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
nell писал(а):
разработать алгоритм ее вычисления.


Код:
p := 1;
for i := 1 to n do
  if n mod i = 0 then p := p*i;


Устроит?

Далее... Что Вы знаете про примитивно рекурсивные функции? Умеете ли пользоваться ограниченной минимизацией? Знаете ли, чем общерекурсивная функция отличается от рекурсивной?

 Профиль  
                  
 
 
Сообщение21.09.2008, 22:29 


20/09/08
5
Примитивно рекурсивная функция- такая арифм. ф-ия, которая может быть получена из простейших с помощью конечного числа применений операторов суперпозиции и прим.
рекурсии, всюду определена. Рассмотрели эти самые простейшие ф-ии, операторы, доказывали,что сложение, арифм. вычитание, умножение, возведение в степень, знак, антизнак - примитивно рекурсивны. Потом были частично рекурсивные(без ограниченной минимизации) и общерекурсивные функции.

PS Если бы все это доходило до моего сознания, а не оставалось набором слов, я к вам бы не обращалась. Так что сильно не ругайте

 Профиль  
                  
 
 
Сообщение22.09.2008, 03:10 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
nell писал(а):
Примитивно рекурсивная функция- такая арифм. ф-ия, которая может быть получена из простейших с помощью конечного числа применений операторов суперпозиции и прим. рекурсии, всюду определена.


Всюду определённость не входит в определение примитивно рекурсивной функции. Это свойство (которое, кстати, очень легко доказывать).

nell писал(а):
Рассмотрели эти самые простейшие ф-ии, операторы, доказывали,что сложение, арифм. вычитание, умножение, возведение в степень, знак, антизнак - примитивно рекурсивны.


Прекрасно! А теперь поехали.

Заметим, что если у нас уже есть какие-то функции, про которые мы точно знаем, что они примитивно рекурсивны, то функции, полученные из них суперпозицией или примитивной рекурсией, также примитивно рекурсивны. Действительно, раз какие-то получаются из простейших, а другие уже из них, то в конечном счёте всё получается из простейших. Энто как бы совсем очевидно. Далее...

1) Функция $g(n,i) =$ остаток от деления $n$ на $i+1$ примитивно рекурсивна. Действительно, она задаётся по схеме примитивной рекурсии

$$
g(0,i) = 0;
$$
$$
g(n+1,i) = (g(n,i)+1) \cdot \mathrm{sg}(i \frac{.}{\phantom{x}} g(n,i))
$$

из функций, получаемых через базисные функции, а также функции арифметической разности, умножения и знака при помощи оператора суперпозиции.

2) Функция

$$
h(n,i) = 
\begin{cases}
1,&n \text{ не делится на }i+1;\\
i+1,&\text{иначе}
\end{cases}
$$
примитивно рекурсивна. Действительно, $h(n,i) = i \cdot \overline{\mathrm{sg}}(g(n,i)) + 1$.

3) Функция

$$
w(n,i) = \prod_{j=0}^{i} h(n,j)
$$

примитивно рекурсивна. Действительно, она задаётся схемой примитивной рекурсии

$$
w(n,0) = 1;
$$
$$
w(n,i+1) = w(n,i) \cdot h(n,i+1).
$$

4) Остаётся лишь заметить, что интересующая нас функция равна $w(n,n)$ и, следовато, является примитивно рекурсивной (если мы, конечно, согласимся считать, что произведение делителей нуля равно единице).

Разбирайтесь!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group