?

Log in

No account? Create an account

Верхняя запись Прикре.Пил

Блог непосредственно в ЖЖ не веду, профиль, в основном, для комментирования.
Моя домашняя страничка вот: nickolay.info
Мой блог тут: blog.kislenko.net. С 17.10.12 он транслируется сюда. На комментарии отвечу скорее в своём блоге, чем здесь.

21:56 21.04.2018

А вот что запомнилось за последние дни?

А ничего. Был, как обычно, занят попытками выжить, перемежаемыми ударами с тех именно сторон, откуда ударов и не ждёшь, т.е., типа, с "близких". Эх, и далёких тогда не надо :)

Вот счас одну новость прочитал, и той был лучше не видел.

Как был для меня Михалкович эталоном мрази, так и остался. Чистым, ничем не замутнённым.

Когда женщина, которая делала это, когда имела товарный вид, а потом, потеряв его, сказала, чтобы о ней вспомнили, это неправильно», — отметил режиссер.

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

читать далее в блоге ПерСа


15:25 18.04.2018

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

У меня тоже такой был. Смешно, под "семёркой" кинул файл случайно обнаруженный файл .scr в папку C:\Windows\System32\, вызвал Пуск - Панель управления - Персонализация - Заставка, а оно работает как ни в чём не бывало, хотя как бы годы прошли.

Жаль, исходников не сохранилось, но раз работает, не буду и .scr тереть. Размер 40 Кб. Правда, "вывод текста из файла" так и не реализован, но в остальном даже настройки есть:

читать далее в блоге ПерСа


15:20 15.04.2018

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

По сути, если ходить не на соседнюю клетку, а ходом коня или ещё каким, надо просто изменить принцип выбора соседних элементов при поиске свободных клеток.

Но я сегодня эту задачу уже не доделаю, некогда, а вот не-помню-откуда-взявшийся проект на C++ (консоль Visual Studio 2015), реализующий алгоритм Ли для поиска пути по лабиринту, прикреплю.

Его я и попытался быстро применить к решению задачи.

Вот такой была исходная картинка:

читать далее в блоге ПерСа


23:01 14.04.2018

Да, много воды утекло с таких вот "онлайн-гроссмейстеров", сила всё движков растёт, а Стокфиш всё ещё соперничает с Комодо и Гудини.

Очередной чемпионат мира ТСЕС достиг финальной стадии, новая сборка Stockfish 260318 (рейтинг - 3546) снова делает Houdini 6.03 (3489).

Вяленому хватило восьмидесяти пяти из ста партий финального матча, чтобы обыграть Houdini со счетом 50,5:34,5 (+18 - 2 = 65). Но матч будет доигрываться, сейчас, например, идёт 94-я партия :)

Женский чемпионат Европы без видео тоже как-то не смотрится, а с видео нигде не нашёл (раз, два и т.д.), не посмотреть, что ли, теперь на дам за раздумьем? :)

читать далее в блоге ПерСа


14:07 14.04.2018

Очередная ставшая традиционной подборка текущих учебных задач на C++, коды проверялись в консоли Visual Studio 2015, возможно, что-то и в QT 5.X.

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

1. Составить массив, состоящий из индексов элементов исходного массива, отсортированного по возрастанию.

читать далее в блоге ПерСа


21:17 13.04.2018

Двумерную матрицу из объектов нужного типа легко сделать с помощью QVector или же другого списочного контейнера, например, QList.

Основная идея очень проста - организовать вектор, состоящий из векторов:

QVector < QVector <double> > Matrix;

То же самое можно сделать и с помощью std::vector.

В том и другом случае можно не менять размерность после создания контейнера, а указать её сразу же аргументами конструктора. Доступ к элементу будет осуществляться обычным способом, в виде a[i][j].

Все 4 способа показаны ниже в маленькой программке (консольное приложение QT), везде использован тип данных double, но это необязательно, в качестве элементов наших матриц можно брать объекты любого простого или составного типа.

Часть кода, основанная на std::vector, сработает и в Visual Studio.

Ну и помните, что на самом деле, "обычные" двумерные массивы тоже являются массивами массивов :)

читать далее в блоге ПерСа


09:14 12.04.2018

Диофантовы уравнения можно решать перебором, как в этом моём сервисе, а что насчёт проверки количества решений без их вычисления?

Небольшая рекурсивная функция, показанная ниже, позволяет решить эту проблему.

Достаточно задать коэффиценты левой части уравнения в массиве coeff, правую часть - значением b и вызвать функцию. Правда, затраты времени будут расти как O(n*b) в зависимости от размерности массива коэффициентов n и значения правой части b, как сделать лучше - вопрос открытый, десятая проблема Гильберта неразрешима :) Все коэффициенты предполагаются положительными.

Код выполнялся в Visual Studio 2015.

читать далее в блоге ПерСа


08:36 12.04.2018

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

Запустив QT Creator, создадим проект на основе шаблона QWidget и сделаем форму во встроенном дизайнере, действуя, как в этой заметке, только на шаге 7 перетащим на форму компонент QListWidget, справа от него поместим QLabel и нажмём на шаге 8 комбинацию клавиш Ctrl+H (скомпоновать по горизонтали) вместо Ctrl+L.

В правую ячейку получившейся сетки под текстовой меткой последовательно поместим однострочное поле ввода QLineEdit, пять кнопок QPushButton и Vertical Spacer, которй "прижмёт" компоненты к верхнему краю ячейки, получится вот такая форма:

читать далее в блоге ПерСа


Белые кораблики

14:26 08.04.2018

оригами, кораблики из бумаги A4, лодочка, парусник, двухтрубный теплоход, внутри 400 Кб фото

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

А как, кстати, их сделать из обычного листа A4? Как оказалось, среди моих знакомых взрослых и детей это знают далеко не все.

Между тем, всё довольно просто, вот подробная инструкция с пошаговыми фотографиями процесса на стильном тёмном фоне, ну, стол у меня такой :)

Сначала сделаем классический корабль-лодочку из листа бумаги A4.

читать далее в блоге ПерСа


21:36 06.04.2018

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

решение о специальном номенклатурном деле на ребёнка
решение о специальном номенклатурном деле на ребёнка

На самом деле, ничего страшного здесь нет и имеем мы типичный бюрократический маразм:

О приобщении к материалам специального номенклатурного дела. Решение о приобщении материала проверки в специальное номенклатурное дело принимается в случае отсутствия в сообщении признаков уголовного или административного правонарушения.

О принятом решении по зарегистрированному сообщению о происшествии в обязательном порядке информируется заявитель. Заявителю разъясняется его право обжаловать принятое решение и порядок обжалования в соответствии с законодательством и иными нормативными правовыми актами Российской Федерации.

Предыстория может быть, например, такой:

читать далее в блоге ПерСа


13:20 05.04.2018

Для проверки того, может ли натуральное число быть представлено суммой последовательных натуральных чисел (например, 1+2+3+4=10, 5+6+7=18) никаких сумм рядов вычислять не нужно, для двоичных чисел достаточно проверки их битовых свойств. Конечно, следует помнить об INT_MAX, то есть, об ограниченности диапазона представления целых чисел в компьютере. Кроме того, самих чисел суммы мы при таком подходе не увидим.

Всё основано на том, что сумма любых двух последовательных чисел нечётна, при этом, одно из них чётно, а другое нет :) Ну и 2n = 2*2n-1, конечно.

Проверить с выводом самих чисел можно вот здесь в онлайн-сервисе, а ниже - листинг на консольном C++:

читать далее в блоге ПерСа


11:41 04.04.2018

Представим, что нам нужно выводить в браузере файл некоторого формата, обращаясь к нему по прямому URL, то есть, переход по ссылке

http://localhost/fb2/test.fb2

будет означать обработку и вывод в браузер файла test.fb2, находящегося в папке fb2 на локальном сервере. Так как сам браузер отображать формат FB2 не умеет, нам придётся передавать такие файлы на обработку какому-то скрипту, написанному на PHP или другом серверном языке.

Для простоты предположим, что все файлы нужного формата собраны в одной папке. В таком случае решением будут всего 2 строки в файле .htaccess, который мы поместим в эту же папку:

AddDefaultCharset utf-8
RewriteEngine On 
RewriteRule ^(.*).fb2$ index.php?f=$1 [L]

Вместо fb2 можно вписать другой тип файла, а вместо f - другое имя параметра URL-запроса.

Осталось реализовать файл index.php, который будет разбирать и выводить в браузер переданный ему FB2. Ниже приводится простой вариант разбора FB2 на PHP, основанный на том, что FB2 представляет собой обычный XML-файл.

Показанный код не является корректным разбором формата FB2 и просто демонстрирует подход к решению этой задачи. Тестовый файл .fb2 я взял вот отсюда и основное его содержимое скрипт всё же вывел :)

Предполагается, что сам скрипт и отображаемые файлы FB2 закодированы в Юникоде (UTF-8).

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

читать далее в блоге ПерСа


18:27 03.04.2018

Просто пара слов оттуда, отнюдь не только моих, ещё пригодится, а сейчас лень тему развивать :)

Просьба от нечего делать под кат не заглядывать... хотя там все слова приличные :)

Салов, завсегдатаи chesspro и т.п.

читать далее в блоге ПерСа