Mercury13

на Пикабу
поставил 284 плюса и 57 минусов
проголосовал за 0 редактирований
4140 рейтинг 18 подписчиков 1650 комментариев 7 постов 3 в горячем
235

МК-61 и с чем его едят

Раз уж пошла такая пьянка, попробую рассказать, чем он интересен.

МК-61 и с чем его едят Мк-61, Калькулятор, Старое железо, Ностальгия, Длиннопост

История

В 1970-е годы в СССР были разработаны профессиональный программируемый калькулятор «Электроника-70» и более простой «Электроника Б3-21» (после Б идёт цифра три, а не буква «зю»!). Если 70 — это совсем другое устройство, то в 21-м уже видны отдельные черты нашего калькулятора.

В 1980 году вышел калькулятор второго поколения — «Электроника Б3-34». Девайс был тяжёлый и основательный, и впоследствии сделали более компактный МК-54, настольный МК-56, демонстрационный «Программист» (в нашей школе он был, но никто не видел его работающим). Все три полностью совместимы (только ранние Б3-34 не работали с углами в градах).

МК-61 и с чем его едят Мк-61, Калькулятор, Старое железо, Ностальгия, Длиннопост

В третьем поколении два калькулятора. В МК-61 (1984) сильно расширили систему команд при сохранении основной совместимости. МК-52 (1985) был совместим и заодно хранил программы во внутренней энергонезависимой памяти (в машинах от Б3-34 до МК-61 при выключении приходилось перенабирать программу и прогонять тесты).

МК-61 и с чем его едят Мк-61, Калькулятор, Старое железо, Ностальгия, Длиннопост

Эти калькуляторы форсировались советскими книгами и журналами. Калькулятор стоил 60–80 рублей при зарплате от 100 до 200, и был самым доступным программируемым вычислительным средством. На нём писали расчётные программы и даже небольшие игры — фанаты чертили на координатной сетке траектории космических кораблей, проходили лабиринты (благо шестнадцатеричная логика МК-61 позволяла запомнить в одной ячейке до 28 битов). Был даже мат конём и слоном (с небольшими ограничениями).


Вот рандомная программа из «Техники — молодёжи» (сложно было найти скан одновременно читаемый и с полным описанием).

МК-61 и с чем его едят Мк-61, Калькулятор, Старое железо, Ностальгия, Длиннопост

Слово ERROR (ошибка) отображалось как ЕГГОГ, и поиск недокументированных возможностей калькулятора получил прозвище «еггогология». Основными рупорами еггогологии были журналы «Техника — молодёжи» и «Наука и жизнь».

Более поздние калькуляторы такой славы не снискали. А слава семейства МК продолжалась до середины 90-х, благо они были неплохим устройством для начального обучения программированию. Ноутбук обычно на экзамен брать нельзя (да и дороги были тогда ноутбуки), а МК — можно. А если прийти пораньше и забить программу какого-то ценного вычисления — вообще песня. Из моего опыта — на экзамене обратил матрицу 3×3, правда, это заняло всю память МК.

В 2000-е годы фирма «Семико» для собственных нужд создала семейство вычислительных машин, частично совместимых с МК-61.

МК-61 и с чем его едят Мк-61, Калькулятор, Старое железо, Ностальгия, Длиннопост

Сейчас на Google Play много точных эмуляторов, и можно поиграться с ними (искать по ключевому слову «МК-61»). Обратная польская запись очень удобна для сложных расчётов, и я держу эмулятор именно для этого (на эмуляторе до этого момента ни разу не программировал).

МК-61 и с чем его едят Мк-61, Калькулятор, Старое железо, Ностальгия, Длиннопост

Технические характеристики

Быстродействие: около 3 операций/с

Система команд: автокод с обратной польской записью, имитирующий нажатия клавиш

Шагов в программе: 98 (Б3-34), 105 (МК-61)

Рабочих регистров: 4 основных, 1 дополнительный

Ячеек памяти: 14 (Б3-34), 15 (МК-61)

Несмотря на распространение, калькуляторы обладали серьёзными недостатками.

• Очень недолго работали от батареек. Нельзя перейти с розетки на батарейку и наоборот.

• Точность трансцендентных операций не отвечала разрядности памяти: 2³=8,9999984.

• Вместо «0,5» выводило «5…−01», то есть 5·10⁻¹.

• Хлипкая конструкция МК-54 и МК-61. Особенно ломались кнопка включения, разъём блока питания.

• Не было долговременной памяти (кроме МК-52). Программу в сто шагов приходилось набивать с бумаги, потом прогонять тест.

• Крайне низкое быстродействие: результатов выполнения программы приходилось ждать минуту-две.

• У Б3-34 были крайне полезные недокументированные команды КИП↑/КП↑, не сохранённые в МК-61.

• Полезность некоторых команд, добавленных в МК-61, была спорной.

• Одна и та же клавиша в разных моделях называлась по-разному, и неопытный, увидевший программу для другого калькулятора, мог запутаться.

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

Соответствие клавиш Б3-34 и МК-54 (61, 52)

↑ = В↑

XY = ↔

ИП = П→x

П = x→П

Обычно фанаты пишут программы в предельно сокращённом виде: используют некую смесь старых и новых обозначений (↑, ИП, П, но ↔), опускают клавиши F и K, где это не критично (не Fsin, а sin). Некоторые вместо Kx=0A пишут K=A, а вместо К{x} — {}.

Я даже видел МК-61, в котором клавиши П→x и x→П были заклеены лейкопластырем и подписаны ручкой: ИП и П.

Поскольку я пишу для самых начинающих, пишу в нотации МК-61 с небольшими сокращениями, помогающими ориентироваться в простыне кнопок: вместо x→П, и вместо В↑.

Начнём?

Самый первый вопрос про наши калькуляторы — а где кнопка «=»? Нет её, нет, всё устроено немного непривычно. Чтобы сложить 123+456, надо набрать…


123 В↑ 456 +

Клавиша В↑ (читается «ввод», в дальнейшем буду сокращать как ↑) служит только разделителем: если набрать 123 и 456 без неё, получим 123456. Так что если надо сложить 123+456−789+234=24, то нажатие ввода всего одно:


123 ↑ 456 + 789 − 234 +

Если хотим узнать окружность 13-метровой цирковой арены, также никаких разделителей не надо:


Fπ 13 ×, и получаем 40,84 м.

Сначала операнды (π и 13), потом операция (×). Такая конструкция называется «обратная польская запись». Обратная — потому что операция в конце, польская — в честь поляка Яна Лукасевича. Она позволяет проводить без скобок довольно сложные вычисления. Например, 2+12 будет на калькуляторе так…


2 ↑ 12 + (на индикаторе 14).

А если вместо 12 взять 3·4 (3 ↑ 4 ×), то получим вот такую запись для 2+3·4:


2 ↑ 3 ↑ 4 × +

Теперь понятно, почему программисты со стажем любят обратную польскую запись? Она лаконична и позволяет вести вычисления «по наитию»: хочешь добавить 20 — набирай «20+», хочешь добавить 30% — набирай «1.3×», хочешь вычислить какой-то коэффициент — бери и вычисляй, старый результат будет ждать тебя в рабочих регистрах… Обычные калькуляторы могут подсунуть свинью, если забудешь о каких-то тонкостях: например, «Обычный» из Windows 7 выполнит «2+3×4=» как (2+3)·4=20, а «Инженерный» — 2+(3·4)=14.

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

2+3·(4+5)=29 он выполнит (2 ↑ 3 ↑ 4 ↑ 5 + × +), а 2+3·(4+(5·6))=104 — уже нет (2 ↑ 3 ↑ 4 ↑ 5 ↑ 6 × + × +).

То есть память на подобные вычисления имеет глубину 4, и эти регистры зовутся X, Y, Z и T.

МК-61 и с чем его едят Мк-61, Калькулятор, Старое железо, Ностальгия, Длиннопост

Ячейки памяти

Ничего особенного, только ячеек не одна, а 15. Для записи в память надо нажать две кнопки — сначала x→П, потом 5 (или какой-нибудь другой номер ячейки). Для извлечения — П→x, потом номер ячейки. Будем записывать эти команды как xП5 и Пx5. Если нажать xП, затем • (десятичную запятую), число запишется в ячейку A, и обозначать это будем как xПА (аналогично xПB, xПC, xПD, xПE).

Не забывайте, что клавиша ↑ действует как разделитель, и чтобы удвоить содержимое r7, её не надо: Пx7 2 ×.

Если у нас в регистры A, B и C загнаны коэффициенты квадратного уравнения (например, 1 xПA 1 /−/ xПB 6 /−/ xПC, то есть x²−x−6=0), можно его решить вот таким образом (на случай, когда D<0, чхаем).

ПxB Fx² ПxА ПxС × 4 × − F√ xПD  (в регистре D корень из  дискриминанта)

ПxB /−/ ПxD − ПxА 2 × xП0 ÷ (r0=2a, на экране первый корень (-b−d)/(2a)=−2)

ПxD ПxB − Пx0 ÷ (на экране второй корень (d−b)/r0=3)

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

Попробуем это запрограммировать

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

• С/П — стоп/пуск. В программе — остановка, непосредственно — запуск программы.

• В/О — возврат/обнуление. В программе — выход из подпрограммы (аналог RETURN Бейсика), непосредственно — переход на адрес 00 (аналог БП 00, то есть GOTO 00).

• и ПП, но она нам в этой статье не нужна.

Переходим в режим программирования (В/О Fпрг), видим на индикаторе трёхместную ленту (пока пустую) и адрес 00. Когда мы вводим команды, адрес становится 01, 02, 03…, а лента заполняется кодами клавиш. И заодно замечаем, что шестнадцатеричные символы A, B, C, D, E выглядят как −, L, C, Г, E. Вот наша программа.

Адрес … Клавиши … Код

00 … ПxB … 6L

01 … Fx² … 12

02 … ПxA … 6−

03 … ПxC … 6C

04 … × … 12

05 … 4 … 04

06 … × … 12

07 … − … 11

08 … F√ … 21

09 … xПD … 4Г

10 … ПxB … 6L

11 … − … 11

12 … ПxA … 6−

13 … 2 … 02

14 … × … 12

15 … xП0 … 40

16 … ÷ … 13

17 … ПxB … 6L

18 … /−/ … 0L

19 … ПxD … 6Г

20 … − … 11

21 … Пx0 … 60

22 … ÷ … 13

23 … С/П … 50

24 … БП … 51

25 … 00 … 00

Ошиблись и отпечатало не тот код? Возвращаем ленту назад (ШГ←), и вводим новую команду.

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

Возвращаемся в режим автоматической работы, возвращаем исполнение на нулевую команду (Fавт B/O).


Делаем тест (x²+1,5x−1=0): 1 xПA 1.5 xПB 1 /−/ xПC С/П — через 7 секунд на индикаторе  −2 (меньший корень). Нажимаем и видим 5·10⁻¹=0,5 — больший корень.


Чем программа отличается от того, что мы набирали руками?


1. Программа возвращает не одно значение, а два. Есть несколько способов это сделать:

• держать цифры в регистрах X и Y;

• держать их в ячейках памяти;

• первым пуском вывести один корень, а вторым — второй.

Мы сделали первое, и сначала надо заполнить регистр Y (больший корень), потом X (меньший). Потому поменяли местами вычисление большего и меньшего корня.


2. После шага 9 и без того x=d, и этим мы сэкономили одну команду.


3. Программе надо остановиться, а после очередного запуска — вернуться в начало. Потому 90% программ заканчиваются кодом С/П БП 00.


Вот и всё, что я хотел сказать про МК-61. У этой программы есть один недостаток по части сервиса — если дискриминант окажется отрицательным, она вылетит с ЕГГОГ где-то в середине, и для восстановления работы придётся нажимать В/О. Можно так и оставить. А можно и решить — с ветвлением занимает шесть команд. Но это уже вне нашей обзорной статьи — так что счастливо!

Показать полностью 6
7

Продолжение поста «Занимательная задача: Уникуб» 

Решение.

1. Существует очень красивый способ сделать такой куб — так, собственно, и поступили в головоломке «Уникуб». Красим куб в красный цвет. Один из срезов по оси X делаем жёлтым, второй синим. Аналогично Y и Z.

Продолжение поста «Занимательная задача: Уникуб» Головоломка, Комбинаторика, Математика, Куб, Ответ на пост, Длиннопост

Чтобы перекрасить две противоположные грани уникуба в жёлтый, делим его по жёлтому срезу, и переставляем два кирпича 3×3×1 и 3×1×2 местами. Проводим то же действие по осям Y и Z, и получаем жёлтый куб.

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

2. n³ кубиков будут иметь 6n³ граней, построенный из них куб n×n×n — 6n². Нет «лишних» граней, каждая будет задействована в какой-то раскраске — потому все внутренние грани будут постороннего цвета. Соответственно, каждый кубик будет иметь не более трёх граней одного цвета.

В частном случае 3×3×3 будем обозначать как «312» кубик с тремя красными гранями, одной жёлтой и двумя синими. В красном кубе центральным будет кубик 033, в жёлтом — 303, в синем — 330. Таких кубиков по одной штуке. Подумаем, как можно красить угловые, рёберные и граневые кубики красного куба.

Центральный:

033 — 1 шт.

Угловые:

303 — 1 шт.

330 — 1 шт.

321 — x шт.

312 — y шт.

Граневые:

123 — z шт.

132 — t шт.

Рёберные:

213 — u шт.

231 — v шт.

222 — w шт.

Подбив баланс (угловых кубиков восемь, рёберных двенадцать, граневых шесть), получаем систему уравнений.

2 + x + y = 8  (8 красных угловых)

2 + t + v = 8  (8 жёлтых угловых)

2 + z + u = 8  (8 синих угловых)

z + t = 6  (6 красных граневых)

y + u = 6  (6 жёлтых граневых)

x + v = 6  (6 синих граневых)

u + v + w = 12  (6 красных рёберных)

Жёлтые и синие рёберные считать бессмысленно: и без того понятно, что переменная x свободная и варьируется от 0 до 6, u = t = x, y = z = v = 6−x, w=6.

Всё, семь способов? Нет: оказывается, кубик 222 хиральный (то есть невозможно совместить поворотом со своим зеркальным отражением).

Продолжение поста «Занимательная задача: Уникуб» Головоломка, Комбинаторика, Математика, Куб, Ответ на пост, Длиннопост

Их шесть штук, и среди них может быть от 0 до 6 «левых», остальные правые. Семь вариантов. Думаю, не нужно показывать, что у остальных кубиков, у которых хотя бы три грани одного цвета, хиральности нет.

Итого 7·7 = 49 способов.

Заключение

Слово «хиральный» происходит от греческого «хейр» — «рука». Хиральность близка к понятию «асимметричный относительно плоскости», но существует сложная молекула, которая асимметрична, но не хиральна. Её модель можно сделать из проволоки.

Продолжение поста «Занимательная задача: Уникуб» Головоломка, Комбинаторика, Математика, Куб, Ответ на пост, Длиннопост

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

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

Ножницы делают под правую руку, и если их возьмёт левша (ну или неполный левша, как я), лезвие будет закрывать линию реза. Можно также говорить про левый и правый винт, левый и правый руль автомобиля.

В спорте — бейсбольные стадионы ориентируют по сторонам света так, чтобы солнце не мешало праворуким отбивающим. Боксёров-левшей в высших лигах много, около 25% — из-за более симметричного развития (часто левшей частично переучивают работать правой рукой) и неудобства для правшей. Наиболее известная из фигуристов-левшей — Каролина Костнер.

В компьютерной графике для простоты любят отзеркаливать спрайты, но это иногда приводит к казусу. В какой руке бедуин держит саблю?

Продолжение поста «Занимательная задача: Уникуб» Головоломка, Комбинаторика, Математика, Куб, Ответ на пост, Длиннопост

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

Продолжение поста «Занимательная задача: Уникуб» Головоломка, Комбинаторика, Математика, Куб, Ответ на пост, Длиннопост
Показать полностью 4
2

Занимательная задача: Уникуб

Занимательная задача: Уникуб Головоломка, Комбинаторика, Математика, Куб

1. Есть 27 кубиков. Попробуйте выкрасить их грани в три цвета, чтобы из кубиков можно было собрать полностью красный, полностью жёлтый и полностью синий куб 3×3×3. Есть очень красивый способ это сделать.

2. Такая раскраска не единственна. Какие есть способы варьировать её? Сколько существует раскрасок?

3. Можно ли раскрасить 1 млн кубиков в 100 цветов так, чтобы из них можно было собрать куб 100×100×100 любого цвета?

Задача всё-таки довольно известная, кто-то, как я, видел и уникуб живьём, потому «Моё» не пишу.

15

Ответ на пост «Точность - вежливость королей!» 

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

Глюки целых чисел

Минимальная единица компьютерной информации — бит. Это одна цифра двоичной системы счисления: 0 или 1.

Процессор одним махом работает не с одним битом, а с 8-ю. Или 16-ю. Или 32-мя. Или 64-мя — так называемая разрядность процессора, или длина машинного слова. Если вы такие олдфаги, что вспоминаете 8- и 16-битные приставки — всё верно, это разрядность их процессоров.

Ответ на пост «Точность - вежливость королей!» Перфекционизм, Точность, Интернет-Магазин, Юмор, Скриншот, Ответ на пост, Длиннопост

8 битов — это байт. Позволяет записать числа от 0 до 2⁸−1, то есть от 0 до 255. Удобная цифра: позволяет записать 26·2=52 буквы английского алфавита, 33·2=66 букв русского, и на цифры со спецсимволами хватит.

При этом компьютер работает так: 254+1=255, а 255+1=0. Такой механизм сложения позволяет теми же операциями «сложить» и «вычесть» работать и с отрицательными числами в таком виде: 255=−1, 254=−2, и т.д. до 128=−128 (а также с числами во много-много машинных слов). Какое число хранится в памяти — со знаком или нет — компьютер никак не запоминает, это работа программиста и компилятора (программы, которая переводит исходный текст на языке программирования в машинный код).

Пример. В первой версии компьютерной игры Civilization у всех правителей был такой параметр, как воинственность. У всяких там Сталиных с Монтезумами она была 9 или 10, а у махатмы Ганди 1. При открытии демократии воинственность (которая записывалась однобайтовым числом без знака) падает на 2. В такой вот арифметике 1−2=255. Таким образом, в конце игры благовидный старичок начинал громить всех ядерными бомбами. «Сумасшедший Ганди» так полюбился публике, что в том или ином виде существовал во всех последующих «цивилизациях» — например, слетал с катушек, если его втянут в войну.

Ответ на пост «Точность - вежливость королей!» Перфекционизм, Точность, Интернет-Магазин, Юмор, Скриншот, Ответ на пост, Длиннопост

Пример 2. В первых версиях игры UFO: Enemy Unknown приходилось выгонять бывалых солдат, потому что… сила превышала 255, превращалась в 0, и боец становился немощным.

Ответ на пост «Точность - вежливость королей!» Перфекционизм, Точность, Интернет-Магазин, Юмор, Скриншот, Ответ на пост, Длиннопост

Запишем эти цифры и для других форматов компьютерных целых. И не говорите, что не встречали их в каких-то компьютерных глюках!

Ответ на пост «Точность - вежливость королей!» Перфекционизм, Точность, Интернет-Магазин, Юмор, Скриншот, Ответ на пост, Длиннопост

Эти цифры могли получиться тремя методами.

• В результате арифметического переполнения без проверки границ. Я уже говорил, что для одного байта 0−1=255. А если байтов четыре (что в наши дни встречается чаще всего) — получится 0−1=4,2 млрд.

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

• Иногда по договорённости крайние числа означают «дыру» в данных — то есть «нет числа», «не найдено» и подобное. Разумеется, программист должен постоянно проверять такие «числа с дырами» — а если не проверит, компьютер выведет те же 4,2 миллиарда.

Глюки дат

Если даты нет, вы часто видите дату 1 января 1970 года или 30/31 декабря 1899 года. Та и другая — ноль в двух разных системах отсчёта.

Время операционной системы Unix отсчитывается в секундах, при этом нулём считается 1 января 1970 года. Добавляем к ним те самые 2,1 млрд секунд — и получим 18 января 2038 года, когда на 32-битных машинах время Unix уйдёт в минус.

В электронной таблице Lotus 1-2-3 даты считаются количеством дней, прошедших с 31 декабря 1899 года, с ошибкой, что 1900 год високосный (на самом деле нет!) Этот формат перебрался в электронную таблицу Excel и систему программирования Delphi, причём глюк 1900 года они разрешили по-разному: Excel заявил, что 1900 год у него так и будет високосным, а Delphi начал отсчёт с 30 декабря 1899 года.

Также распространён отсчёт с 31 декабря 1899 года без всяких глюков (то есть цифра на единичку меньше, чем в формате Lotus 1-2-3). Этот день — воскресенье, что упрощает работу с днями недели.

Ответ на пост «Точность - вежливость королей!» Перфекционизм, Точность, Интернет-Магазин, Юмор, Скриншот, Ответ на пост, Длиннопост

Откуда взялась проблема 2000, я толком и не знаю, и видел её лишь однажды: в том же Lotus 1-2-3 вместо 2000 года писался 19100, причём не везде, а выборочно. Смею предположить, что в каких-то очень старых машинах две цифры года записывались двоично-десятичным кодом и потому при переходе через столетие сбрасывались в 00. (Двоично-десятичный формат действительно широко используется в устройствах без микропроцессоров, чтобы упростить вывод на индикацию.)

Глюки дробных чисел

Форматы компьютерных дробных писались для удобства вычислителей (это люди, занимающиеся организацией вычислений на компьютере) и совершенно непригодны для хранения денежных сумм до копейки. (Уважающие себя бухгалтерские программы записывают денежные суммы в специальных форматах без потерь, простейший — 12 р. 34 коп. = 1234 коп.)

Из школы мы знаем, что любое число, кроме нуля, можно записать в стандартном виде: 162=1,62·10². Компьютерные дробные — это такой же стандартный вид, только в двоичной системе счисления: 5=1,01₂·2². (1,01 в двоичной — это наши 1,25.)

Кто помнит из школы, какие обыкновенные дроби представимы в виде конечной десятичной? Ответ: знаменатель должен иметь множителями только 2 и 5. А в виде двоичной дроби — знаменатель должен быть степенью двойки. Таким образом, самые простые числа вроде 0,1 представимы в виде компьютерных дробных только приблизительно.

Отсюда 0,1+0,2≠0,3. И выглядит это примерно так: 0,1≈26/256=1,1010₂·2⁻⁴, 0,2≈26/128=1,1010₂·2⁻³ — а 0,1+0,2=1,00111₂·2⁻² — округлив, получим 1,0100₂·2⁻²=20/64, в то время как 0,3≈19/64. Компьютеры, правда, поточнее будут и для 0,1 знаменатель 65 млн или даже больше — но принцип поняли.

Хорошие функции преобразования дробного в строку это учитывают и не пишут лишних цифр, но иногда проскакивает.

Ответ на пост «Точность - вежливость королей!» Перфекционизм, Точность, Интернет-Магазин, Юмор, Скриншот, Ответ на пост, Длиннопост

А ещё среди компьютерных дробных есть два специальных числа: Inf («машинная бесконечность») и NaN («не число»). Их получить проще простого: Inf=1/0, NaN=0/0 (если делить их как дробные числа; на целый ноль делить нельзя). Они также широко используются в качестве особых значений («нет данных», «не найдено», «не установлено»).

Показать полностью 5
999

Дореволюционная орфография для чайников

Мы ещё можем читать текст в орфографии до 1917 года, но написать уже совсем не способны. Выходят перлы наподобие «Пётрѣ Великий» (читается «Пётре», правильно Пeтръ Великій). Вот вам маленькое руководство, как писать в орфографии конца XIX века, самой простой для нас.

Дореволюционная орфография для чайников Дореволюционный язык, Русский язык, Длиннопост

Из т/ф «Зелёный фургон» (1983). Забегу наперёд: тренировка (заимствованное), сезонѣ (заимствованное + предложный падеж).

Исчезнувшія буквы русскаго языка

После реформы 1918 года из русского языка исчезли четыре буквы:

Ѣѣ (ять) — читается «е»

Ѵѵ (ижица) — читается «и»

Іі (і десятеричное) — читается тоже «и»

Ѳѳ (фита) — читается «ф»

Немного исторіи

Все мы знаем, что японский язык слоговой, и даже «футбол» они произносят как «футтобору». Но века этак до X-го слоговым был древнеславянский! Например, было слово «съказъка» (ъ — это очень короткий твёрдый гласный звук, существовал такой же мягкий). Иначе, как распевом, такое и не произнесёшь. Но жизнь ускоряется, и редуцированные исчезли по такому правилу: последний пропал, идущий перед ним превращается ъ→о, ь→е, следующий опять пропадает… Любая «нормальная» гласная сбрасывает цикл. Вот этим объясняются многие «выпадающие» гласные: «съказъка — съказъкъ» превратилось в «сказка — сказок». А также Ъ в конце.

Ять Ѣ тоже был отдельным звуком, произносился как нечто среднее между и и е. В украинском он преобразовался в і, в русском — в е. Буквы Ѳ и Ѵ греческого происхождения (тэта и ипсилон). Около 1700 Пётр I выкинул кси Ѯ, пси Ѱ и омегу Ѡ. Вскоре после Петра выкинули Ѕ (зело) — она когда-то читалась «дз», но превратилась в «з».

Букву Ё придумали в XVIII веке, чтобы передать народное произношение іо вместо е, нелюбимое пуристами и попами (ход вокруг церкви крéстный, а не крёстный). Вплоть до СССР буква Ё практически не писалась, сейчас с компьютерным набором всё больше сторонников последовательного употребления Ё.

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

Для украинского и белорусского в XIX веке придумали отдельную письменность с нуля, без архаизмов вроде Ѣ и Ъ — а окончательно её приняли всё те же большевики.

Какъ писать

На любом компьютере с Windows можно писать в дореволюционной орфографии, воспользовавшись программой «Таблица символов» (charmap.exe). Также своя таблица символов есть во всех текстовых процессорах (Word, LibreOffice).

Дореволюционная орфография для чайников Дореволюционный язык, Русский язык, Длиннопост

Удобно писать в дореволюционной орфографии типографской раскладкой Бирмана. Ставишь её на место русской и получаешь кучу символов по AltGr, в том числе дореволюционные буквы.

Дореволюционная орфография для чайников Дореволюционный язык, Русский язык, Длиннопост

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

Буква Ъ (еръ)

С ней проще всего. Она ставится на конце слова после согласных (кроме Й), а также в сложных словах, которые пишутся через дефис (контръ-адмиралъ).

Даже после ч и щ, которые у нас смягчаются, всё равно нужен твёрдый знак: клещъ.

Буква Ё

Не писать, даже если прочтение через ё к тому времени устоялось! Вместо неё е и (реже) ѣ.

Буква І (і десятеричное)

• Перед гласными и Й (исторія, синій).

• На месте нашего Й+гласная (маіоръ, іодъ).

• В слове міръ (земля), в отличие от миръ (не война).

Буква не употребляется в сложных словах на стыке корней (пятиаршинный), в приставках наи-, ни- (наиужаснѣйший, ниоткуда).

Буква Ѳ (фита)

Пишется в словах греческого происхождения там, где у греков Θ, у нас Ф, а у англичан Th: Матѳей (Matthew), Аѳины (Athens), логариѳмъ (logarithm).

На месте буквы Т фита не употребляется, но чередование Ф/Т из-за разных путей заимствования — верный признак фиты: Пиѳонъ — питонъ, Ѳеодоръ — Теодоръ, орѳографія — ортогональный, каѳолическій — католическій.

Буква Ѵ (ижица)

Изначально употреблялась довольно широко, но к концу XIX века осталась в нескольких церковных словах греческого происхождения: мѵро, полѵелей, сѵмволъ, сѵнодъ, ѵпакои (одна из церковных песен, ударение на последний слог), ѵподіаконъ, ѵпостась. Что удивительно, само слово ижица пишется через и.

Буква Ѣ (ять)

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

Ять в корнях. Для этого был целый список корней, смотрите на Википедии. А я напомню первый куплет мнемонического стишка:

Бѣлый, блѣдный, бѣдный бѣсъ
Убѣжалъ голодный въ лѣсъ.
Лѣшимъ по лѣсу онъ бѣгалъ,
Рѣдькой съ хрѣномъ пообѣдалъ
И за горькій тотъ обѣдъ
Далъ обѣтъ надѣлать бѣдъ.

Есть несколько крайне ненадёжных правил, позволяющих увидеть ять:

• Если в украинском на этом месте і, а в белорусском я — то ѣ (гнездо — гніздо — гняздо — значит, гнѣздо). Но кліщ — клещъ, піч — печь.

• Если чередование с ё — то е (весло — вёсла). Но гнѣздо, звѣзда, сѣдло, издѣвка, зѣвать и ещё куча корней пореже.

• Если беглое е (тот самый ь→е) — то е (пень — пня, левъ — льва).

• В заимствованных корнях — е. Исключения — давно позаимствованные и обрусевшие Днѣпръ, Днѣстръ, Нѣманъ, апрѣль, Авдѣй, Алексѣй, Елисѣй, Еремѣй, Матвѣй, Сергѣй, а также Вѣна, чтобы сымитировать произношение Wien.

Ять в приставках. Ять пишется в приставке внѣ- (внѣплановый) и нѣ- в значении «неопределённость». Например, некогда (нет времени), но нѣкогда (когда-то).

Ять в суффиксах и окончаниях. Правила довольно сложны.

• В дательном и предложном падежах: к школѣ, в школѣ, поѣхалъ на море, плавать в морѣ. А также в наречиях, образованных от этих падежей (вдалекѣ).

• В суффиксах сравнительной и  превосходной степени -ѣе, ѣйший (сильнѣе, сильнѣйший), а также в их редуцированных формах болѣ, менѣ. В других суффиксах этих форм ятя нет: больше, меньше, глубже.

• В словах мнѣ, тебѣ, себѣ, кѣмъ, чѣмъ, тѣмъ, всѣмъ, тѣ, всѣ. А вот если видишь все — читаешь «всё».

• В словах двѣ, обѣ и производных от них (двѣсти, обѣими).

В словах гдѣ, внѣ, здѣсь, нынѣ, послѣ, кромѣ, развѣ, вездѣ, возлѣ, подлѣ, доколѣ, отколѣ, доселѣ, отселѣ, индѣ, зѣло (очень) и производных от них (нынѣшний).

• В окончании -ѣть (кроме умереть, тереть, переть), а также в производных словах: имѣть, имѣешь, имѣніе. Если в родственных словах нет -ѣть, пишем -ение: потемнѣть — потемнѣніе, затемнить — затемненіе. Этимологические исключения: свѣдѣнія, мнѣніе, пренія.

• В суффиксальных (или исторически суффиксальных) словах индѣецъ, змѣй, копѣйка и производных (индѣйка, змѣиться).

Также писали онѣ, однѣ для женского рода: «Только версты полосаты / Попадаются однѣ». А также однѣхъ, однѣми… Для существительных, которые бывают только во множественном числе, правило такое: если -ов/-ев, то мужской род и, соответственно, они/одни. Например, одни штаны (штанов), но однѣ брюки (брюк).

Прочія правила

Если в именительном падеже -ый/-ій, пишем -аго/-яго: красивый — красиваго, синій — синяго, самый — самаго. В других словах остаётся -ого: земляной — земляного, самъ — самогó.

Приставки без-, через- не оглушаются; из-, воз-, раз-, роз-, низ- не оглушаются только перед : разсказъ, черезполосица, безполезный, но расписать. Из-за этого даже поныне кое-кто называет реформу 1918 года «бесовской».

В женском и среднем роде -ые/-іе превращаются в -ыя/-ія: опасные пути, но безопасныя спички. Правила определения рода слов только множественного числа те же: острыя ножницы (ножниц).

В творительном падеже 3-го склонения встречалось вперемешку как тростью, так и тростію.

Слова среднего рода на -ье в предложном падеже могли иметь окончание -ьи: в платьи.

Она — в родительном падеже и притяжательный форме ея: Онъ взялъ ея (чью?) книгу и отдалъ ее (в.п.), навсегда ея (р.п.) лишившись.

Ну и наконецъ…

Слово быть к концу XIX века потеряло сложное спряжение, но если хотите поизвращаться — я есмь, ты есь, онъ/она есть, мы есмы, вы есте, они/онѣ суть. Потому фраза «Снарк суть Буджум» в корне неверна, Снарк есть.

Вот несколько ссылок.

• Знаменитый справочник Грота

Дореволюционный орфографический словарь

Правила дореволюционной орфографии

Славеница и раскладка Бирмана, которые я уже упоминал.

Ещё одна статья про дореволюционную орфографию.

• Игра: узнайте мемы в старой орфографии.

(Да, я хотел написать и заголовок в дореволюціонной орѳографіи, но Пикабу упорно удалял оттуда фиту.)

Показать полностью 2
427

Ребус Генри Форда, усложнённая версия

Навеяно постом: https://pikabu.ru/story/zadacha_forda_5718887

Так уж совпало, что я эту задачу буквально вчера разбирал в своём ЖЖ (https://mercury13-kiev.livejournal.com/84777.html), причём в усложнённом виде. Этим я и хочу поделиться на Пикабу.

Дан арифметический ребус: DONALD + GERALD = ROBERT, и всё. Одинаковые буквы — одинаковые цифры, разные буквы — разные цифры. Подсказки D=5 нет. В таким виде задача всё равно имеет одно решение, причём очень красивое.

Ребус Генри Форда, усложнённая версия Логическая задача, Генри Форд, Инженер, Ребус, Длиннопост

На самом деле у нас очень много информации. O + E = O (возможно, с переносом), это главная зацепка. 2A = E, это даст вторую цифру. Цифра N + R = B вряд ли много даст, однако вначале наложит границы на очень частую букву R, а в конце — отбросит ложную ветвь. И только букву O можно ставить абсолютно какую хочешь по остаточному принципу.

Очевидно, E = 0 или 9. Пойдём по ложному пути, E=0.

Ребус Генри Форда, усложнённая версия Логическая задача, Генри Форд, Инженер, Ребус, Длиннопост

Посмотрим, чему может равняться R. Цифры D, G и L < R, так что отпадают 1…3. Отпадает и четвёрка: тогда на N остаётся пятёрка или больше, получается перенос в цифре тысяч 1+(N≥5)+(R=4). Из тех же тысяч R≤7. Так что остались два варианта.

Ложный вариант 1. R=6, отсюда D=4, G=2, Т=8, L=3, и на пару N/B не остаётся свободных цифр. Либо 1/8, либо 2/9, но 2 и 8 заняты.
Ложный вариант 2. R=7, N=1. Тогда B=9, L=8. С переносом в десятки D=6, тогда G=1. Конфликт.

Так что E=9, и точка.

Ребус Генри Форда, усложнённая версия Логическая задача, Генри Форд, Инженер, Ребус, Длиннопост

Если A≠9, значит это 4.

Ребус Генри Форда, усложнённая версия Логическая задача, Генри Форд, Инженер, Ребус, Длиннопост

R лежит в пределах 5…7 (первое — из старшего разряда с занятой четвёркой, второе — из тысяч с занятой девяткой).

Ложный вариант 3. R=6. Тогда L=8, N=1, B=7, на чётное T без переноса в десятки остаётся только двойка, D=1. Конфликт.

С явно нечётным R наш новый рисунок отличается всего одной цифрой, переносом в десятки. Но это важно.

Ребус Генри Форда, усложнённая версия Логическая задача, Генри Форд, Инженер, Ребус, Длиннопост

А теперь самое интересное: D<R, но 2D даёт перенос в десятки. Получаем D=5, R=7…

Ребус Генри Форда, усложнённая версия Логическая задача, Генри Форд, Инженер, Ребус, Длиннопост

Раскидываем последние три цифры, и получаем окончательный ответ.

Ребус Генри Форда, усложнённая версия Логическая задача, Генри Форд, Инженер, Ребус, Длиннопост

Итого 526485 + 197485 = 723970.

Показать полностью 5
Отличная работа, все прочитано!