БлогNot. Блог ПерСа

c++ windows софт studio числа список памятка программирование время тест css html алгоритм безопасность социалки спам тоталитаризм цензура реклама рунет математика php javascript графика дата детское random цвет люди преступление политика общество стихи история музыка rip textprocessing словарь шахматы книги деньги новосибирск паспорт мем юмор быт алкоголь погода firefox браузеры все теги все комментарии свежие изменения


[1-15] [16-30] ... [2731-2745] [2746-2755]


Прикреплённое сообщение, правила и всё такое

Остеклить балкон, лоджию в Новосибирске? Проверено, Вам сюда

Encoding: UTF-8 (Unicode). Primary language: Russian. Для полноценной работы блога нужны включённые в браузере картинки + Javascript + Cookies. Ссылки, открывающие новое окно (вкладку), везде подсвечены.

Даже по законам Эрефии этот блог - не СМИ, все сообщения выражают личную точку зрения своих авторов и являются оценочными суждениями, при этом любые совпадения мест, имён, названий и действующих лиц далеко не случайны. В блоге нет файлов, способных нанести вред Вашему компьютеру или мобильному устройству. Если Вам не исполнилось 18+, срочно отвалите отсюда, прикиньтесь ветошью и не отсвечивайте покиньте этот ресурс. Учтите, что посещая его, Вы вторгаетесь на мою личную территорию :) Страница статьидалее...

19.01.2038, 15:15 [13966 просмотров]


Как собрать проект C++ с github из исходников и подключить его к Visual Studio

Благодаря менеджеру пакетов winget, уже входящему в актуальные сборки масдайки, теперь в Windows 10 можно инсталлировать приложения одной простой консольной командой (см. также доку от Микрософта).

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

В противном случае, конечно же, нестандартный include вроде этого, который вы нашли в коде-образце

#include <primesieve.hpp>

работать не будет ни за что.

Первым делом скачаем все исходники внешнего проекта "как есть" в архиве .zip, для этого у нас на гитхабе есть кнопка "Download ZIP": Страница статьидалее...

21.10.2021, 13:15 [23 просмотра]


C++: как быстро перевернуть цифры числа?

Из серии "наивных вопросов" - быстрее ли реверсировать (переставить в обратном порядке) цифры числа арифметическим способом или с помощью stringstream, как часто делают в интернете?

Думаю, результаты теста отвечают на этот вопрос чётко:

Arithmetic: 0.000000 sec.
String: 5.783628 sec.

Это в профиле Release, как более подходящем для тестирования быстродействия кода. Кстати, разница вышла куда больше, чем в Debug:

Arithmetic: 0.0873137 sec.
String: 4.69206 sec.

Конечно, можно избавить функции от создания объектов в стеке (внутри цикла), но это мало что изменит, разве что будет чревато проблемами в более медленном втором решении.

Также код, проверенный в консоли актуальной сборки Visual Studio 2019, показывает, как измерить время выполнения вычислительного процесса с помощью библиотеки chrono. Небольшой класс Timer запускает отсчёт времени при вызове конструктора, а при вызове метода stop возвращается значение типа double, показывающее прошедшее время в секундах. Страница статьидалее...

21.10.2021, 10:49 [14 просмотров]


CSS: как сделать не-редактируемый и редактируемый листинг с полосами прокрутки?

Мне думается, проще всего может оказаться такой стилевой класс (визуальное оформление выбрано произвольно на основе этого блога):

<style>
 .listing {
  margin: 2px 40px;
  font-family: "Courier New", monospace; 
  font-size: 120%; 
  line-height: 120%;
  color: #006600;
  background-color: #F0F0F0; 
  border: 1px solid #D1D7DC;
  padding: 2px;
  overflow: auto;
  height: 10em;
  width: 50em;
  white-space: pre;
 }
</style>

Для отображения листингов без редактирования естественней всего использовать элемент pre, а для оформления листингов в редактированием - textarea.

После этого останется указать в разметке:

<pre class="listing">
 Широкий и/или длинный листинг
</pre>

<textarea class="listing">
 Широкий и/или длинный листинг
</textarea>

На другие элементы pre и textarea, не относящиеся к классу listing, стиль не будет влиять.

Вот что получается: Страница статьидалее...

20.10.2021, 14:36 [19 просмотров]


Последовательности простых чисел, сумма которых также проста

Если мы с помощью решета Эратосфена проверим, существуют ли такие цепочки последовательных простых чисел, что их сумма также является простым числом, в пределах счёта до одного миллиарда мы обнаружим только одну такую цепочку - числа 2 и 3. Просто потому, что все простые числа больше пяти заканчиваются на 1, 3, 7 или 9, а любые суммы этих цифр дают чётное число.

Кстати, заодно пополним и наш список простых чисел до границы поиска в один миллиард.

Программы из заметки проверялись в консоли актуальной сборки Visual Studio 2019. Страница статьидалее...

20.10.2021, 11:15 [21 просмотр]


Снова "ребрендинг века", ВКмыло

Каким образом эта пакость обходит uBlock, ловящий остальные 86 или 220 левых скриптов на мылке.ру?

Теперь Mail.ru - часть экосистемы VK, мылка как часть контактега
Теперь Mail.ru - часть экосистемы VK, мылка как часть контактега

Совершённая чёрным налом ещё в 2014-м сделка постепенно окончательно поставила под контроль ещё сохранявшиеся "анонимные" профили "контактега", с которых отдельные давно живущие в сети личности ещё не боялись писать нечто неблагоприятно звучащее для властей.

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

В частности, я своего анонимного профиля с абсолютно неломаемым даже теоретически паролем лишился ещё в марте сего года именно так. Страница статьидалее...

16.10.2021, 22:25 [34 просмотра]


Генерация достаточно больших простых чисел

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

  • показывать N первых простых чисел;
  • выводить простые числа в заданных пределах генерации [A;B];
  • показывать количество простых чисел в заданном натуральном интервале значений [A;B];
  • искать простое число с порядковым номером N.

Ниже показан шаблонный класс и его тест, консольная программа проверялась в актуальной сборке Visual Studio 2019. Страница статьидалее...

16.10.2021, 17:52 [28 просмотров]


Натуральные числа как предки и потомки

Побалуемся ещё немного с факторизацией натуральных чисел из предыдущей заметки.

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

Например, число 46, имеющее третий уровень поколения, факторизуется в виде 2*23, а 2+23=25, следовательно, 25 (число второго уровня) является предком 46.

Прямым предком числа 25 будет число первого уровня 10, потому что 25=5*5, а 5+5=10.

В свою очередь, 10 имеет предком нулевого уровня простое число 7, поскольку 10 = 2*5, а 2+5=7. Потомком семёрки будет и число 12, ведь 12=2*2*3, а 2+2+3=7, следовательно, 7 - это предок 12.

В списке предков числа 46 мы должны увидеть 7, 10, 25.

У самих "порождающих" простых чисел будет уровень 0 и отсутствие предков, они сами "Великие Предки". Великими Предками всех чисел являются числа нулевого уровня от 1 до 5 включительно и далее все простые, но числа от 1 до 4 не имеют потомков, и лишь пятёрка является первым порождающим числом, причём, породит она только шестёрку (2*3=6, 2+3=5). Шестёрка - первое воспроизводящее число, у него 2 потомка, 8 и 9 (2*2*2=8 и 2+2+2=6, 3*3=9 и 3+3=6).

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

Так как количество шагов основного цикла здесь невелико, саму простоту числа можно определить и "по-школьному" (функция is_prime), а не решетом Эратосфена. Вот вам целая Библия чисел. Ниже прилагается исходник (консоль актуальной сборки Visual Studio 2019) и файл с генеалогией чисел от 1 до 100 включительно. Страница статьидалее...

16.10.2021, 12:55 [42 просмотра]


Разложение на простые множители для первых 10000000 чисел

Знаете ли вы, что 2*2*2*2*2*5*5*5*5*5 равно ровно 100000?
А это очевидно, если понимать, что у нас всего 10 цифр.
(не помню, откуда)
Перечитывал биографию Эйлера. Много думал :)
"Маркиз Кондорсе вспоминал, что вскоре после переезда в Берлин (из России - прим. моё) Эйлера пригласили на придворный бал. На вопрос королевы-матери, отчего он так немногословен, Эйлер ответил: «Я приехал из страны, где, кто разговаривает, того вешают»."
В 1741-м сказано-с :) (из вчерашнего)
Приписанная Пифагору тотальная нумерология в стиле "мир есть число" нуждается лишь в одном уточнении - а что это, собственно, за число?
Натуральное оно или вещественное, рациональное или, что вероятнее, иррациональное? А может, комплексное, как был уверен мой преподаватель по ТФКП?
Поскольку, оставаясь хотя бы частично в своём уме, ответ на этот вопрос дать невозможно, нужно заменять одно-единственное Число Мира Последовательностями, какая-то из которых наверняка указывает направление к недостижимой истине, правда, всё равно не приведёт к ней, потому что неверны сами условия поиска.
Это только падший мир, из которого ушло живое Слово, действительно есть число.
А когда имеется правильное Слово, да на вас из-за него ещё и не завели дело, то математика становится излишней...
(из сна)

Возможно, я просто не нашёл сейчас в своём блоге реализации основной теоремы арифметики, то есть, разложения натурального числа n>1 на простые множители.

Такое разложение (факторизация) единственно с точностью до порядка следования множителей. Можно сказать, что простые числа - это элементарные "строительные блоки", из которых конструируются все остальные числа.

Думаю, функция primeFactors из показанного ниже кода ещё может пригодиться. Программа написана на консольном C++ и проверена в текущей сборке Visual Studio 2019.

Решето Эратосфена взято отсюда. Так как простые числа факторизовать не нужно, они выводятся в файл "как есть". Каждые 100000 шагов в консоль печатается числовая отметка.

Далее показан листинг программы и прикреплён архив .zip с файлом factorization.txt, в каждой строке которого содержится либо единственное число (если оно простое), либо его разложение на простые множители в форме записи вида 2*5*23*2749=632270, так что результат легко пересчитать, например, в Excel или в строке поиска Google. Страница статьидалее...

14.10.2021, 05:36 [40 просмотров]


Числа Мюнхгаузена и анти-Мюнхгаузена

Числом Мюнхгаузена называется натуральное число n, для которого сумма цифр, каждая из которых возведена в степень самой себя, равна n, например, 3435 = 33 + 44 + 33 + 55.

В десятичной системе счисления чисел Мюнхгаузена совсем мало - в пределах до 500 000 000 их всего 4, если считать ноль в нулевой степени равным нулю.

Подумал, что сейчас придуманных чисел анти-Мюнхгаузена, где показатель степени в представлении числа берётся не i, а 9-i, например, 1074 = 19-1 + 09-0 + 79-7 + 49-4 = 18 + 09 + 72 + 45 едва ли будет больше, и впрямь, в тех же пределах счёта нашлось всего 4 числа: 0, 1, 8, 1074.

Потом только дошло, что можно доказать заведомо конечное количество таких чисел в любой позиционной системе счисления.

Ниже прикреплён скрипт на PHP, который проверял задачу на локальном хосте. Для исходных чисел Мюнхгаузена (см. комментарий в коде) скрипт, как и положено, нашёл значения 0, 1, 3435, 438579088.

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

13.10.2021, 02:44 [36 просмотров]


День игрального кубика :)

А всё-таки 13 октября или 4 декабря является правильной датой для сего "великого праздника" из заголовка? Я считал первую почему-то.

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

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

12.10.2021, 18:15 [48 просмотров]


Нечто вроде Chaos Game на Javascript

Изначально было задумано, изменяя для Chaos Game пропорцию разбиения интервалов, получать не только треугольник Серпинского, правда, в нормальном, а не "повёрнутом" виде, но иметь и другие известные фракталы, как предложено по ссылке и тут (демка, нескомпилированного исходника её нет).

В итоге, как обычно, стал делать многоцветность, ушёл к другим формулам и уж что вышло, то вышло. Скрипт с настройками прикреплён ниже, конечно, можно сделать из этого нечто большее :) Страница статьидалее...

10.10.2021, 14:18 [41 просмотр]


Непростые числа

Составное натуральное число n называется непростым (или не упрощаемым - unprimeable, не знаю, как правильно по-русски), если его нельзя превратить в простое, изменив одну любую цифру на любую другую.

Минимальное такое число в десятичной системе счисления - это груз 200. Unprimeable numbers образуют последовательность A118118 в oeis.org, только там их показано маловато.

Попробуем найти все такие числа в пределах до 10 миллионов (можно и больше), применив решетоподобный алгоритм. Далее приведён код на С++, проверенный в консоли актуальной сборки Visual Studio 2019 и прикреплён файл с числами, которых в наших границах поиска оказалось 2855168. Страница статьидалее...

10.10.2021, 00:27 [51 просмотр]


Тальков. Политковская. Две прерванных песни

Несчастна та страна, которая нуждается в героях
Б. Брехт

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

6 октября исполняется 30 лет со дня убийства барда Игоря Талькова, а 7-го - 15 лет со дня убийства журналиста Анны Политковской.

Оба этих преступления потрясли в своё время страну, но увы, так и не сделали её в итоге свободней и добрей к людям.

Как и для многих других интересных материалов блога, идея, текст и ссылки предложены уважаемым Алексеем. Страница статьидалее...

03.10.2021, 15:57 [40 просмотров]


Класс для чисел в сбалансированной троичной системе счисления

Сбалансированная троичная система счисления (Balanced ternary, статьи по-русски не нашёл) стала известна европейцам со времён книги Штифеля "Arithmetica Integra" (1544 г.).

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

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

03.10.2021, 15:10 [48 просмотров]


[1-15] [16-30] ... [2731-2745] [2746-2755]