Pull to refresh

Comments 26

Слово «варианта» — устаревшее, понятное только в контексте самого Фихтенгольца, все же кто изучал теорию предела по другим учебникам знают слово «последовательность», неплохо было бы заменить везде в тексте. Точно также, к слову, Фихтенгольц дальше называет «выпуклую» функцию «вогнутой» и, наоборот, т.е. современное понимание этого термина оказывается обратно противоположным.

Далее, при перепечатке и сокращении примера 35.2 стало непонятно какая «основная теорема» имеется в виду в тексте. А имеется ввиду теорема о гарантированном существовании предела монотонной и возрастающей последовательности – это важно, т.к. не удостоверившись в существовании предела, предельный переход к числу a делать нельзя – можно получить бессмысленный ответ (примеры есть в том же Фихтенгольце).
Да, с корнями тоже непонятный огород.
Пишем просто x = sqrt(1 + sqrt(1 + ..)) и возводим в квадрат.
Получается: x2 = 1 + x.
Решаем.
Основная часть задачи (опущенная в статье) как раз в том, чтобы удостовериться в существовании предела последовательности, то есть возможности написать «x =».
Спасибо (кстати, слово «варианта» встречается не только у Фихтенгольца)
Ну может где-то ещё и встречается в текстах времён Фихтенгольца или их переизданий, но сейчас полностью устарело за ненадобностью (о чём пишут, например, в примечаниях от редактора в новых изданиях того же Фихтенгольца).
Что-то с 38-й задачей не понял.
1 / [ n * (n+1) ] = 1/n − 1/(n+1)
Если так расписать каждый член суммы, то будет 1/1 − 1/2 +1/2 − 1/3 + 1/3 − 1/4 +… + 1/99 − 1/100 = 1 − 1/100 = 0.99
А… понял: у Вас в условии n от 1 до 99, а в программе — 99, 999, 9999… Но всё равно, надо просто из единицы вычитать 1 / (n + 1).
Т. о. можно доказать (по индукции), что сумма ряда равна 1-1/(n+1)=n/(n+1)
Для начала рассмотрим задачу, которую всё-таки могут предложить на собеседовании


А расчёт обменного интеграла ещё пока не могут предложить на собеседовании? :)
Задача не требует каких-то особых знаний из области дифференциального и интегрального исчисления.
А много ли народу решило эту «не требующую особых знаний» задачу? :)
по поводу примера 54. это нормально, что получается 2 ответа: (1 +- sqrt(3))/2? или я ошибся? если коротко, то решал так: x = 1 + 1/(2 + 1/x)
извиняюсь за глупый вопрос. мое решение строится на предположении о том, что эта дробь равна конечному числу. из полученного противоречия ясно, что это не так.
Полученный вами ответ говорит о том, что иррациональное число (1+sqrt(3))/2 можно представить в виде приближений данной цепной дроби.

Решать 38 программой на лиспе вместо 1-2 строчек на листе бумаги? Экий вы, сударь, простофиля.
(1/1-1/2) + (1/2-1/3) +… + (1/99-1/100), раскрываем скобки, видим ответ. А не лезем в "Курс дифференциального и интегрального исчисления"

Вы фактически разрушили всю идеологическую ценность статьи. :)
На самом деле, это удивительно. :) Вы столько усилий потратили, но… решение было в другой плоскости. Так в общем-то получилось потому, что здесь задача изначально сделана под конкретное решение. И если не догадаться, то решать можно разными способами.
А как у вас получилось, что 1/(2*3) = (1/2-1/3)? Ведь 1/5 <> 1/6.
(простите, конечно, мою безграмотность, если глупость сказал: математика уже порядком подзабылась)
Приводим к общему знаменателю:
1/2 — 1/3 = 3/(2*3) — 2/(2*3) = (3-2)/(2*3) = 1/(2*3)
Ну, на самом деле я просто примерно помнил, что такие дроби (типа 1/(2*3)) раскладываются в разность соседних. Может быть, даже и задачку подобную решал лет 30 назад, что-то в памяти задержалось — во всяком случае, идея привести произведение дробей к их разности пришла сразу, а дальше уже сразу видно, что задача решилась.

P.S. А насчёт 1/5 — это, думаю, не математика подзабылась, а внимание рассеялось, не удивлюсь, если, пока я писал ответ, вы и сами сообразили (или вспомнили, что знаменатели складывать не надо)
И правда.
Видимо почаще высыпаться надо (пишу 2*3 а считаю как 2+3)
38. Вычислить сумму ( «Задачи для детей от 5 до 15 лет»)

image

(с ошибкой не более 1% от ответа)

Алгоритм для вычисления частичных сумм этого ряда на языке Scheme (Lisp) в среде drRacket (drRacket позволяет производить вычисления в обыкновенных дробях):

#lang racket
(define series_sum
 ( lambda (n)
  (if (= n 0) 0 
    (+ (/ 1 (* n (+ n 1))) (series_sum(- n 1)))
  ) ) )
(series_sum 10)
(series_sum 100)
(series_sum 1000)
(series_sum 10000)
(series_sum 100000)
(series_sum 1000000)

(define series_sum_1
 ( lambda (n)
  (if (= n 0) 0 
    (+ (/ 1.0 (* n (+ n 1.0))) (series_sum_1(- n 1.0)))
  ) ) )
(series_sum_1 10)
(series_sum_1 100)
(series_sum_1 1000)
(series_sum_1 10000)
(series_sum_1 100000)
(series_sum_1 1000000)

Два последних примера drRacket вычислил с ошибкой



Этот же алгоритм на Python
def series_sum(n):
	if n==0:
		return 0
	else:
		return 1.0/(n*(n+1.0))+series_sum(n-1.0)
 
print(series_sum(10))
print(series_sum(100))


Если посмотреть на код, то вызовы series_sum(100) считают на самом деле сумму
1/(1*2) + 1/(2*3) +… + 1/(99*100) + 1/(100*101)

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

Первую задачу про сумму любой программист должен уметь решить даже на листке бумаги — что там решать-то, это 3 строчки, даже без рекурсии обычным циклом for. Выводить формулу понятное дело, вряд ли кто-то будет спрашивать.

Вот про «ошибку не более 1% ответа» я не очень понял, сначала подумал что нужно как-то учесть ограничения точности float, тут точные числа вряд ли кто по памяти вспомнит.

А отличное знание школьной программы никак не кореллирует с умением решать практические задачи имхо потому, что 95% этой школьной программы тупо построена на зубрежке. Которая отчасти полезна (чтобы успешно творить, все равно нужно опираться на какие-то факты и знания), но умений творчески мыслить имхо никак не развивает.
Sign up to leave a comment.

Articles