Помощь - Поиск - Пользователи - Календарь
Полная версия: Метод индуктивной функции
Форум «Всё о Паскале» > Разработка ПО, алгоритмы, общие вопросы > Алгоритмы
priboltik
Уважаемые форумчане, очень хотелось бы узнать, в чем заключается метод индуктивной функции...
а то в задали задачку делать.. а я даже понятия не имею, про что она...


заранее благодарю..
Lapp
Цитата(priboltik @ 27.02.2007 20:29) *

в чем заключается метод индуктивной функции...
Существует понятие индуктивной функции, но вот что такое "метод индуктивной функции" - это я не знаю. Может, имеется в виду "метод вычисления индуктивной функции"?
Цитата(priboltik @ 27.02.2007 20:29) *

а то в задали задачку делать.. а я даже понятия не имею, про что она...
Ты бы привел саму задачу - оно было бы яснее.. smile.gif

М
Тема переносится в Алгоритмы. Lapp


priboltik
Цитата(Lapp @ 28.02.2007 2:17) *

Может, имеется в виду "метод вычисления индуктивной функции"?


да..наверное .. скорее всего..

вот полное задание:

Дана последовательность символов, заданная в типизированном файле. Методом индуктивной функции определить количество вхождений в последовательность цифры, которая встречается в после-довательности максимальное число раз.

Lapp
Сильно понятнее не стало. Хотя немного все же есть smile.gif
Будем рассуждать так..

Функция "количество вхождений символа Х в строку" является индуктивной. Для вычисления индуктивных функций можно применять рекурсию. Напишем функцию для вычисления количества вхождений всех цифр в данную строку (с применением рекурсии), а по результатам ее работы узнаем, какое количество вхождений одного символа является максимальным.
function HowMany(x:char;s:string):integer;
begin
if s='' then HowMany:=0
else begin
if x=s[Length(s)] then t:=1 else t:=0;
HowMany:=t+HowMany(x,Copy(s,1,Length(s)-1))
end
end;

Теперь осталось организовать цикл по нахождению максимального количества вхождений цифр:
m:=0;
for i:=0 to 9 do begin
n:=HowMany(Chr(48+i),s);
if n>m then m:=n
end

Вот, примерно так. Конечно, рекурсия тут ни к чему абсолютно (только жрет память и время), но думаю, с тебя ее потребуют, потому что иначе присобачить индуктивные функции тут некуда.
priboltik
ок.. спасибо. сегодня попробую зафигачить. good.gif
Olya
blink.gif У меня тоже проблемы с этим методом, только задание другое:

Дана последовательность вещественных чисел, заданная в типизированном файле. Методом индуктивной функции вычислить среднюю длину связных подпоследовательностей отрицательных чисел.

Что здесь можно сделать? smile.gif
wacko.gif wacko.gif
Lapp
Цитата(Olya @ 26.03.2007 12:54) *

Что здесь можно сделать? smile.gif

Можно создать отдельную тему.

М
Не задавай вопросы в чужих темах.

-Настя-
А что, собственно, такое индуктивная функция? unsure.gif
Lapp
Цитата(-Настя- @ 16.02.2011 19:11) *
А что, собственно, такое индуктивная функция? unsure.gif

Вот тут: Метод индуктивной функции..часть 2 есть пояснение. Грубо говоря, это функция, определенная на дискретном упорядоченном множестве, которую можно вычислить через значения в предыдущих точках.
EpicFail
Цитата(-Настя- @ 16.02.2011 22:11) *

А что, собственно, такое индуктивная функция? unsure.gif

проще говоря,это функция,которая выполняется за один проход,без всякой рекурсии
-Lumka-
Привет) можешь написать полную программу этой подпрограммы? пож-та
Bluebird
n:=HowMany(Chr(48+i),s)

Что означает тут число 48 и почему оно такое
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.