Вот ещё одна задача из реальности, более близкая к этой теме.
Нужно составить таблицу из бит-реверсированных чисел заданной разрядности, исключив палиндромы. 000 → 000
001 → 100 010 → 010
011 → 110
…
Само реверсирование очевидно, менее очевидно — узнать заранее, сколько элементов в таблице понадобится, чтобы выделить под это дело память.
Ну хорошо. Не самолёт, ядерная бомба или космический корабль. Как много натурных экспериментов вы можете позволить, чтобы выявить оптимальную форму ядерной бомбы и её составляющих? Как проектировали технику до того, как появились прикладные программы?
Я знаком с алгоритмом Брезенхема и применял его на практике.
Никакой линейной или логарифмической спирали на экране компьютера нет и быть не может, в силу его конечности. Есть фигура, составленная из конечного числа квадратов, которая должна удовлетворять определённым условиям восприятия человеком.
Ну если на то пошло, то не «квадратов», а «пикселей». И как удовлетворять эти условия, не зная исходной мат.модели, по-прежнему непонятно.
Хотя должен с грустью сообщить, что в последнее время интересных задач из реальной жизни не встречалось.
Странно, а у меня куча задач, для которых гугл не находит готового решения. Например (не смог решить, знаний не хватает) найти аналитическое преобразование Фурье от функции erfc(log(x2n)). Или (смог решить) вывести формулу в полярных координатах для плавной трансформации окружности в прямоугольник (с острыми углами!):
Было бы интересно на конкретный код. Ведь я даже не уточнял, о какой именно спирали идёт речь — линейной, логарифмической или какой-то другой.
причём тут тригонометрия?
Я так понимаю при том, что «движение по окружности» (о котором речь шла изначально) предполагает итеративное изменение угла вектора, от которого через синус и косинус считаются координаты точки на окружности. Зная это, получить (линейную) спираль элементарно:
x = a*cos(a)
y = a*sin(a)
А как без этой формулы вы будете отрисовывать спираль? Как сможете перейти к реккурентному виду, чтобы не вычислять синус и косинус на каждом шаге?
Я не понял ваш ответ. Вы утверждали, что тригонометрию знать не надо, а надо знать алгоритм Брезенхема. И мой вопрос — так вы сможете без знания тригонометрии модифицировать алгоритм Брезенхема на отрисовку спирали?
Не переживайте, ничего гениального авторы не знают. Основная задача posit — выступать в роли «священной коровы» и обеспечить авторам чувство собственного величия. Независимые эксперименты показали (раз, два), что практическая ценность posit стремится к нулю. Если нужно просто уменьшить поток числовых данных — так алгоритмы сжатия данных существуют, как с потерями, так и без, и изобретать для этого новые форматы чисел нецелесообразно.
Если издатель Хокинга прав, то достаточно добавить всего 33 формулы, чтобы количество потенциальных читателей стало близким к нулю. Попробуем?
Мне показалось, что в вашей статье количество формул до 33 не дотягивает, или нет?
Однажды я сказал однокласснице, что она крута, как экспонента. Она задумалась на некоторое время, а потом заявила, что это слово ей не нравится по звучанию.
Интуиция её не подвела — Гамма-функция покруче будет)
А статья хорошая, как минимум неординарная, прочитал с интересом.
Мне кажется логичным было бы ввести в процессор две новые команды условного перехода — с большей и меньшей вероятностью перехода, которые можно было бы явно выбирать в зависимости от используемого алгоритма.
Нужно составить таблицу из бит-реверсированных чисел заданной разрядности, исключив палиндромы.
000 → 000001 → 100
010 → 010011 → 110
…
Само реверсирование очевидно, менее очевидно — узнать заранее, сколько элементов в таблице понадобится, чтобы выделить под это дело память.
При это важно знать площадь сечения, чтобы закон раскрыва соответствовал заданному.
Ну если на то пошло, то не «квадратов», а «пикселей». И как удовлетворять эти условия, не зная исходной мат.модели, по-прежнему непонятно.
И это задачи сугубо практические, не олимпиадные.
Я так понимаю при том, что «движение по окружности» (о котором речь шла изначально) предполагает итеративное изменение угла вектора, от которого через синус и косинус считаются координаты точки на окружности. Зная это, получить (линейную) спираль элементарно:
x = a*cos(a)
y = a*sin(a)
А как без этой формулы вы будете отрисовывать спираль? Как сможете перейти к реккурентному виду, чтобы не вычислять синус и косинус на каждом шаге?
Интуиция её не подвела — Гамма-функция покруче будет)
А статья хорошая, как минимум неординарная, прочитал с интересом.
Где-нибудь в Индии, где корова — священное животное — вполне возможно. Восприятие искусства имеет культурно-зависимый контекст.
Музыка — это искусство. Искусство — это отражение реальности. Всё, что есть в реальности, годится для искусства.