Обновить
109
0
Михаил Борисов @MichaelBorisov

Пользователь

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

Недавно я делал 96-битную арифметику на стандартном Си. Только сложение и вычитание. Сложение получилось быстро, с вычитанием пришлось долго повозиться. Затраты времени на это оказались в десятки раз выше, чем на написание соответствующего кода на ассемблере.
Стандарт C допускает такие платформы, где указатель не может быть без потерь преобразован ни в один целочисленный тип (типы вида uintptr_t являются опциональными и могут отсутствовать). Думаю, автор привёл int для примера и экономии места.
Надо просто перекрыть альтернативные каналы распространения приложений, как это сделал Apple. Тогда и придёт успех!
Да уж. Функция «Создать ярлык» (Create Shortcut), которая у конкурирующей платформы Windows доступна ещё со времён Windows 95, в Линуксе по каким-то причинам отсутствует.

Возможно, дело в идеологии. Пользователям предлагается сначала изучить gedit, а лучше — VIM или nano. Потом изучить формат .desktop-файлов, и только тогда появится возможность создавать ярлыки для запуска программ. Любителям задач повышенной трудности предлагается изучить программирование и формат .desktop-файлов, после чего сделать GUI-приложение для создания помянутых ярлыков.
Так ведь и продались уже почти все.

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

Но реклама, как болезнь, отравляет всё то, куда ей удалось проникнуть, и приводит организм-носитель к деградации и гибели.
И что, так и не позвонили? После двух часов просмотра-то?
Боюсь, что «принципиального удаления» недостаточно. Хитрые продажники и рекламщики сделали так, что как минимум название продукта или бренда вы запомните. И когда будете ходить по магазину и выбирать, какой стиральный порошок купить — то купите тот, который рекламировался.

Реклама работает. В противном случае её бы не было.
Мне недавно пришлось объяснять школьнику, что такое рекурсия и как её использовать. После нескольких неудачных попыток объяснить с опорой на тот язык программирования, с которым мы работали (C#); после приведения нескольких простых примеров, что тоже не помогло, я от отчаяния ввёл иллюстративный язык программирования.

Этот язык был близок к BASIC, и в нём были команды, аналогичные GOTO, GOSUB, RETURN и IF-THEN, а также понятие стека. Тогда, наконец, зашло.
«Соблюдение законов против отмывания денег» — этот пункт несовместим с принципом децентрализации, заложенным в саму идею криптовалют. Для «соблюдения законов» в системе должны быть привилегированные пользователи, которые могут:

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

Но для этого больше подходят централизованные системы вроде банков, Paypal, Webmoney, Яндекс-кошельков и т.д. Наверняка в Mastercard это понимают. Просто они хотят перехватить внимание пользователей и под видом криптовалюты продать им «обычные» централизованные электронные деньги, которые управляются из единого центра, и которые могут в любой момент быть конфискованы.
Ну вот и надо применять принцип электродвигателя к человеческому телу. Например: начинаем совершать круговые движения руками. Раз руки совершают вращательное движение — значит, с ними связан момент импульса, а по закону сохранения момента импульса, остальная часть тела будет вращаться в противоположную сторону. Приняв нужное положение, останавливаем вращение.
В Германии за сокрытие подобной информации вам в почтовый ящик может прийти письмо от какой-нибудь частной правозащитной организации со счётом примерно на 400 евро и требованием подписать «обязательство о недопущении повторных правонарушений» (Unterlassungserklärung), за нарушение которого полагается штраф (в пользу указанной правозащитной организации) на 5001 евро. Причём оба требования, в случае неудовлетворения, можно принудительно исполнить через суд (правда, при этом штраф за повторное нарушение будет в пользу государства). За третье нарушение ответственность возрастает ещё в 5 раз. «Обязательство» действует всю оставшуюся жизнь.
Вот эта просадка напряжения на ионисторах портит всю малину. Во-первых, первоначально напряжение конденсаторов выше номинального напряжения стартера. Во-вторых, ближе к концу процесса оно падает ниже номинального. В-третьих, после пуска мотора (удачного или неудачного) на ионисторах остаётся остаточное напряжение и связанная с ним энергия, которые нельзя использовать.

Решение проблемы могло бы состоять в преобразователе, который поначалу понижает выходное напряжение конденсаторов, а потом (когда оно станет ниже номинального напряжения стартера) — повышает. Более полное использование энергии; более благоприятный режим работы стартера.

Хотя, конечно, с токами в сотни ампер, такой преобразователь будет дорогой и сложной игрушкой.
Представьте себе, что вы разработчик. К вам приходит руководитель и говорит: «срочно нужно вставить в программу новую функцию А.Б.В. Времени в обрез. Проект горит, а также горят другие проекты, с которых мы вас снимаем ради этой функции».

Вы приняли задание, реализовали нужную функцию, но из-за спешки — коряво. Работает, но не очень надежно; чувствуется, что код хорошо бы переписать заново, начисто. Но руководитель доволен, его работа программы устраивает. Он принимает работу и, не оставляя вам времени на приведение кода в порядок, поручает вам следующее задание — такое же срочное.

А потом кто-то из клиентов попадает на ошибку в вашей программе. Подаёт на фирму в суд. Фирма подаёт регрессный иск к вам — ведь вы разработчик. И вы несёте ответственность. Хорошие перспективы?
А Стругацкие подали заявку на патент в USPTO?

Не подали. А Microsoft подал. Были ранее зарегистрированы патенты на аналогичное изобретение? Нет, не были. Значит, это инновация. В патентном праве кто первый встал — того и тапки.
Всегда узаконивало. Просто раньше это было не так заметно.
Мобилка уже постоянно ведёт аудиозапись. Значит, всё, что вы сказали, сохраняется в базе. Всё, что написали, чем в интернете интересовались, с кем, о чём и как общались — тоже.
Бывают такие команды процессора, которые состоят из нескольких шагов, и между шагами тоже может вклиниться прерывание. Например, это команды блочной пересылки и поиска.

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

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

Когда программировал на ассемблере Z80, я часто с помощью макросов создавал для себя дополнительные, часто встречающийся, «команды процессора». Никаких проблем не было.
в начале вычисляем y([0, 5]) = ([0, 5])^2 + 1 = [0, 25] + 1 = [1, 26], затем вычислим y([5, 10]) = [5, 10]^2 + 1 = [25, 100] + 1 = [26, 101]. Как мы видим в первой половине значения варьируются от 1 до 26, а во второй от 26 до 101.

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

Вот пример функции, на которой ваш метод не работает: y=4*x^3 — 3*x, нужно найти максимум на участке [-0.9, 0.9].

Следуя вашему методу, делим отрезок пополам, получаем два сегмента: [-0.9, 0] и [0, 0.9]. Вычисляем значения функции на концах. f(-0.9)=-0.21, f(0)=0, f(0.9)=0.21, отсюда делаем ошибочный вывод о том, что функция меняется в пределах [-0.21, 0] на первом отрезке и в пределах [0, 0.21] — на втором. Ваш метод будет искать максимум на правом сегменте [0, 0.9].

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

Если вычислять заранее: где взять столько памяти, чтобы её хранить? Да и зачем? Вычислять быстрее, чем хранить. Период повторения 32-битного LFSR = 2^32-1 — то есть, за вычетом единицы, а это 4 гигабита, т.е. 500 мегабайт.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность