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

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

php графика javascript числа сервис программирование афоризмы личное россия политика общество эзотерика email mysql сервер шахматы картинка форматы игра random статистика c++ studio алгоритм форум психология mathcad образование деградация мошенничество книги математика дата excel принтер ретро java список рейтинг история сказка маразм словарь язык english firefox браузеры блог учебное тест все теги все комментарии


[1-15] [16-30] [31-45] ... [1831-1845] [1846-1852]


Mathcad: метод Гаусса-Зейделя и диагональное преобладание

Вопрос возник по этой заметке, где реализованы прямые и итерационные методы решения систем линейных алгебраических уравнений (СЛАУ) в Mathcad.

Для сходимости как метода Якоби, так и модификации Гаусса-Зейделя, следует приводить матрицу к виду с диагональным преобладанием, это можно всегда сделать, применяя элементарные преобразования над строками и столбцами матрицы.

Приложенный документ содержит модификацию итерационного метода Якоби, известную как метод Гаусса-Зейделя и показывает, как привести матрицу к виду с диагональным преобладанием :)

Исходя из определения, достаточно, чтобы модуль элемента главной диагонали был больше остальных элементов своей строки. Поэтому для исходной матрицы, показанной на скрине, мы поменяли местами первую и вторую строки, а затем вычли из третьей строки вторую (бывшую первую). То же самое не забыли сделать для вектора правой части b, на практике лучше работать с расширенной матрицей системы, в которую последним столбцом дописан вектор правой части b.

Как видно из результата проверки, система решена с точностью не менее 15 знаков после запятой. Страница статьидалее...
02.12.2017, 13:11 [75]


Как правильно написать "Компьютерный практикум" и никому не сказать :)

На самом деле, таких примеров немало, но обычно я не трачу время на их рассмотрение, этот же как-то зацепил и заставить убить полезный час :(

Молодцы, авторы О.В. Приходько и М.А. Токарева, их "Компьютерный практикум" можно купить онлайн всего-то за 586 деревянных (Приходько О.В., Токарева М.А. Компьютерный практикум. Учебное пособие для будущих специалистов по управлению персоналом. – Оренбург: ОГУ, 2008. – 201 с).

Мои книги продаются по 100 рублей ну или вообще бесплатны.

А заинтересовал меня вот такой фрагмент:

фрагмент 1
фрагмент 1

Как мило. Они знают мой адрес мыла :) Но зачем же на него ссылаться в своём пособии? Хм, но ведь и дальше текст "чуть-чуть напоминает" мой оригинальчик 14-летней давности, правда? Страница статьидалее...
29.11.2017, 13:35 [64]


Треугольник Паскаля на Javascript

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

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

Мне понадобилось всего 2 функции:

Исходный текст легко увидеть, открыв скрипт по ссылке, нажав на свободном месте страницы правую кнопку мыши и выбрав пункт меню "Исходный код страницы", "Просмотр HTML-кода" и т.п. (название пункта меню зависит от браузера).

Любопытно в тексте - как динамически поменять ширину создаваемого элемента (функция printPascalTriangle).

Под катом приводится ссылка на приложение в работе, файл выложен в кодировке Юникод (UTF-8). Страница статьидалее...
29.11.2017, 10:59 [47]


Лондонская система: лучший дебют для лентяя :)

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

Я лично пришёл к ней независимо от каких-либо источников, ни одного из которых до сегодняшнего дня и не читал :)

Прелесть этой системы с пешечным построением c3-d4-e3 в том, что до определённого момента можно развивать фигуры практически не обращая внимания на ответы соперника, пока за белых не получается примерно вот что:

расстановка белых в лондонской системе
расстановка белых в лондонской системе

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

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

Страница статьидалее...
28.11.2017, 13:07 [76]


Javascript: слить все строки текста в одну

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

Пришлось написать кодик вроде вот такого, ведь сервисы nl2br и sus этого не делают. Но писать код на PHP, который ещё надо на сервак загрузить, мне сейчас лень, а на JS можно сделать за минуту, да и выполняется пусть вашим браузером, а не моим сервером :)

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

Введите или вставьте текст:

Результат:

Страница статьидалее...
28.11.2017, 12:58 [58]


Календарик негра на 2018 год :)

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

В принципе, ещё рано, но он мне (в недоделанном виде) попался именно сегодня, а файл сейчас сунуть некуда, да и постановление уже давно есть, правда, наш гений, подписывая его, про 4-5 ноября как раз забыл, может, ещё отменят, как "зимнее время" :)

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

Сделано в Excel и рассчитано на печать одного листа A4, на бумаге получится примерно вот что (показан только верх листа):

календарик рабочих и выходных дней на лист A4, 2018 год
календарик рабочих и выходных дней на лист A4, 2018 год
Страница статьидалее...
27.11.2017, 17:14 [53]


Javascript: вращающийся кубик

А ведь совсем недавно, до эпохи canvas, сделать такое на обычной веб-страничке было целой историей - или подключать Java-виджет, или какое-нибудь ActiveX-расширение "только для Internet Explorer", или долго и муторно анимировать GIF'ку, или ещё что-то в этом роде.

Сегодня же вращающийся кубик делается просто "родными" средствами вашего браузера.

Код, в принципе и является трансляций с Java, но без необходимости использовать ныне устаревшие ява-апплеты.

Код кубика без обрамления HTML приведён под катом, его можно вставить в любой документ HTML. Страница статьидалее...
26.11.2017, 20:21 [67]


Javascript: как показать коды всех функций из документа?

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

Для отображения списка функций подготовим в документе HTML-список <select> с идентификатором selectFunctionId и предустановленной строкой-опцией "Выберите функцию из списка".

Для отображения кода выбранной из списка функции с соблюдением переводов строк в коде будет служить элемент HTML <pre> с идентификатором showFunctionId.

<select id="selectFunctionId" onchange="showFuncs(this.options[this.selectedIndex].value);">
 <option>Выберите функцию из списка
</select>
<pre id="showFunctionId"></pre>

Весь остальной код поместим в обычный тег яваскрипта, функции f1 и f2 добавлены "просто так", чтобы Вы увидели хоть какие-то коды, метод showFuncs умеет показывать тело функции с именем, которое передано ему аргументом, а метод getAllFuncs формирует массив с именами функций, полученных из объекта, переданного аргументом. Мы передадим в качестве аргумента этого метода непосредственно javascript-объект window, следует понимать, что при этом в список могут попасть и имена функций, полученных из ваших встроенных виджетов-расширений браузера и т.п.

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

Отдельно заметим, что показанный подход не сработает для стандартных объектов вроде Math или нативных функций из подписанных расширений браузера, так как они не являются перечислимыми. Для них при попытке просмотра кода мы получим что-то вроде

function open() { [native code] }

Глобальный код под всеми функциями показывает, как загрузить javascript-массив в опции существующего в документе тега <select>.

Вот скрипт в работе, а под катом - полный исходник (без обрамления HTML).



Страница статьидалее...
26.11.2017, 19:30 [58]


Javascript: рисуем множество Мандельброта

В блоге уже есть множество Мандельброта в Mathcad, пусть будет и эта симпатичная картинка, сгенерированная яваскриптом.

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

Канва, на которой происходит отрисовка, генерируется полностью программно.

Страница статьидалее...
25.11.2017, 17:10 [67]


Visual C++: основные действия над строками и столбцами таблицы DataGridView

В дополнение к примерам на табличные компоненты (1, 2) покажем работу со строками и столбцами таблицы DataGridView, в частности, их добавление и удаление плюс "сбор" информации из ячеек таблицы.

вид формы приложения в конструкторе
вид формы приложения в конструкторе

На рисунке показана форма примера, её можно сделать так:

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

При добавлении строки сначала сформируем её программно, установив также заголовок строки HeaderCell и настроив его ширину RowHeadersWidth. Страница статьидалее...
22.11.2017, 11:05 [71]


Как росла сила шахматных движков?

Наткнулся на интересный график, так как он лежал "не открыто", кину сюда копию.

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

Где-то видел также теоретические оценки верхнего предела для ELO, там говорили о 5500-6000, но ведь ещё недавно и 3600 казалось максимумом.

примерные средние рейтинги ELO шахматных программ для суперкомпьютеров и персоналок, по годам
примерные средние рейтинги ELO шахматных программ для суперкомпьютеров и персоналок, по годам

Страница статьидалее...
19.11.2017, 01:03 [81]


Javascript: сетка из правильных шестиугольников на канве

Одноразово для ребёнка, так как аналогии с пчелиными сотами не хватило. Дело в том, что в сказку про Ёжку-Кошку неожиданно вкралась Вавилонская библиотека - пожалуй, лучшее из известных мне художественных произведений вообще, я не преувеличиваю :)

Как известно, Кот и Таракан (из Другой Сказки, те самые, что едва не стрясли Дерево Мира), в итоге оказались в Лесу, где Кот, наконец, смог поселиться на берегу молочной реки с кисельными берегами, а Таракан стал библиотекарем в замке Волшебника.

Когда они всё же собрались снова, Ёжка-Кошка привезла Кота и Таракана на ковре-самолёте в Замок. Волшебника не было дома, а эти трое ухитрились заблудиться в Бесконечной Библиотеке Волшебника, которая снаружи казалась просто пыльным скопищем из нескольких стеллажей, а внутри представляла собой правильную сетку гексов, заставленных рандомными книгами. Двери, стеллажи и угловые удобства в виде кроваток, санузлов и Неправильных Автоматов для заказа пищи (они работали, но всегда выдавали не то, что ты заказал), я рисовать поленился, а вот саму сеточку из шестиугольников - пожалуйста (javascript + canvas). Текущая комната меняется движением мыши.

Исходник вместе с обрамлением HTML - под катом. Он может быть сохранён как файл типа .html в кодировке Юникод (UTF-8). Извините, ваш браузер не поддерживает тег canvas

Извините, требуется включённый Javascript для работы приложения!
Страница статьидалее...
17.11.2017, 23:43 [76]


PHP: ищем в словаре слова-анаграммы нужной длины

По самому простому определению, анаграмма получается из другого слова перестановкой его букв (рост-сорт-трос, апельсин-спаниель и т.д.)

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

Использованный алгоритм - "лобовой", он сильно избыточен и не претендует на оптимальное быстродействие, но хорошо показывает, как на PHP удобно решать такие задачи, если быстродействие не критично.

Ниже приведён полный исходник приложения с подробными комментариями. Чтобы его выполнить на своём компьютере, нужно установить локальный сервер и записать скрипт в его корневую папку, например, под именем anagram.php, затем скопировать в ту же папку развёрнутый из архива .zip словарь под именем words.txt и выполнить скрипт из любого браузера как http://localhost/anagram.php Страница статьидалее...
16.11.2017, 14:41 [77]


Про шахматы Фишера и скрипт для начальной расстановки фигур в них

Из всех многочисленных альтернативных шахмат наиболее популярны, пожалуй, шахматы Фишера, по ним проводятся вполне представительные турниры, а некоторые гроссмейстеры (как правило, из "второго эшелона") активно их пропагандируют в качестве замены классике (например, Андрей Девяткин).

Суть фишеровской новации состоит в том, что расстановка фигур по первой линии выбирается случайным образом. Так как в этой случайности есть ограничения (чёрные и белые фигуры стоят симметрично, слоны должны быть разнопольными, а ладьи - с разных сторон от короля), то различных начальных позиций оказывается всего 960, почему шахматы Фишера ещё называют "Шахматы-960".

Идея Фишера была, конечно, в том, чтобы уйти в дебюте от "скучных схем", но выиграли ли мы больше, чем проиграли? На мой скромный любительский взгляд, шахматы Фишера обладают значительным количеством недостатков:

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

Идея такого алгоритма расстановки принадлежит Гансу Бодландеру (Hans L. Bodlaender).

Полный исходник скрипта, включая обрамление HTML, приводится ниже. Его можно сохранить как файл типа .html, предполагается, что выбрана кодировка Юникод (UTF-8). Страница статьидалее...
16.11.2017, 08:25 [69]


Firefox Quantum - не ждали?

Firefox обновился до ожидаемой многими версии 57. Новая версия даже получила отдельное название Quantum.

Разработчики заявляют, что Firefox Quantum - самый большой шаг, сделанный компанией со времён версии 1.0 от 2004 года, а "серфинг стал вдвое быстрее". Последнее, конечно, не так, но прирост производительности (и увеличившиеся нагрузка на проц + требования к оперативке) налицо.

Возможно, это связано с новым движком для анализа и обработки CSS-файлов Stylo.

Согласно блогу компании, добавлены также приоритизация открытых вкладок, поддержка аппаратного декодера AMD VP9 для улучшения воспроизведения видео, по нажатию "гамбургера" возвращено более-менее классическое меню вместо панели с картинками.

Интерфейс Photon в целом выглядит приятней мерзкого Australis, но на кой сделали прямоугольными ярлыки вкладок, прямо как как в "яндекс-браузере"?

У страницы about:home появились настройки, удобнее стала настраиваемая панель инструментов, например, я сделал так: Страница статьидалее...
15.11.2017, 15:27 [84]


[1-15] [16-30] [31-45] ... [1831-1845] [1846-1852]

  свежие записипоиск по блогукомментироватьстатистика

Наверх Яндекс.Метрика
© PerS
вход