Join Yalantis and get a $1000 sign-in bonus! React.js, React Native, Python, Java, DevOps, BА. Apply now!
×Закрыть

1 = 0,(9) ?

И все таки 1 = 0,(9) ?

Из книги «Что такое математика» Р. Курант ilib.mccme.ru/pdf/kurant.pdf
стр. 87 — 89:
«Мы скажем, более кратко, что точка P заключена в стягивающуюся последовательность десятичных интервалов. Например, если точка P есть 1/3, то все цифры a1, a2, a3, . . . равны 3, и P заключена в любом интервале In от 0,333 . . . 33 до 0,333 . . . 34, т. е. 1/3 больше чем 0,333 . . . 33 и меньше
чем 0,333 . . . 34, сколько бы ни взять цифр после запятой. Мы скажем в
этих обстоятельствах, что n-значная десятичная дробь 0,333 . . . 33 „стре-
мится к 1/3“, когда число цифр n неограниченно возрастает.»

Самое интересное на 99 стр в п.3 Пределы.

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn

Лучшие комментарии пропустить

Вещественные числа в определении по Кантору (наиболее распространённом из эквивалентных) — это фактор кольца фундаментальных последовательностей по идеалу бесконечно малых; иными словами, два вещественных числа, отличающихся на бесконечно малое значение, равны (по определению). Исходя из этого несложно проверить, что «1.0» и «0.(9)» — это просто разные формы записи одного и того же вещественного числа.

Само бесконечно малое значение, к слову, вещественным числом не является (вот поэтому); если вы хотите выполнять над ним какие-то операции, вам следует посмотреть на гипервещественные числа Лейбница (в формализации Робинсона). Настоятельно рекомендую обратиться к этой книге.

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Допустим

x = 0.(9);
//тогда
10·x = 9.(9);
//отнимем части первого равенства от второго
9·x = 9; //хвосты сокращаются
//следовательно 
x = 1;

Такой же способ для перевода десятичной дроби в обычную:

x = 0.(12345)
100000 · x = 12345.(12345)
99999·x = 12345;
x = 12345/99999 = 4115/33333
Вот и все доказательство : /

не переживай 10 копеек тебе простят на кассе

А вам купить, или продать? Нет, серъёзно, даже в банковских системах ограничена точность, так стоит ли переживать? Или вы больше в теоретическом поиске?

Десятичное число 1/3 в тернарной будет 0.1.
В тернарной 0.1 * 10 = 1.
Где вы взяли 0.(9) не пойму.

Если в Javascript попросить вывести это, то он тоже высветит 1,0

найлегший спосіб:
1/3 = 0.(3)
помножимо обидві частинки на 3
1 = 0.(9)

Давайте лучше про банковское округление scontent.xx.fbcdn.net/...ae7d3be0e23be&oe=58B79165

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

(Вот в C round() застряло округление вверх — это уже чистое legacy. rint, nearbyint вместо этого используют текущий режим. Я бы предпочёл варианты функций с явным заданием режима, тем более, что IEEE754-2008 их рекомендует открытым текстом. Вот в эту сторону надо пинать авторов Ruby, да и всех прочих.)

Лучше введите «гауссово округление» в гугл — там есть несколько интересных дискуссий, как и чем это грозит в бухгалтерии и как с этим бороться, включая странные среды типа Delphi или Excel.

Мдас. Еще недавно удивлялись, что институтскую программу народ не знает, а теперь дно пробито очередной раз. Ты в школе учился то? Это еще в школьных учебниках объясняется, причем класс так за 5-й или 4-й.
Или ты еще в 3-км классе? Тогда сорри. Ответ: равно.

ну если верить опросам, то больше половины программистов считают что математика им ни к чему. Отсюда и подобные топики на dou

Математика важлива, але там, де необхідні більш прикладні її випадки. При формошльопстві звичайному вона ні до чого. Зазвичай більше необхідна геометрія. Адекватному програмісту будь-які знання не будуть зайвими. Навіть кулінарні знадобляться одного разу :)

почему в float, а если будет много денег, лучше сразу в double..

Сарказм )
Когда столкнулся с этой проблемой для себя, после прочитанного решил, что правильнее всего свой класс Money, где хранятся в int с точностью до тысячных, а отдаются как захочется.

Вдруг int переполнится как счетчик просмотров Gangam style и будете внезапно должны банку 2 с небольшим миллиарда. Думаю Превед уже взял на заметку ))

Держу деньги в BigInteger.

Я когда-то смотрел как они реализовали умножения — я такого наивного кода не видел со времён детского садика :) По-ходу при банальном увеличении числа придётся менять сервер на более высыкопроизводительный :)

Речь про Java или .NET?
Реализация в Java достаточно неплоха, а вот дотнетовцы явно делали BigInteger откровенно «на отгребись». Только плеватель на результат или полный кретин мог сделать IsPowerOfTwo(), не сделав BitLength().

А умножения — там же вроде плоское+Карацуба? В GMP написано, что это эффективно до ~6000 бит длины числа.

А как же кредитные карты и овердрафт?

Відкрию страшну тайну. Це все зберігається як unsigned. Бо це інший рахунок.

? Как тогда обрабатывается перекачка кредитной карты деньгами (overpayment) ?

Кредитна карта в АБС (автоматизована банківська система) це не один запис в базі даних, а приблизно з десяток. Всі операції ведуться із рахунками. Наприклад, на рахунку тіло кредита записано 100, на рахунку поточний платіж записано 10, на рахунку поточна заборгованість по тілу записано 2, то потім банально береться сума рахунків. 100+10+2 = 102 монетки боргів. Наприклад, ви вносите сумму 20 на рахунок поточний, з якого потім будуть списуватися гроші в певній послідовності: спочатку 2 з рахунка заборгованості, потім 10 з поточного платежу, а потім 8 з тіла. Там вся арифметика проста — перекладання циферок між рахунками. Тому мінусів може не бути, бо для однієї операції це мінус, а для іншої — плюс.

Понятно, спасибо за объяснения!

BigInteger обычно уже не делают unsigned, затраты на два разных типа выше, чем преимущество в экономию одного бита.

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

Не путай современных постсовковых «профессуров» и профессорами в остальной части мира.

Как раз знание о том, как хранить деньги в компьютере, это чистейшая прикладная математика. «Чистый» математик подобные тонкости игнорирует, считая себя выше этого. (Я насмотрелся на таких.)

Эти товарищи просто не знают математику, что и называют себя таковыми. Ну типа 23-летних сеньоров-программистов.
Правила округления, корректная работа с погрешностями — математик это должен знать по определению. Да, не прикладной может не знать кучи численных методов решения тех же систем уравнений.

Вот тут проблемка. Средний математик до XX века в основном был занят именно тупыми расчётами, в лучшем случае пользуясь готовыми результатами из справочника типа знаменитых таблиц Брадиса. То есть он всё равно все эти грабли (кроме, может быть, ситуаций типа № 2 отсюда проходил на своей шкуре.
Потом появились арифмометры, механические калькуляторы, электронные и т.д. Сейчас большинство знает проблематику на уровне написать формулу в Matlab, остальное оно подсчитает, не забыть выставить точность в максимальную :)

Ну и бред, хотя вполне ожидаемо.

Попахивает подменой понятий. Одно дело не знать всякие двойные интегралы по контуру и считать их ненужными. А совсем другое — не знать элементарный школьный материал.

это не школьный материал. Если вам в школе сказали что 0.(9) = 1, это еще не значит что это «школная программа».

Если вам в школе не говорили, что 0.(9) = 1, это ещё не значит, что это не школьная программа.

В школе это дается, как определение.

объясняется

? Поделитесь как это обосновывается.

По определению записи периодических десятичных чисел. Открывай школьный учебник и не дури мозги.

Надо написать программу на каком-нить языке типа idris ( ru.wikipedia.org/...s_(язык_программирования ), Agda ( ru.wikipedia.org/wiki/Agda ) или ru.wikipedia.org/wiki/Coq , и тогда точно будет известно — равно или не равно. :D

Данный вопрос оч актуален в лесу, задав его встречному медведю вы получите гарантированное время на то что бы спетлять, пока он пытается найти ответ.

У вас скучная жизненная позиция.

нескучный некропостер.

Как считать деньги в java?

Як і всі нормальні люди, в тисячних копійки. :D

Да как-то монстрообразно выглядит, хранить в int с точностью до тысячной и переводить при выводе, как написано выше, кажется проще..
А вот как более правильно, не знаю )

Только с точностью до копеек. Всё остальное — это неправильно. Но, округления позволяют украсть у того же банка бабло, правда с большим шансов, что после твои косточки будут гнить в ближайшем болоте.

А округления складывать на отдельный счет? или куда их девать?

Какие округления, если ты работаешь в целых числах?
Делишь копейки на копейки? Ну рубить их понимаю на половинки можно, но как делить-то?

Напоминаю школьную программу. Делишь и получаешь целое и остаток от деления С остатком уже определяется что делать инструкциями.

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

Это надо, например, банковские внутренние документы смотреть. Но, я поверю, что в 99% совковых банков такими документами и не пахнет.

У меня в коде остатки от деления накапливались и влияли на следующее округление (в большую сторону округлять или в меньшую). Таким образом суммарный остаток не превышал половину копейки. Погрешность всегда в пределах половины цены деления шкалы.

То ли в Эрэфии, то ли в Беларуси, то ли хрен знает где, есть требование хранить деньги с точностью до десятой части копейки.

Хм, любой использовавший, например, Python3 shell вместо калькулятора и не задумавшийся о смысле ответа, может так попасть в «секретный интернет роботов». Так что проверка недостаточно надёжная.

Такого «любого» спробуй ще знайти. Це ж як людина має себе не любити, аби діставати калькулятор, щоби порахувати 0,1 + 0,2 (не кажучи вже про Python3 shell).

1. Я давно использую Python вместо любого калькулятора :) Ну иногда `bc -l’. Потому что просто удобно.
2. Где это сегодня прочёл — подслушанный разговор какой-то девушки про собеседование — «они мне предлагали в уме умножить на сто, без калькулятора, представляешь!»

Хотя вот сочетание пунктов 1 и 2, да, крайне маловероятно. Тут уже или одно, или другое.

Для оного появилась возможность такой записи? Когда?
Вообще-то это из класса 4 или 5 школьной математики. Или на ДОУ уже своя математика, не стандартная.

на ДОУ уже своя математика
С сыром и зеркалками :)))))
Или на ДОУ уже своя математика, не стандартная.
 +1 год = +500 ))
Уже давно. ))
Для оного появилась возможность такой записи?

КЭП ?

Как я инструкцию к сигнализации только на 17-ом году прочитал (увидел в ней над выводом знак «-»), и понял что светодиоду меня все таки работает, просто сигнализация минус (землю) на него дает. Так и остальные, рассуждаем/спорим, когда вот — ru.wikipedia.org/wiki/0,(9

0,(9) — периодическая десятичная дробь приблизительно равняется 1. Другими словами, 1 = 0 , ( 9 )

Не читайте советский газет перед обедом. Русская вики к ним относится. По количеству бреда она рвет все ее другие локализации.

Вещественные числа в определении по Кантору (наиболее распространённом из эквивалентных) — это фактор кольца фундаментальных последовательностей по идеалу бесконечно малых; иными словами, два вещественных числа, отличающихся на бесконечно малое значение, равны (по определению). Исходя из этого несложно проверить, что «1.0» и «0.(9)» — это просто разные формы записи одного и того же вещественного числа.

Само бесконечно малое значение, к слову, вещественным числом не является (вот поэтому); если вы хотите выполнять над ним какие-то операции, вам следует посмотреть на гипервещественные числа Лейбница (в формализации Робинсона). Настоятельно рекомендую обратиться к этой книге.

Вопрос на засыпку : какая хрен разница? Полноте, господа. В мире полным полно философских проблем имеющих практическое применение

В данном конкретном случае это чисто теория, да. Но вообще надо быть готовым к тому, что числа с плавающей точкой это в ряде вопросов (особенно в сравнении на равенство) это Адъ і Мегиддонъ. «Пользуясь случаем, передаю привет» (tm) и приведу для всех парочку канонических граблей.

Пример 1.


#include <stdio.h>
typedef double F;

volatile F ix;
int main() {
  unsigned cnt = 0;
  for (ix = 0.0; ix <= 20.0; ix = ix + 0.1) {
    ++cnt;
  }
  printf("%u\n", cnt);
  return 0;
}

Ответ — 200 (от режима FPU/SSE не зависит, за счёт присвоения в volatile мы гарантированно округляем), вместо наивно ожидаемого 201; итерация с 20.0 не выполняется. Для корректного выполнения надо или перейти к итерации по целому и умножать на 0.1 для целевого применения, или заменить сравнение на <= 20.5.

Пример 2 — когда число не равно самому себе :)

Требует или x86 с FPU (обычно для 16- и 32-битных режимов), или M68k с его FPU (вряд ли доступно типичному читателю). Берём код:


#include <stdio.h>
#include <ieeefp.h>

volatile float a, b, f1;
int main() {
  a = 0.1f;
  b = 0.2f;
  f1 = a + b;
  printf("%d\n", f1 == (a + b));
  return 0;
}

Программа покажет 0, то есть 0.1 + 0.2 будет не равно 0.1 + 0.2.
Если же перейти на SSE, они совпадут. Или выставить в режиме FPU точность single, для FreeBSD это fpsetprec(FP_PS).
Причина: результат второго a+b хранится в регистре FPU с точностью большей, чем single (AKA float в C); типичное умолчание точности — double (Windows, FreeBSD), extended (Linux); при сравнении, f1 загружается, но его значение не совпадает с неурезанным результатом сложения.

С учётом того, что в самом вроде бы распространённом среди участников DOU языке Javascript есть только числовой тип с плавающей точкой, описанные грабли встречаются чуть менее чем всем. При этом, свежий вариант второго случая был на C# и являлся гейзенбагом, проявляясь только при определённых условиях компиляции.

Спасибо за интересные примеры.
На (1), помнится, один раз в студенчестве сам наткнулся, на лабах по численным методам. Тоже цикл не делал одну итерацию. И я долго не мог понять, почему ответ не сходится.
Зато с тех пор усвоил, что числа с плавающей точкой — это действительно

Адъ і Мегиддонъ

Да никакого ада нет. Надо просто понимать, что есть точное число, что есть округленное и их представление в системах счисления.

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

Нет тут никаких грабель может потому, что учился в универе. Нам оное объяснили в деталях. Но это был БГУ конца 80-х, а что там нынче и что у вас нынче я не в курсе.

Нам оное объяснили в деталях.

Мне тоже. Но это потому, что я был на прикладной математике. А те, кто учился по более программистским специальностям, это или не получали совсем, или прохлопали, у них были всякие теории алгоритмов и т.д., но не особенности плавучки.

Я с этим столкнулся в LuckyNet, когда мы перешли на канал со спутника с жуткой прецессией и потребовалось корректировать положение приёмной тарелки автоматизированно. Откуда-то стащили программу поиска прецессий и стали её точить для нашего случая. И вот тут коллега вляпался с ходу в проблему последней итерации и пошёл спрашивать, шозадела, у всех вокруг. И дальше картина Айвазовского «Приплыли» — я могу произнести только что-то вроде «RTFM! Об этом в FMM открытым текстом в самом начале!» — а этот коллега тоже стоит потеряв челюсть, осознавая, что неожиданно вляпался в совершенно неведомую ему область, и не понимая, как измерить, насколько он чайник...

А вот хохму с промежуточными вычислениями в extended в x86 FPU и нам тогда не рассказывали, потому что курс ещё был заточен на плавучку образца S/360 — эти чудеса я узнал сильно позже, уже где-то в 2010, когда работал вокруг HPC. И тоже попал в такое же офигение в, казалось бы, давно изученном и понятном месте, как будто в стенном шкафу открылась дверь в неизвестный мир :)

Ну я не знаю, что там в МРТИ было том же. Но нам конкретно дали погрешности.
Но ФПМ тогда программистов не готовил, программирование у нас шло, как изучение инструмента. Основное — это дали вышку сТВ и численные методы. Правда я на кафедре ВМ учился — эту часть нам углубленно дали, устойчивость, сходимость и т.п. — а это чистая классическая математика.
И сейчас я вижу, что многое из того, что мы тогда считали классикой до сих пор толком не реализовано для компов. Правда в Союзе школа численных методов очень сильна была.
У меня курсовые были на порядок сложнее и интереснее того, что я делал после в течение 20 лет — адаптивные методы решения жестких систем линейных уравнений (руководителем был Бобков). Книжки еще такие были по численным методам в Союзе под авторством Крылова, Бобкова и Монастырного.

Но ФПМ тогда программистов не готовил, программирование у нас шло, как изучение инструмента.

Именно. Это совпадало с тем, как учили меня. При этом на кибернетике были мат. поток с прикладной математикой и програм. поток с ориентацией больше вокруг всякой теории алгоритмов, я был на первой, но видел, что на второй. Постепенно программа обучения смещалась от прикладной математики к чисто компьютерным направлениям, как теории, так и связанной практике.

Последний раз, когда мне понадобилось именно то, чему нас учили, это дипломная практика и затем работа в течении 3 месяцев в НИЛ в РТИ по расчету ионно-оптических систем. До того, как я пришел на практику ребята тупейший метод последовательных итераций юзали — считали на 286 ну очень долго. Я на дипломной практике им метод переменных направлений реализовал. Стало прилично быстрее считать. Ну а в качестве диплома скопировал первую главу докторской завлаба.
А потом с нового года нас переводят на четверть ставки с зарплатой в 5$ и покатилось всё под откос в Союзе.

Потом как-то так получилось, что позвали в лабораторию фоноскопии, поднял ЦОС и марковщину немного, вспомнил элементы ТВ и МС. Но численные методы на том уровне, что нам дали, так и не пригодились. Правда и реализовать корректно какой из тех методов на компе — это прилично повозиться надо — это не тупо формулы языком программирования записать, надо учесть погрешности, устойчивость, сходимость — это надо вспомнить кучу того, что давали, а уже и лекции давно утеряны.
Ну и сейчас компы мощные, часто дешевле юзать тупые методы и не заморачиваться.
А вообще еще за год до моего выпуска советская военка выгребала полностью все 300 человек выпуска факультета и большинство именно делали то, чему их учили 5 лет.

Ну и сейчас компы мощные, часто дешевле юзать тупые методы и не заморачиваться.

Или брать готовые пакеты, которых сейчас чуть более чем дофига, и коммерческих, и открытого кода.
Вон scipy тянет за собой несколько таких.

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

Ну и я так полагаю, с приходом 91-92 они все пошли челноками товары возить.

Я как раз на этом переходе учился, поступал при СССР, выпускался уже при Кучме.

Или брать готовые пакеты, которых сейчас чуть более чем дофига, и коммерческих, и открытого кода.
Обычно в этих пакетах самые стандартные и простые методы. Уже давно как компы по производительности монстры и затраты на написание не стандартных алгоритмов и реализаций чаще всего не окупятся. Выгоднее добавить железной мощи и ты продолжишь дальше вперед двигаться, чем будешь отлаживать нестандартный алгоритм.
Ну и я так полагаю, с приходом 91-92 они все пошли челноками товары возить.
Кто куда. По сути из всей группы только я в этой области остался. Даже не знаю уже кто и где. А не, не я один. Еще один слинял в Европы програмить. Еще одна девченка из соседней группы в 1С ушла — сейчас крутая в 1с (правда больше по тому, что за столько лет бухгалтерию лучше бухгалтеров знает). Да и не интересно мне, вот и не интересуюсь где кто.

Программируя на джава и проблем не будет)

При цикле на том же double будут ровно те же проблемы. Учите матчасть.

Я его понял так, что при юзании жабы подобные ошибки в коде называют фичами.

Да, 1=0.(9) и это строгое равенство. Я думал это сейчас в школе проходят...
Простое доказательство: сколько будет 1/3 в десятичной форме? Так вот, 1 — это три раза по 1/3, сложи их в десятичной форме.

От подобного уже плакать хочется. Да это было мне интересно в 3-5 классах.

По-перше, порядок формул навколо першого знака рівності переплутали. По-друге, знак квадрата в третьому рядку загубили. По-третє, й найголовніше, з a^2 = b^2 не випливає a = b (адже існує можливість, що a = — b).

Привет, кэп :)

По комментам сразу видно у кого получилось войти в IT.

Я с детства «в IT» и недавно столкнулся с википедией и 1 = 0,(9) с чем сильно не согласен.

Решил более подробно описать почему 0,(9) не равно строго 1. При преобразовании периодической дроби в обыкновенную, используется формула суммы геометрической прогрессии. А эта формула может использоваться только для нахождения суммы последовательности. Вот эта формула: S = b * (q^n — 1) / (q — 1). В нашем случае n стремится к бесконечности, а q=0,1. И тут эта формула преобразуется в S = b * (0 — 1) / (q — 1). В математике нельзя просто так взять и беспричинно приравнять q^n к нулю. На самом деле тут берётся предел. Но поскольку на момент объяснения периодической дроби пределы не изучены, учитель говорит что то вроде «поверьте сейчас, а поймёте потом». И тут уже речь идёт о lim(b * (q^n — 1) / (q — 1))=b/(1-q) при n -> бесконечность.
И если дробь 0,(8) и в пределе равна 8/9, и строго равна 8/9, то дробь 0,(9) в пределе равна 1, но строго не равна 1. В пределах такое бывает. Например, lim(1/n) при n-> бесконечность в пределе равно 0, но 1/n не равно строго нулю.

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

Источник

Хорошая попытка, но нет, пара сотен лет математики устоят и на этот раз.

0.(9) = lim(0.9*(1 — 0.1^n)/(1-0.1)) = 1, с этим вы согласны? Если да, то вспомним свойство транзитивности если 0.(9) = lim(0.9*(1 — 0.1^n)/(1-0.1)) и 0.(9) = lim(0.9*(1 — 0.1^n)/(1-0.1))=1, то 0.(9) = 1.

Теперь второй момент:

Например, lim(1/n) при n-> бесконечность в пределе равно 0, но 1/n не равно строго нулю.

1/n будет строго равна нулю, только если n будет строго равно бесконечности, и только если вы умеете оперировать бесконечностями без приделов.

И это прЕдел, ссори за ошибку.

0.(9) = 0.9+0.09+...+0.0000..9; Имеем бесконечную геометрическую прогрессию с q = 1/10; соответственно, ее сумма будет равна S = 0.9/(1-0.1) = 1

Предел суммы вашей числовой последовательности будет стремиться к 1, но никогда ее не достигнет.

А почему мы говорим про предел суммы? Я имею в виду сумму членов, без ее предела

Как только вы начинаете оперировать бесконечностями обычная арифметика перестает работать.
Сумма геометрической прогрессии 1/2 + 1/4 + 1/8 + ... равна 1 только в школе.
На самом деле 1 — это предел суммы сходящейся числовой последовательности:
lim Σ(1/2)^x == 1
x-> oo

Не уверен, что мы друг друга правильно понимаем. Только что проверил википедию и там говорится, что при радиусе сходимости, который по модулю меньше 1 мы можем применять теорему про сумму членов бесконечной геометрической прогрессии. Без никаких пределов.

И

lim (1/2)^x == 1
x-> oo
Простите, там не должно быть 0 пределом, а не единица?

Тогда надеюсь, что следующая цитата разрешит все споры:)
«Действительно, последовательность 0,9; 0,99; 0,999; и т. д., при стремлении количества девяток к бесконечности, будет стремиться к единице. Но когда девяток станет ровно бесконечное количество — а именно это выражает запись 0,(9), — тогда это число станет ровно единицей.»

Согласен с вами, но приятно было подискутировать :)

(9)
То есть нормальные люди записывают это как предел со стрелочкой с бесконечностью и знаком суммы? Тогда да. Равно 1. Вопросов нет.

Нет, запись 0.(9) означает, что после нуля идёт бесконечное количество 9, и в то же время, это число, такое же, как и 13,4

Но когда девяток станет ровно бесконечное количество — а именно это выражает запись 0,(9), — тогда это число станет ровно единицей
Ровно бесконечность?

Можно убрать слово «ровно»:)

Потому что бесконечная последовательность не может иметь сумму в арифметическом смысле. Понятием «сумма бесконечно убывающей геометрической прогрессии» обозначают именно предел

А если так:
1/3 * 3 = 1
1/3 = 0.(3)
0.(3) * 3 = 0.(9)

1.3 != 0.(3)

1/3 не выражается десятичным числом.
0.(3) лучше всего аппроксимирует 1/3, но неравно ему.

Во дела!

И наверное 1/2 лучше всего аппроксимирует 0.5(0), но не равно ему?

как математик, хоть и давно забросил это занятие
говорю что это не одно и тоже

весь мир на точностях построен а вы такое спрашиваете

херовый из вас математик (
на первом курсе анализа показывают обычно.

херовый из вас математик (
сейчас может быть, но из вас еще хуже.
на первом курсе анализа показывают обычно.

на первом курсе анализа показывают обычно что 0.(9) стремиться к 1 но некогда не будет равно 1
в теории пределов пишут 0.(9) предел который равен 1

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

Прежде всего, на первом курсе анализа рассказывают, что стремиться к чему-то может последовательность, а число ни к чему стремиться не может. А 0.(9) — не последовательность, а число. Точнее, некая его формальная запись, потому что не существует соответствующей рациональной дроби, и эта запись естественным образом принимается равной 1.

ну и знаток

что стремиться к чему-то может последовательность, а число ни к чему стремиться не может
вот ru.wikipedia.org/wiki/0,(9

я не совсем правильно описал

«У этого равенства существует несколько доказательств, основанных на теории пределов.» — это цитата из статьи
«Утверждение 0.999... = 1 может быть интерпретировано как предел» — это цитата из статьи

Точнее, некая его формальная запись, потому что не существует соответствующей рациональной дроби, и эта запись естественным образом принимается равной 1.

кем принимается? домохозяйкой для составления бюджета.

ну и знаток

Спасибо, коллега. Я тоже отношусь к вам с уважением.

я не совсем правильно описал

При желании можно интерпретировать как последовательность, только это надо явно надо указать, равно как и какая именно конкретная последовательность имеется в виду. Наверное я не открою вам секрет, коллега, если скажу, что таких последовательностей для интерпретации 0.(9) может быть много. Даже бесконечно много.

кем принимается? домохозяйкой для составления бюджета

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

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

Смешались в кучу кони, люди. А в офигее от постов в этой теме и местных «матиматеков».

Это ты себя то человеком называешь великий математик.

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

Ты элементарно дурак. Поздравляю!

А показательно у тебя получается.

Странно, что такой способ записи никогда не встречался ранее. Имею ввиду скобочки. Это способ записи пределов какой-то особенный?

Период ведь.

Ни в одном учебнике математики до сих пор не видел.

Значит, у меня другие учебники были. Вот какой-никакой, но пруф.

Будь там хоть бесконечность дявяток после точки, это все равно не будет равняться 1.

В шестом классе на алгебре будете проходить

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

А, я понял, это из области «Что лучше Java или C#?», но для математиков.

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

Если не заглядывать в книги, википедию и порассуждать логически...
С одной стороны разница 1 — 0.(9) меньше любого наперед заданного числа, так что похоже, что равны.

Но с другой стороны, есть, например, такой случай: если взять Y = 1/(1-X)
Y(1) == 1/0 == неопределёность
Y(0.(9)) ==1/0.(0)1 == плюс бесконечность

Если я нигде не накосячил, то это все-таки контрпример.

Неопределенность это не число) Как и бесконечность. А запись 0.(0)1 просто не имеет смысла.

Как и бесконечность.
В java бесконечность вполне себе число со всеми свойствами числа.

Вопрос я так понимаю не о Java. Тем более что там литерал 0.(9) наверное вызовет ошибку компиляции.

Я сомневаюсь, что в дискретной математике вообще есть понятие периода.

Сабж это не дискретная математика, а самый что ни на есть матан.

Я, конечно, понимаю, что ИТ стало прибежищем школьных учителей математики, только не надо лезть со своим уставом в наш монастырь. У нас тут дискретная математика по дефолту.

Посмотрел в профайл — вроде приличный человек, а троллите как школьник. Даже неловко за вас как-то.
Не нужно так расстраиваться. Невозможно все знать и не всем нужен матан, большинству даже не нужен. И стесняться здесь совершенно нечего.

Посмотрел в профайл — вроде приличный человек, а троллите как школьник. Даже неловко за вас как-то.
Как я могу быть приличным человеком, если я с утра минус бесконечность делил на ноль и наслаждался результатом?
Не нужно так расстраиваться. Невозможно все знать и не всем нужен матан, большинству даже не нужен. И стесняться здесь совершенно нечего.
Посмотрел и ваш профиль. Математик, т.е. я ткнул пальцем в небо и угадал с одной попытки, что впрочем неудивительно.

Вы можете сколько угодно доказывать, что 10+10=20, но в то же время оно ещё равно и 100.

Как я могу быть приличным человеком, если я с утра минус бесконечность делил на ноль и наслаждался результатом?

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

Посмотрел и ваш профиль. Математик, т.е. я ткнул пальцем в небо и угадал с одной попытки, что впрочем неудивительно.

Вы написали не «математик», а «учитель математики», что не одно и то же. Но при этом как будто с каким-то осуждением. Вы считаете, что иметь математическое образование это плохо? Почему?

Вы можете сколько угодно доказывать, что 10+10=20, но в то же время оно ещё равно и 100.

И спорить не буду, потому что в двоичной системе это действительно так. Я не спорю исключительно из духа противоречия, а вы почему-то упорствуете в своих заблуждениях, что меня искренне огорчает.

Вы написали не «математик», а «учитель математики», что не одно и то же. Но при этом как будто с каким-то осуждением. Вы считаете, что иметь математическое образование это плохо? Почему?
У меня вышка была 1.5 года в универе, а дискретка, все разделы, 5 лет, причём по нескольку разделов одновременно каждый семестр. Поэтому, когда программер говорит:
Неопределенность это не число) Как и бесконечность.
Он почему-то взводит обычный матан в ранг последней инстанции и отказывает другой ветке математики в существовании, что скорее всего означает, что был только ознакомительный курс, либо его не было вообще, чем особенно грешат математические специальности.
а вы почему-то упорствуете в своих заблуждениях, что меня искренне огорчает.
Разве это я заблуждаюсь? %)

У нас дискретки был год и еще один семестр теории алгоритмов, так что, думаю, с основными концепциями я все-таки знаком. Разве дискретка оперирует где-нибудь записями вроде 1=0.(9)? Мне правда интересно.

Разве дискретка оперирует где-нибудь записями вроде 1=0.(9)?
Конечно. 0.(9) при определении n-digit system или задании допустимой ошибки будет аппроксимирована до конкретного числа.

Поэтому при задании погрешности 0.0000000000001 оба выражения логически верны:
1) 0.9999999999999 = 1.0
2) 10 * 0.9999999999999 != 10

чего в недескретной математике быть не может.

Э нет, подождите. Вы сейчас о представлении чисел с плавающей точкой в памяти говорите, со степенью и мантиссой? Так вы просто не сможете ввести 0.(9) — именно с девяткой в периоде, а не с большим количеством девяток — в память. Нет такого литерала, по крайней мере в неспециализированных языках. Ввести, допустим, 0.(3) можно, просто записав 1/3, и оно действительно будет аппроксимировано каким-то числом вроде 0.3333333333334, но именно 0.(9) — особый случай, просто нет такой дроби вида n/m. Именно потому, что 0.(9) это 1.

Вы сейчас о представлении чисел с плавающей точкой в памяти говорите, со степенью и мантиссой?
Нет.
Так вы просто не сможете ввести 0.(9) — именно с девяткой в периоде, а не с большим количеством девяток — в память.
Мы задали погрешность вычислений.
но именно 0.(9) — особый случай, просто нет такой дроби вида n/m. Именно потому, что 0.(9) это 1.
0.999...=9/10+9/10^2+9/10^3+...
Нет.

Тогда не понимаю, о какой именно арифметической системе вы говорите.

0.999...=9/10+9/10^2+9/10^3+...

Вы уверены, что в n-digit system (что бы вы под этим не подразумевали) существует 10^m, где m > n ?

Тогда не понимаю, о какой именно арифметической системе вы говорите.
Я же об этом как раз и говорю :(
Вы уверены, что в n-digit system (что бы вы под этим не подразумевали) существует 10^m, где m > n ?
Существует 10^(n+1), все остальное может существовать только в субнормальном виде и зависит от репрезентации числа.

10^(n+1) может существовать только, как результат округления к ближайшему числу, если округление принимается во внимание.

Я же об этом как раз и говорю :(

Это еще не значит, что правы именно вы. У этой вашей арифметики есть какое-то общепринятое название? А то про «n-digit system» не знает даже Google Scholar, а он достаточно осведомленный товарищ.

Существует 10^(n+1), все остальное может существовать только в субнормальном виде и зависит от репрезентации числа.
10^(n+1) может существовать только, как результат округления к ближайшему числу, если округление принимается во внимание.

То есть — не существует? И соответственно, не существует 0.(9). Прекрасно. То, что 0.99...99 (с любым конечным числом девяток) не равно 1, я знаю, спасибо, Кэп.

Это еще не значит, что правы именно вы. У этой вашей арифметики есть какое-то общепринятое название? А то про «n-digit system» не знает даже Google Scholar, а он достаточно осведомленный товарищ.
Замени слово system на number, хотя всегда в специфической англоязычной литературе говорят n-digit system, когда опиcывают модель.
www.google.ca/...rd=ssl#q="n-digit" number
Замени слово system на number

Кликнул по паре ссылок — там речь просто идет о числах, записываемых не более чем заданным количеством n цифр. Чтобы понять что это такое, не обязательно изучать дискретный анализ 5 лет, достаточно средней школы.
Собственно, это как раз таки не что иное как упрощенный случай упомянутой мной арифметики с плавающей точкой.
Но вернемся к исходному комментарию. Вы пишете:

Конечно. 0.(9) при определении n-digit system или задании допустимой ошибки будет аппроксимирована до конкретного числа.

то есть хотите сказать, что
1) У нас есть некое вещественное число 0.(9)
2) Вы хотите аппроксимировать его неким n-значным числом и оперируя уже этой аппроксимацией, доказать, что эта аппроксимация не равна 1 в n-значной арифметике.
А я вам говорю, что и среди чисел, определенных в рамках n-значной арифметики, наилучшей аппроксимацией для вещественного числа 0.(9) будет не 0.99..99 (с n девятками), а 1. Даже аппроксимировать ничего не надо, это просто равенство.

Собственно, это как раз таки не что иное как упрощенный случай упомянутой мной арифметики с плавающей точкой.
Почему вас циклит либо на абстракциях, либо на конкретных имплементациях? Забудьте про плавающую запятую вообще.
2) Вы хотите аппроксимировать его неким n-значным числом и оперируя уже этой аппроксимацией, доказать, что эта аппроксимация не равна 1 в n-значной арифметике.
dou.ua/...rums/topic/19279/#1028781
при определении n-digit system или задании допустимой ошибки

То есть там вводится операция изменения значения на основании формальной записи. Тогда в неравенстве виновата исключительно эта операция, которая так определена.

Поэтому при задании погрешности 0.0000000000001

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

Поэтому это всё не имеет отношения к вопросу ТС.

Почему не? Вопрос только в ограничении представление чисел на компах и всего из этого вытекающего.

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

Рассказываю. Уже работает. IEEE754-2008, decimal типы — уже работают, есть туева хуча multi-precision библиотек, включая буст (тебе как плюсовику стыдно об этом не знать). Ну а скорость... вопрос сколько готов ты выложить за decimal акселлератор в железе, или создай сам его в GPGPU. Тебя ничего не ограничивает, кроме лени.

Ограничивает объем памяти вообще-то.

Создай мне \sqrt(2) c 10^100 знаков на компе.

Ограничивает объем памяти вообще-то.
Так это, ты сам себе ставишь ограничения.

На земле уже появился бесконечный объем памяти для компов? Или все же хоть и большой, но конечный.

Ты спросил про «точными действительными числами», точность ты задаешь сам. Или у тебя бесконечная точность? Тогда это новое слово в науке.

Сколько знаков в записи числа \sqrt(2)?

точность ты задаешь сам
Получаются округленные числа до нужного тебе количества знаков.

Ты сознательно уходишь от ответа, если ты спрашиваешь про «точные действительные числа», то я дал ответ. Или называя точными имел что-то другое в виду? Тогда будь бобр выражайся яснее.

Я просто не могу понять ты троллишь или в самом деле не знаешь математики и ее примения в компах.

или в самом деле не знаешь математики и ее примения в компах.
Как раз о применении я знаю очень много, вот только это дискретная математика, а не то мозговое онанирование, о чём говорится во всём этом топике.

P.S.: www.google.ca/...ные действительные числа

Что я там не видел?

неопределенность это не число, бесконечность это тоже не число,
НО! неопределенность != плюс бесконечность.

Y(x1) == неопределённость
Y(x2) == плюс бесконечность

Y(x1) != Y(x2), из чего следует, что x1 != x2 :P

Если не заглядывать в книги
Отличное начало!
Y(1) == 1/0 == неопределёность

1/0 — бесконечность. Вы спутали с 0/0.

Какая бесконечность? плюс бесконечность или минус бесконечность?

Геометрически график функции 1/x в точне 0 имеет разрыв. С левой стороны от 0, график функции стремится к минус бесконечности, справа — стремится к плюс бесконечности.
А значит функция в 0 неопределенна.

1. Разрывность в некоторой точке никак не означает неопределённость.
2. Всё зависит от определения меры. В ТФКП вместо числовой оси часто используют числовую окружность, и 1/x есть отображение точки (a,b) с окружности в точку (a,-b), и наоборот. 0 соответствует точке (0,1), а обе бесконечности сливаются в точке (0,-1).
Конечно, если знать математику на школьном уровне, то это всё будет новостью :) Но первый пункт можно было узнать уже из первого курса матанализа.

А я и не говорил, что разрыв обязательно означает неопределенность.
Вот у |1/x| в нуле будет плюс бесконечность, а у 1/x — неопределенность.
О чем я и написал в своем комментарии выше.

PS По поводу ТФКП согласен, хоть и подзабыл уже все.

а у 1/x — неопределенность.

Именно что только если требовать обязательного наличия знака у этой бесконечности. Но когда говорим о бесконечности, то это требование может быть излишним.

Вообще бесконечность будет в пределе при x стремящемся к 0.
Боже, я в шоке от того, что почитал в этой теме.

Хороший вброс потроллить местных программеров-матиматеков.

Вообще-то ни та ни другая операция не допустимы — их просто не существует.
А вот о том, что чем ты говоришь, это уже пределы.

Вообще-то ни та ни другая операция не допустимы — их просто не существует.

Я уже дважды объяснял, как сделать, чтобы операция типа 1/0 существовала и давала конкретное значение, и почему и как это будет иметь смысл.

Проблема в том, что многие не понимают, что все математические объекты, начиная с чисел — это абстракции, определённые под конкретные цели, и их полезность только в том, что столетия развития доказали, что именно такие абстракции полезны для решения практических задач.

А вот о том, что чем ты говоришь, это уже пределы.

В том и дело, что я упомянул рассмотрение, в котором это никакой не предел, а совершенно точное значение :)

Мой тебе совет пройти еще раз курс математики, начиная с первых классов школы.

Мой тебе совет выключить в себе режим идиота, пока не поздно, и таки задуматься, что пишет собеседник.

да, это одно и то же число

Пайтон говорит что да
$ python -c ’print 0.9999999999999999999′
1.0

Так то конечно, а если 0.9999999999999999?

\_(ツ)_/¯
тоже самое
$ python -c «print 0.9999999999999999»
1.0

python -c “print 0.999999999999”

Что вы мне тут глупости пишите? 0.9999999999999999 значительно ближе к 0.9(9) чем 0.999999999999, а значит для практического доказательства нужно использовать именно его!

Продолжаем нашу лекцию о высшей математике на питоне. Step 2:

python -c «print .1 + .1 + .1»
python -c «print .1 + .1 + .1 == .3»

Нам еще в школе рассказывали что так числа с точкой сравнивать нельзя, а вы такой взрослый дядька и этого не знаете.

Нам еще в школе рассказывали что так числа с точкой сравнивать нельзя
На уроке математики? o_O

Если бы я был вашим секретным Сантой, я бы подарил вам учебник по чувству юмора.

Могу дать взамен «Остроумие для чайников: самоучитель, который превратит любого зануду в первоклассного шутника».

Жаль что вы не мой секретный Санта((

Наверно потому я на нем и не пишу) Куда 16-ю дел то?
Пробуйте 0.999999999999999

все-равно один
$ python -c ’print float("." + «9» * 16)’
1.0

«9» * 16
Так мы же вычислили, что он не умеет в 16, что же вы пишете)
Куда 16-ю дел то?
Ну вы спрашиваете куда я ее дел, а я ее никуда не девал

Я удивился куда python ее дел, не вы)

Пайтон просто округляет и не более.

х = 0.(9)
10х = 9.(9)
(10х — х) = 9.(9) — 0.(9)
9х = 9
х = 1

А ты не верь википедии, а возьми и попробуй :)

Зачем, я верю Эйлеру, на которого там ссылка есть. Наверное, он несколько больше разбирался, чем многие здесь, как некоторые пишут «вайтивайти»

Да, довольно спорный переход.
Собственно, его можно делать только, если предварительно доказать, что 0.(0)01 == 0.(0)10, что фактически аналогично доказательству 1 == 0.(9)

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

0.(0)01
Запис (0) означає, що 0 повторюється завжди. Тобто після якогось ...000000... неможлива поява якоїсь іншої цифри в числі. І запис 0.(0)01 не може служити формою запису періодичного дробу.

Если «числа» 0.(0)01 и нет, то его очень просто можно ввести:

1)Пусть есть ряд:
x1 = (0.1)^1 = 0.1;
x2 = (0.1)^2 = 0.01;
x3 = (0.1)^3 = 0.001;
Xn = (0.1)^n = 0.0...01;

2) Обозначим числом 0.(0)1 предел этого ряда, когда n—>oo
0.(0)1 = lim (0.1)^n
_________n->oo

І в цьому випадку запис 0,(0)01 також

не може служити формою запису періодичного дробу.

10*0.(3) = 3.(3) или нет?
x=0.(3);
10x = 3.(3);
10x = 3 + 0.(3);
10x = 3 + x;
9x = 3;
x = 1/3;
Вроде как все ок: 0.(3) = 1/3 (с этим, надеюсь, никто не будет спорить?)

Чем отличается умножение 0.(9) на 10 от 0.(3) на 10?

Ничем, это одно и то же умножение

1.3 != 0.(3)
1/3 не выражается десятичным числом.
0.(3) лучше всего аппроксимирует 1/3, но неравно ему.

Это 0.333333333 аппроксимирует (конечное число троек), а 0.(3) — запись в десятичном виде для 0.333... = 1/3

0.(3) — запись в десятичном виде для 0.333...
да
= 1/3
нет.

1/3 ≈ 0.(3)

Не все, чему вас учили в первом классе, правда :)
Вы еще скажите, что на ноль делить нельзя или нет корней из отрицательных чисел.

Любое утверждение требует доказательства.
Согласен с тем, что 1/3 ≈ 0.(3), но точного равенства нет.
И его доказательства вы не привели.

Тоесть, вы хотите сказать, что они всё врали? O_O

насправді на ноль ділити не можна, про це нам в школі не збрехали)

можна, тільки ніхто не знає, шо буде в результаті

В некоторых случаях знают. Только это относится к алгебраическим структурам, там не совсем ноль и не совсем деление в привычном смысле.

Не обязательно к алгебраическим структурам. Уже рядом говорил — числовая окружность вещественных чисел вместо числовой оси (активно используется в ТФКП), деление там совершенно стандартное, но случай деления на 0 там реализуется совершенно естественно без искривления общей логики.

Если ТФКП это теория функции комплексного переменного, то ничего не могу сказать. Это было когда я уже работал, потому курс прошёл мимо меня :)

И в ТФКП- эта операция будет обратимой?) То есть умножив потом на ноль -мы получим исходное число?)

Нет. Умножение на 0 (деление на ∞) и деление на 0 (умножение на ∞) необратимы, в отличие от умножения и деления на все другие числа. Чуда не произойдёт ;)

Дно образования очередной раз пробито.

не зовсім зрозумів до чого це Ви написали, може поясните?

Оная тема объясняется еще в 4-5 классе школы.
Я думал, что дно в образовании у местных программистов — это не знание институтской программы. Но тут его пробили, оказываются не знают уже математику 4-5 класса.

ну я звісно не математик, но мене в універі вчили, що на ноль ділити не можна, от ліміт брати — да таке я знаю.

Вообще то в РБ этому меня учили в школе. И ребенка сейчас в школе учат. До пределов они еще не дошли, но с нулем и десятичными дробями еще несколько лет назад всё объяснили.

Дно пробил именно ты, потому что не понимаешь, что в математике совершенно нормально, что суровые запреты более низкого уровня превращаются в возможности на более высоком уровне. Причём это было и в школьной математике:
«нельзя из 2 вычесть 4!» — проходит полгода, и вводятся отрицательные числа.
«7 на 2 не делится!» — всего через пару лет: делится, причём сразу в двух вариантах — с остатком или с получением нецелого числа.
«нет такого числа, квадрат которого равен 2!» — вдруг появляются иррациональные числа.
«нет такого числа, квадрат которого равен −2!» — оп-па, ввели мнимые, за ними комплексные.

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

Ну давай теперь ты расскажешь про деление на 0. Я послушаю.

Уже всё рассказал рядом.

1/3 не выражается десятичным числом.
це неправда, бо
Будь-яке раціональне число можна подати у вигляді скінченого дробу або нескінченного періодичного десяткового дробу.
[www.testmath.com.ua/...AutoDetectCookieSupport=1]

Как интересно. А чему равно?

10 * 0,(9) = 10 * (0,9 + 0,0(9)) = (10 * 0,9) + (10 * 0,0(9)) = 9 + 0,(9) = 9,(9)
із чого випливає 10 * 0,(9) = 9,(9)

Так точно ©

Ага, восемь — это тоже в какой-то степени два...

Подписаться на комментарии