Викиучебник ruwikibooks https://ru.wikibooks.org/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0 MediaWiki 1.47.0-wmf.2 first-letter Медиа Служебная Обсуждение Участник Обсуждение участника Викиучебник Обсуждение Викиучебника Файл Обсуждение файла MediaWiki Обсуждение MediaWiki Шаблон Обсуждение шаблона Справка Обсуждение справки Категория Обсуждение категории Полка Обсуждение полки Импортировано Обсуждение импортированного Рецепт Обсуждение рецепта Задача Обсуждение задачи TimedText TimedText talk Модуль Обсуждение модуля Event Event talk Викиучебник:Общий форум 4 1253 267074 267043 2026-05-17T16:29:23Z AllaBuraya 79455 /* CAPTCHA */ новая тема 267074 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> ni6b2duulkgshfmi8tiu3ys4ux20j13 267088 267074 2026-05-17T17:46:31Z AllaBuraya 79455 /* Как привязать учебник к другой полке? */ новая тема 267088 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> 4ce0oxk9k5l6x5efmotoh9zy95j6nvx 267091 267088 2026-05-17T17:49:46Z Leksey 3027 /* CAPTCHA */ ответ ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 267091 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> eq1406ev975wfsl9q52aqmnloq6zigl 267092 267091 2026-05-17T17:50:02Z Leksey 3027 /* Как привязать учебник к другой полке? */ ответ: @Kylaix ответишь? (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 267092 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) : @[[Участник:Kylaix|Kylaix]] ответишь? [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> luw35uyi6fz1kmtd6ms150h10rs7luz 267093 267092 2026-05-17T17:50:47Z Leksey 3027 /* Флаг бота */ ответ участнику Taratarussia: Починилось, спасибо! (-) ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 267093 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) : @[[Участник:Kylaix|Kylaix]] ответишь? [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) :::::::::::: Починилось, спасибо! [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> 2miv01je4z4u0idffsaukwfw0mq0njr 267094 267093 2026-05-17T17:52:04Z Leksey 3027 /* Флаг бота */ ответ участнику Taratarussia ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 267094 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) : @[[Участник:Kylaix|Kylaix]] ответишь? [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) ::::::::::::: Блин. Мне стремно выполнять непонятный JS. Можете диф показать как-нить или объяснить что за правка была сделана. ::::::::::::: Да и идея править ИИ мне конечно не нравится, но других предложений нет. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:52, 17 мая 2026 (UTC) :::::::::::: Починилось, спасибо! [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> kieszivc4idytq77xu2jbbkzvsvt8uc 267096 267094 2026-05-17T17:55:34Z Leksey 3027 /* CAPTCHA */ ответ ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 267096 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) : @[[Участник:Kylaix|Kylaix]] ответишь? [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) : Попытался поменять вам группу, но все что мне дает это. Наверное, когда вы попадете в группу "Автоподтвержденные", то отпустит. Как это работает - я не знаю. У вас же по идее глобальный аккаунт и специально в Учебнике вы вчера условно не регились? : {{Цитата|Группы, которые вы можете изменять<ul><li>исключение из IP-блокировок</li><li>организаторка мероприятий</li></ul>}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:55, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) ::::::::::::: Блин. Мне стремно выполнять непонятный JS. Можете диф показать как-нить или объяснить что за правка была сделана. ::::::::::::: Да и идея править ИИ мне конечно не нравится, но других предложений нет. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:52, 17 мая 2026 (UTC) :::::::::::: Починилось, спасибо! [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> 3voudwlgntvh8h99f6u6gt1wzqp4cdc 267097 267096 2026-05-17T17:57:47Z Leksey 3027 /* CAPTCHA */ ответ ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 267097 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) : @[[Участник:Kylaix|Kylaix]] ответишь? [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) : Попытался поменять вам группу, но все что мне дает это. Наверное, когда вы попадете в группу "Автоподтвержденные", то отпустит. Как это работает - я не знаю. У вас же по идее глобальный аккаунт и специально в Учебнике вы вчера условно не регились? : {{Цитата|Группы, которые вы можете изменять<ul><li>исключение из IP-блокировок</li><li>организаторка мероприятий</li></ul>}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:55, 17 мая 2026 (UTC) : Посмотрел у себя - я состою в неяавной группе [[Викиучебник:Автоподтверждённые участники]] : 4 дня стажа хочет после отдельной регистрации в Викиучебнике : {{Цитата|В случае регистрации [[w:Википедия:Единая_учётная_запись|в другом проекте]] фонда [[w:Викимедиа|Викимедиа]] и стаж, и правки отсчитываются в нашем разделе отдельно: эти статусы в разных проектах между собой не связаны.}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:57, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) ::::::::::::: Блин. Мне стремно выполнять непонятный JS. Можете диф показать как-нить или объяснить что за правка была сделана. ::::::::::::: Да и идея править ИИ мне конечно не нравится, но других предложений нет. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:52, 17 мая 2026 (UTC) :::::::::::: Починилось, спасибо! [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> guscz5i66hi6c2ezity1wonfrqog4v4 267099 267097 2026-05-17T18:01:42Z Leksey 3027 /* CAPTCHA */ дополнение ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 267099 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) : @[[Участник:Kylaix|Kylaix]] ответишь? [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) : Попытался поменять вам группу, но все что мне дает это. Наверное, когда вы попадете в группу "Автоподтвержденные", то отпустит. Как это работает - я не знаю. У вас же по идее глобальный аккаунт и специально в Учебнике вы вчера условно не регились? : {{Цитата|Группы, которые вы можете изменять<ul><li>исключение из IP-блокировок</li><li>организаторка мероприятий</li></ul>}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:55, 17 мая 2026 (UTC) : Посмотрел у себя - я состою в неяавной группе [[Викиучебник:Автоподтверждённые участники]] : 4 дня стажа хочет после отдельной регистрации в Викиучебнике : {{Цитата|В случае регистрации [[w:Википедия:Единая_учётная_запись|в другом проекте]] фонда [[w:Викимедиа|Викимедиа]] и стаж, и правки отсчитываются в нашем разделе отдельно: эти статусы в разных проектах между собой не связаны.}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:57, 17 мая 2026 (UTC) :: Вот и настройка, что за это отвечает https://noc.wikimedia.org/wiki.php?wiki=ruwikibooks#wgAutoConfirmAge [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:01, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) ::::::::::::: Блин. Мне стремно выполнять непонятный JS. Можете диф показать как-нить или объяснить что за правка была сделана. ::::::::::::: Да и идея править ИИ мне конечно не нравится, но других предложений нет. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:52, 17 мая 2026 (UTC) :::::::::::: Починилось, спасибо! [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> 306az6y0i2y1yk22ajudw0cvgckg5r8 267100 267099 2026-05-17T18:03:43Z AllaBuraya 79455 /* Категории кулинарной книги */ Ответ 267100 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) : @[[Участник:Kylaix|Kylaix]] ответишь? [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) : Попытался поменять вам группу, но все что мне дает это. Наверное, когда вы попадете в группу "Автоподтвержденные", то отпустит. Как это работает - я не знаю. У вас же по идее глобальный аккаунт и специально в Учебнике вы вчера условно не регились? : {{Цитата|Группы, которые вы можете изменять<ul><li>исключение из IP-блокировок</li><li>организаторка мероприятий</li></ul>}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:55, 17 мая 2026 (UTC) : Посмотрел у себя - я состою в неяавной группе [[Викиучебник:Автоподтверждённые участники]] : 4 дня стажа хочет после отдельной регистрации в Викиучебнике : {{Цитата|В случае регистрации [[w:Википедия:Единая_учётная_запись|в другом проекте]] фонда [[w:Викимедиа|Викимедиа]] и стаж, и правки отсчитываются в нашем разделе отдельно: эти статусы в разных проектах между собой не связаны.}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:57, 17 мая 2026 (UTC) :: Вот и настройка, что за это отвечает https://noc.wikimedia.org/wiki.php?wiki=ruwikibooks#wgAutoConfirmAge [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:01, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) ::::::::::::: Блин. Мне стремно выполнять непонятный JS. Можете диф показать как-нить или объяснить что за правка была сделана. ::::::::::::: Да и идея править ИИ мне конечно не нравится, но других предложений нет. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:52, 17 мая 2026 (UTC) :::::::::::: Починилось, спасибо! [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) ::::::да [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 18:03, 17 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> fssjyme1djxgfcx964oh47v7f3yw4d9 267104 267100 2026-05-17T19:52:09Z Taratarussia 77272 /* Флаг бота */ 267104 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) : @[[Участник:Kylaix|Kylaix]] ответишь? [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) : Попытался поменять вам группу, но все что мне дает это. Наверное, когда вы попадете в группу "Автоподтвержденные", то отпустит. Как это работает - я не знаю. У вас же по идее глобальный аккаунт и специально в Учебнике вы вчера условно не регились? : {{Цитата|Группы, которые вы можете изменять<ul><li>исключение из IP-блокировок</li><li>организаторка мероприятий</li></ul>}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:55, 17 мая 2026 (UTC) : Посмотрел у себя - я состою в неяавной группе [[Викиучебник:Автоподтверждённые участники]] : 4 дня стажа хочет после отдельной регистрации в Викиучебнике : {{Цитата|В случае регистрации [[w:Википедия:Единая_учётная_запись|в другом проекте]] фонда [[w:Викимедиа|Викимедиа]] и стаж, и правки отсчитываются в нашем разделе отдельно: эти статусы в разных проектах между собой не связаны.}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:57, 17 мая 2026 (UTC) :: Вот и настройка, что за это отвечает https://noc.wikimedia.org/wiki.php?wiki=ruwikibooks#wgAutoConfirmAge [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:01, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) ::::::::::::: Блин. Мне стремно выполнять непонятный JS. Можете диф показать как-нить или объяснить что за правка была сделана. ::::::::::::: Да и идея править ИИ мне конечно не нравится, но других предложений нет. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:52, 17 мая 2026 (UTC) :::::::::::: Починилось, спасибо! [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) Прекрасно, если понадобится помощь — обращайтесь на мою СО. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 19:52, 17 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) ::::::да [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 18:03, 17 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> godx4znjxzoiwpcpwstwd2me5q5polk 267110 267104 2026-05-18T10:02:14Z AllaBuraya 79455 /* Как привязать учебник к другой полке? */ Ответ 267110 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) : @[[Участник:Kylaix|Kylaix]] ответишь? [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) :или достаточно в учебнике в шаблоне "Название учебника" указать нужные значения в Категория? и бот привяжет учебник, куда нужно? в какой время отрабатывает бот? явно, сразу не после правки Категория [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 10:02, 18 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) : Попытался поменять вам группу, но все что мне дает это. Наверное, когда вы попадете в группу "Автоподтвержденные", то отпустит. Как это работает - я не знаю. У вас же по идее глобальный аккаунт и специально в Учебнике вы вчера условно не регились? : {{Цитата|Группы, которые вы можете изменять<ul><li>исключение из IP-блокировок</li><li>организаторка мероприятий</li></ul>}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:55, 17 мая 2026 (UTC) : Посмотрел у себя - я состою в неяавной группе [[Викиучебник:Автоподтверждённые участники]] : 4 дня стажа хочет после отдельной регистрации в Викиучебнике : {{Цитата|В случае регистрации [[w:Википедия:Единая_учётная_запись|в другом проекте]] фонда [[w:Викимедиа|Викимедиа]] и стаж, и правки отсчитываются в нашем разделе отдельно: эти статусы в разных проектах между собой не связаны.}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:57, 17 мая 2026 (UTC) :: Вот и настройка, что за это отвечает https://noc.wikimedia.org/wiki.php?wiki=ruwikibooks#wgAutoConfirmAge [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:01, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) ::::::::::::: Блин. Мне стремно выполнять непонятный JS. Можете диф показать как-нить или объяснить что за правка была сделана. ::::::::::::: Да и идея править ИИ мне конечно не нравится, но других предложений нет. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:52, 17 мая 2026 (UTC) :::::::::::: Починилось, спасибо! [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) Прекрасно, если понадобится помощь — обращайтесь на мою СО. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 19:52, 17 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) ::::::да [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 18:03, 17 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> letrtyky1sj229vrbfp25t8loglacql 267111 267110 2026-05-18T10:03:21Z AllaBuraya 79455 /* Теория чисел */ Ответ 267111 wikitext text/x-wiki {{Участник:Kylaixbot/ArchiveConfig |archive = Викиучебник:Общий форум/Архив/%(year)d |algo = old(60d) |counter = 1 }} {{Форум}} {{Архив-П |2005-2007|2008|2009-2010|2011-2012|2013|2014|2015|2016|2018|2019|2020|2021|2022|2023|2024|2025}} {{Актуально}} == Как привязать учебник к другой полке? == например, [[Дифференциальные уравнения]] к полке [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]]— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:46, 17 мая 2026 (UTC) : @[[Участник:Kylaix|Kylaix]] ответишь? [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) :или достаточно в учебнике в шаблоне "Название учебника" указать нужные значения в Категория? и бот привяжет учебник, куда нужно? в какой время отрабатывает бот? явно, сразу не после правки Категория [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 10:02, 18 мая 2026 (UTC) == CAPTCHA == при сохранении правок возникает: CAPTCHA: Для редактирования страницы, пожалуйста, введите буквы, которые видны на изображении ниже это из-за того, что я новичок? или так всегда будет?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 16:29, 17 мая 2026 (UTC) : Никогда такого не видел. Конечно пройдет. : А можете кинуть на почту скриншот leksey@ya.ru<br> Интересно посмотреть даже. : Я посмотрю, может вам можно статус подкрутить руками, но вроде я такого не видел. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:49, 17 мая 2026 (UTC) : Попытался поменять вам группу, но все что мне дает это. Наверное, когда вы попадете в группу "Автоподтвержденные", то отпустит. Как это работает - я не знаю. У вас же по идее глобальный аккаунт и специально в Учебнике вы вчера условно не регились? : {{Цитата|Группы, которые вы можете изменять<ul><li>исключение из IP-блокировок</li><li>организаторка мероприятий</li></ul>}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:55, 17 мая 2026 (UTC) : Посмотрел у себя - я состою в неяавной группе [[Викиучебник:Автоподтверждённые участники]] : 4 дня стажа хочет после отдельной регистрации в Викиучебнике : {{Цитата|В случае регистрации [[w:Википедия:Единая_учётная_запись|в другом проекте]] фонда [[w:Викимедиа|Викимедиа]] и стаж, и правки отсчитываются в нашем разделе отдельно: эти статусы в разных проектах между собой не связаны.}} [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:57, 17 мая 2026 (UTC) :: Вот и настройка, что за это отвечает https://noc.wikimedia.org/wiki.php?wiki=ruwikibooks#wgAutoConfirmAge [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:01, 17 мая 2026 (UTC) == [[Теория чисел]] == создала [[Полка:Теория чисел]], и учебник [[Теория чисел]] но они не связаны, как их связать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:47, 15 мая 2026 (UTC) :уже связались [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 10:03, 18 мая 2026 (UTC) == [[Полка:Теория чисел]] == создала [[Полка:Теория чисел]], но она не появилась визуально внутри [[Полка:Математика]] что делать?— [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 19:45, 15 мая 2026 (UTC) :Неудачно попробовал, может появится кто-то из админов. Подозреваю, что, возможно, там используются викиданные для этого, надо уточнить. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:01, 16 мая 2026 (UTC) :Как-то коряво добавил, список определяется страницей [[Викиучебник:Каталог учебников/Список]]. [[Участник:Def2010|Def2010]] ([[Обсуждение участника:Def2010|обсуждение]]) 11:18, 16 мая 2026 (UTC) == Флаг бота == Прошу присвоить флаг бота [[Участник:Taratarussia's Bot|моему боту]]. Бот будет откатывать мат в статьях Викиучебника. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:39, 11 мая 2026 (UTC) :: @[[Участник:Валерий Стариков|Валерий Стариков]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:46, 11 мая 2026 (UTC) :: Я не знаю как это делать, но, наверное, разберусь. :: Но я не уверен, что такой бот нужен. Вроде нет проблемы с матом как таковой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 22:33, 11 мая 2026 (UTC) ::: Я тоже так думаю, но, НО, пока он будет мат откатывать, а позже я расширю функционал. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 12 мая 2026 (UTC) : Привет. Код хороший, но насколько актуально использовать это, если есть фильтры? И еще вопрос: вы его с консоли хотите использовать? Я бы рекомендовал для ботов использовать Toolforge <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 17:27, 11 мая 2026 (UTC) :: Я только знаю как запускать с консоли [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: @[[Участник:Kylaix|Kylaix]] [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 17:53, 11 мая 2026 (UTC) ::: Не переживайте за это, я могу вам помочь перенести на toolforge, это не сложно. Вопрос только состоит в актуальности <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:56, 11 мая 2026 (UTC) :::: @[[Участник:Kylaix|Kylaix]] Спасибо за помощь, я готов перенести, время есть. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:29, 12 мая 2026 (UTC) ::::: @[[Участник:Leksey|Leksey]] что думаешь? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 14:14, 12 мая 2026 (UTC) :::::: @[[Участник:Kylaix|Kylaix]] Я зарегистрировался на Toolforge и подал заявку на участие. Краткое описание написал на русском языке. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 15:10, 12 мая 2026 (UTC) ::::::: А вы на нейронке пишете бота? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 16:53, 12 мая 2026 (UTC) :::::::: В общем, да. Я не умею учебники писать, а пользу проекту приносить хочу. Единственный выход — боты. Но питон я не знаю, поэтому использую нейросети. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 16:55, 12 мая 2026 (UTC) ::::::::: Я сам ботовод, подумаю что вам придумать в задачи. Сам хотя и знаю питон, писал @[[Участник:Kylaixbot|Kylaixbot]] при помощи ИИ <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:00, 12 мая 2026 (UTC) ::::::::: Мне кажется, проекту нужны авторы. Остальное все пока нет авторов - несущественно и не нужно. А авторы вряд ли появятся так как проект не закрывает какие-то насущные задачи людей. Или же людй вполне устраивают другие платформы и способы обучения. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 19:01, 12 мая 2026 (UTC) :::::::::: У меня нет телеграма. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) ::::::::::: Раз важны статьи, я могу заняться переводами с других проектов. Но думаю, что лучше чтобы был бот, так на фоне, если вдруг что будет, то сможет откатить. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:24, 13 мая 2026 (UTC) :::::::::::: Я не уверен, что переводы автоматические нужны. Сейчас любой сам может себе что угодно перевести одним или тремя нажатиями. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:17, 13 мая 2026 (UTC) :::::: Я думаю, что нам это не надо. Так как я не вижу пробемы вандализма с матом конкретно. :::::: Актуален вопрос отката всего вклада вандала "одним нажатием", но скрипт из Википедии у нас тут не работает. Вот его бы заставить работать. :::::: Также имеет смысл уведомлять администратора (через СО или через телеграм) о самих фактах вандализма, чтобы он пришел и откатил все. Той самой одной кнопкой. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 18:31, 12 мая 2026 (UTC) ::::::: Можно попробовать сделать бота, который будет откатывать все правки заблокированных участников. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:16, 13 мая 2026 (UTC) :::::::: Трудновато. Не всегда вклад негативный. Можно конечно по причине блокировки ловить (вандализм). Было бы круто если бы попробовали написать бота, а я гляну его, вот тогда стоит дать флаг. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:51, 13 мая 2026 (UTC) ::::::::: Опишите подробнее что хотите, и попробую что-либо сделать. С уважением, [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:53, 13 мая 2026 (UTC) :::::::: Я предпочту откатывать скриптом вручную, но надо чтобы он заработал. Есть JS-скрипт, который в Викиучебнике не работает.<br> А вот о необходимости прийти и откатить уведомление бы не помешало. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:15, 13 мая 2026 (UTC) ::::::::: Не могли бы вы скинуть ссылку на скрипт, я попробую оптимизировать. Возможно, дело в ограничениях в скрипте, или в расширениях которых нет в ВУ. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:27, 14 мая 2026 (UTC) :::::::::: Пожалуйста [[Участник:Leksey/common.js]] :::::::::: Вот обсуждение [[w:Служебная:GoToComment/c-Leksey-20260402155500-Вопрос_по_администрированию_Викиучебника]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:11, 14 мая 2026 (UTC) :::::::::: Вот тут я перечислил административные средства имеющиеся сейчас [[Викиучебник:Инструменты_администратора]] [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 16:17, 14 мая 2026 (UTC) :::::::::: Вот еще с такой проблемой столкнулся [[Обсуждение шаблона:Цитата#Не работает свойство "Источник"]]. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:48, 14 мая 2026 (UTC) ::::::::::: Шаблон починил, любуйтесь. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 11:23, 15 мая 2026 (UTC) :::::::::::: @[[Участник:Leksey|Leksey]] Вот исправный код (хотя я не знаю у меня не проверяется, у меня нет кнопок откатить:))<br> // Mass Rollback for MediaWiki<br> // Универсальная версия для Википедии, Викиучебника и других вики :::::::::::: if (typeof wkRollbackPortlet === "undefined") {<br> var wkRollbackPortlet = "p-tb";<br> } :::::::::::: // Откат одной правки<br> function rollbackOneThingWKMR(edit, rbMetadata) { :::::::::::: var userName; :::::::::::: // Для IP-участников<br> if (rbMetadata.userName === null) { :::::::::::: userName = $(edit)<br> .parents("li:first")<br> .find("a.mw-anonuserlink")<br> .first()<br> .text(); :::::::::::: } else { :::::::::::: userName = rbMetadata.userName; :::::::::::: } :::::::::::: var titleMatch = /title=([^&]+)/.exec(edit.href); :::::::::::: if (!titleMatch) {<br> console.error("Не удалось определить страницу");<br> return;<br> } :::::::::::: var pageTitle = decodeURIComponent(titleMatch[1]); :::::::::::: var params = {}; :::::::::::: if (rbMetadata.editSummary !== "") {<br> params.summary = rbMetadata.editSummary;<br> } :::::::::::: rbMetadata.api.rollback(pageTitle, userName, params) :::::::::::: .done(function () { :::::::::::: console.log("Откат:", pageTitle); :::::::::::: $(edit).after(<br> '<span style="color:green;font-weight:bold;"> [откачено]</span>'<br> ); :::::::::::: $(edit).remove(); :::::::::::: }) :::::::::::: .fail(function (code, data) { :::::::::::: console.error("Ошибка rollback:", code, data); :::::::::::: $(edit).after(<br> '<span style="color:red;font-weight:bold;"> [ошибка]</span>'<br> ); :::::::::::: });<br> } :::::::::::: // Откат всех<br> function rollbackEverythingWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: if (<br> mw.config.get("wgRelevantUserName") ===<br> mw.config.get("wgUserName")<br> ) { :::::::::::: if (<br> !confirm(<br> "Вы собираетесь откатить ВСЕ свои правки. Продолжить?"<br> )<br> ) {<br> return false;<br> }<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: $("a[href*='action=rollback']").each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Откат выбранных<br> function rollbackSomeThingsWKMR(editSummary) { :::::::::::: if (editSummary === null) {<br> return false;<br> } :::::::::::: mw.loader.using(["mediawiki.api"]).done(function () { :::::::::::: var rbMetadata = {}; :::::::::::: rbMetadata.api = new mw.Api(); :::::::::::: rbMetadata.userName =<br> mw.config.get("wgRelevantUserName"); :::::::::::: rbMetadata.editSummary = editSummary; :::::::::::: var rollbackList = $("input.revdelIds:checked")<br> .parents("li")<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackList.length <= 0) { :::::::::::: mw.notify("Не выбрано ни одной правки."); :::::::::::: return;<br> } :::::::::::: rollbackList.each(function (ind, el) { :::::::::::: rollbackOneThingWKMR(el, rbMetadata); :::::::::::: }); :::::::::::: }); :::::::::::: return false;<br> } :::::::::::: // Главная часть<br> mw.loader.using([<br> "mediawiki.util",<br> "mediawiki.api"<br> ]).done(function () { :::::::::::: mw.hook('wikipage.content').add(function () { :::::::::::: // Только на странице вкладов<br> if (<br> mw.config.get("wgCanonicalSpecialPageName") !==<br> "Contributions"<br> ) {<br> return;<br> } :::::::::::: // Уже добавлено<br> if ($("#ca-rollbackeverything").length) {<br> return;<br> } :::::::::::: // Проверяем наличие rollback<br> if ($("a[href*='action=rollback']").length <= 0) { :::::::::::: console.log("Rollback ссылки не найдены"); :::::::::::: return;<br> } :::::::::::: console.log("MassRollback загружен"); :::::::::::: // Добавляем чекбоксы<br> $("ul.mw-contributions-list li").each(function () { :::::::::::: // Уже есть чекбокс<br> if ($(this).find("input.revdelIds").length) {<br> return;<br> } :::::::::::: var rollbackLink = $(this)<br> .find("a[href*='action=rollback']"); :::::::::::: if (rollbackLink.length > 0) { :::::::::::: $(this)<br> .find("a.mw-changeslist-date")<br> .first()<br> .before(<br> "<input type='checkbox' class='revdelIds' style='margin-right:5px;'>"<br> );<br> }<br> }); :::::::::::: // Кнопка Rollback all<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback all",<br> "ca-rollbackeverything",<br> "Откатить все правки"<br> ); :::::::::::: // Кнопка Rollback selected<br> mw.util.addPortletLink(<br> wkRollbackPortlet,<br> "#",<br> "Rollback selected",<br> "ca-rollbacksome",<br> "Откатить выбранные правки"<br> ); :::::::::::: // Обработка кнопки ALL<br> $("#ca-rollbackeverything").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackEverythingWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: // Обработка кнопки SELECTED<br> $("#ca-rollbacksome").click(function (event) { :::::::::::: event.preventDefault(); :::::::::::: rollbackSomeThingsWKMR(<br> prompt(<br> "Введите комментарий отката:"<br> )<br> ); :::::::::::: }); :::::::::::: }); :::::::::::: }); [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 12:10, 15 мая 2026 (UTC) ::::::::::::: Блин. Мне стремно выполнять непонятный JS. Можете диф показать как-нить или объяснить что за правка была сделана. ::::::::::::: Да и идея править ИИ мне конечно не нравится, но других предложений нет. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:52, 17 мая 2026 (UTC) :::::::::::: Починилось, спасибо! [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 17:50, 17 мая 2026 (UTC) Прекрасно, если понадобится помощь — обращайтесь на мою СО. [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 19:52, 17 мая 2026 (UTC) Если не работает, вот это попробуйте: <pre>if (typeof wkContribsCheckboxInit === "undefined") { wkContribsCheckboxInit = false; } if (typeof wkRollbackPortlet === "undefined") { wkRollbackPortlet = "p-cactions"; } function getContributionItem(el) { return $(el).closest("li, tr, .mw-contribs-list-item"); } function getRollbackLinks(scope) { return scope.find("a[href*='action=rollback']"); } function rollbackEverythingWKMR(editSummary) { if (editSummary === null) { return false; } if (mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName")) { if (!confirm("You are about to roll back *all* of *your own* edits. Please note that this will be very difficult to undo. Are you *ABSOLUTELY SURE* you want to do this?")) { return false; } } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.ipRange = (rbMetadata.userName === null); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; $("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); return false; } function rollbackSomeThingsWKMR(editSummary) { if (editSummary === null) { return false; } mw.loader.using("mediawiki.api").done(function () { var rbMetadata = {}; rbMetadata.api = new mw.Api(); rbMetadata.userName = mw.config.get("wgRelevantUserName"); rbMetadata.titleRegex = /title=([^&]+)/; rbMetadata.editSummary = editSummary; var rollbackList = $("input.revdelIds:checked").each(function () { var item = getContributionItem(this); item.find("a[href*='action=rollback']").each(function (ind, el) { rollbackOneThingWKMR(el, rbMetadata); }); }); if ($("input.revdelIds:checked").length <= 0) { mw.notify("You didn't select any edits that could be rolled back!"); return; } }); return false; } function rollbackOneThingWKMR(edit, rbMetadata) { var userName; var item = getContributionItem(edit); if (rbMetadata.userName === null) { userName = item.find("a.mw-anonuserlink").not(".mw-contributions-title").first().text(); } else { userName = rbMetadata.userName; } if (!userName) { return; } var params = {}; if (rbMetadata.editSummary != '') { params.summary = rbMetadata.editSummary; } var titleMatch = rbMetadata.titleRegex.exec(edit.href); if (!titleMatch) { return; } rbMetadata.api.rollback(decodeURIComponent(titleMatch[1]), userName, params).done(function () { $(edit).after("reverted"); $(edit).remove(); }); } $(document).ready(function () { if (mw.config.get("wgCanonicalSpecialPageName") == "Contributions" && $("a[href*='action=rollback']").length > 0) { mw.loader.using("mediawiki.util").done(function () { mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback all", "ca-rollbackeverything", "rollback all edits displayed here"); if (!wkContribsCheckboxInit) { if ($("input.revdelIds").length === 0) { $("a[href*='action=rollback']").each(function (ind, el) { var item = getContributionItem(el); item.find("a").first().before("<input type='checkbox' class='revdelIds'>&nbsp;"); item.find("input.revdelIds").data("index", ind); }); } else { $("input.revdelIds").each(function (ind, el) { $(el).data("index", ind); }); } wkContribsCheckboxInit = true; } mw.util.addPortletLink(wkRollbackPortlet, '#', "Rollback selected", "ca-rollbacksome", "rollback selected edits"); $("#ca-rollbackeverything").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackEverythingWKMR(prompt("Rollback all edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").click(function (event) { event.preventDefault(); mw.loader.load("mediawiki.api"); return rollbackSomeThingsWKMR(prompt("Rollback selected edits: Enter an edit summary, or leave blank to use the default (or hit Cancel to cancel the rollback entirely)")); }); $("#ca-rollbacksome").data("lastSelectedIndex", -1); $("input.revdelIds").off("click").click(function (ev) { var lastSelectedRevdel = $("#ca-rollbacksome").data("lastSelectedIndex"); var newIndex = $(this).data("index"); if (ev.shiftKey && lastSelectedRevdel >= 0) { var checkboxArray = $("input.revdelIds"); var start = lastSelectedRevdel; var stop = newIndex; if (start < stop) { for (var i = start; i < stop; i++) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } else { for (var i = start; i > stop; i--) { if (i != lastSelectedRevdel) { $(checkboxArray[i]).prop("checked", !($(checkboxArray[i]).prop("checked"))); } } } } $("#ca-rollbacksome").data("lastSelectedIndex", newIndex); }); }); } });</pre> [[Участник:Taratarussia|СССР]] ([[Обсуждение участника:Taratarussia|обсуждение]]) 18:13, 15 мая 2026 (UTC) == Изменение шаблона «Родственные проекты» == К сожалению, Викиновости полностью закрылись на всех языках решением Фонда Викимедиа. Поэтому, считаю целесообразным убрать Викиновости из шаблона, как уже сделали на https://meta.wikimedia.org/wiki/Main_Page/ru. Сам я не могу, поэтому прошу местных администраторов сделать. С уважением, СССР (обсуждение) 16:07, 8 мая 2026 (UTC) : @[[Участник:Leksey|Leksey]] сможете поправить шаблон? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:21, 13 мая 2026 (UTC) :: Сделал. И предлагаю на ты. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:20, 13 мая 2026 (UTC) == Вопрос с [[ВУ:КУ]] == Я тут ставил цель в прошлом году закончить с КУ, но кажется там у меня небольшой тупик с этим. И я вспомнил почему я хотел побыстрее с этим покончить: я хотел переделать КУ, чтобы там можно было удобнее все это просматривать и, если надо - автоматизировать. Я конечно не предлагаю вести ежедневный КУ (да и от ежемесячного тоже думал бы отказаться, так как все равно небольшие неудобства) а перейти на годовой (то есть одна страница чисто для 2026) и возможно, оставлять ее сразу на [[ВУ:КУ]]. Думаю, номинаций много не будет в скором времени, поэтому есть время об этом подумать и реализовать (если, конечно, будет согласие) <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 00:04, 3 января 2026 (UTC) Я вижу, вы тут снесли что-то 1Сное, а [[Служебная:Неиспользуемые файлы|несвободные файлы удалить забыли]].<br> Файлы Хедина в Цивилизции оформлены неправильно: должны быть переоформлены или удалены по [[ВУ:КДИ]]#10а и в. Он не является "автором или правообладателем", а "иллюстрирование" не является валидной причиной для содержания несвободного файла. А после переоформления около трети должна быть удалена по 8 пункту.<br> И, раз уж написал, примерно половину статей господина Пинчука снесли на enКнигах в прошлом году. — Ирука<sup>[[u:Iruka13|13]]</sup> 18:44, 10 января 2026 (UTC) : ээ, вроде 1сное не сносил особо, кроме каких-то 2-3 файлов, с согласия других (надо поискать в КУ). До несвободных файлов рука не добралась, там вообще желательно обсуждение.<br>Ровно так же как и с Цивой, потому что иллюстрирование в играх по КДИ, как мне кажется, у нас под вопросом. Я замечал случаи, где иллюстрирование необходимо как в руководствах Хедина, поэтому тут под вопросом. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:41, 15 января 2026 (UTC) == Категории кулинарной книги == <s>Коль ниже нас похоронили, решу немного покопаться в гробу</s>. Касательно категорий: нам надо их слегка вложить друг в друга чтобы это отображалось цивильно, да и для удобства поиска. Например: категории огурцы, помидоры и баклажан стоило бы вложить в овощи, а китайская, японская, корейская кухня в восточно-азиатские кухни и т.д. Хотелось бы услышать мнения касательно данного действа. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) : @[[Участник:Leksey|Leksey]] @[[Участник:Heffalump1974|Heffalump1974]] @[[Участник:Erokhin|Erokhin]] <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:42, 28 декабря 2025 (UTC) :Можно на примерах показать? [[Участник:Erokhin|Erokhin]] ([[Обсуждение участника:Erokhin|обсуждение]]) 22:11, 28 декабря 2025 (UTC) :: См. [[Кулинарная книга]], спускаемся ниже до [[:Категория:Европейская кухня]] и там видим подкухни, которые я ранее посчитал европейскими. Если бы их там не было, то кухни бы догнали список ингредиентов на странице кулинарной книги по длине. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:38, 29 декабря 2025 (UTC) ::: ? <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 15:55, 15 января 2026 (UTC) ::::Соглашусь, хорошо бы перетасовать предлагаемым образом. ::::Сам не возьмусь, пока без компьютера. [[Участник:Heffalump1974|Heffalump1974]] ([[Обсуждение участника:Heffalump1974|обсуждение]]) 14:03, 5 мая 2026 (UTC) ::::: Категоризировал, и стало теперь приятнее смотреть на не слишком длинные списки. Оценка за вами, @[[Участник:Leksey|Leksey]], @[[Участник:Heffalump1974|Heffalump1974]] :)<br> Там единственное есть дубляжи (Баклажан и баклажаны, орех и орехи) надо бы определиться в каком числе категоризировать их. Мне кажется лучше в единственном числе, потому что так будет логично. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 19:26, 13 мая 2026 (UTC) :::::: А куда смотреть? Я уже забыл все [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 20:18, 13 мая 2026 (UTC) ::::::: [[Викиучебник:Кулинарная книга]] и туда снизу. <span style="font-family:TimesNewRoman;">[[Участник:Kylaix|'''''Kylain Aixter''''' ]] ([[Обсуждение участника:Kylaix|СО]]) </span> 20:23, 13 мая 2026 (UTC) ::::::да [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 18:03, 17 мая 2026 (UTC) <!-- Сообщение отправил Участник:Keegan (WMF)@metawiki, используя список на странице https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> jh0dh2q4kuu5zcrb34pg92dm40ll6jw Решение систем дифференциальных уравнений 0 1962 267112 260440 2026-05-18T10:05:04Z AllaBuraya 79455 267112 wikitext text/x-wiki {{Название учебника |Категория = Дифференциальные_уравнения |Тип = Одностраничный }} Дифференциальные уравнения, являясь подмножеством функциональных уравнений, довольно редко допускают аналитическое решение. В подобных ситуациях для их приближённого решения применяют численные методы. Численные методы не могут дать решения дифференциальной задачи, но могут обеспечить некоторое приближение к такому решению. Часто для получения такого приближения используют т. н. сеточную аппроксимацию функций. То есть вместо функций непрерывного аргумента вводят функции дискретного аргумента. А вместо дифференциальных операторов — разностные. Будем называть параметром сетки такую величину <math>h</math>, что расстояние между любыми двумя соседними узлами сетки не превосходит h. == Гиперболические уравнения == === Введение === Системы гиперболических уравнений возникают во многих задачах вычислительной физики. Хороший проработанный пример — газовая динамика. В приложениях часто используются гиперболические системы уравнений, представляемые в виде: <math> \frac{\partial \vec U}{\partial t} + \sum_{j=1}^m A_j\frac{\partial \vec U}{\partial x_j} = \vec b </math> Где матрица <math>A</math> имеет полный набор собственных векторов и, соответственно, представима в виде <math> A=\Omega_R \Lambda \Omega_L </math> Где <math> \Omega_R=\Omega_L^{-1}</math> — матрица, составленная из правых собственных векторов матрицы <math>A</math> как из столбцов. <math>\Lambda=diag[\lambda_1,\lambda_2,...,\lambda_n]</math> — матрица собственных значений матрицы <math>A</math>. Эта форма записи называется неконсервативной, в противовес не менее часто используемой консервативной форме, связанной с физическими законами сохранения в явном виде: <math> \frac{\partial \vec U}{\partial t} + \sum_{j=1}^m \frac{\partial F_j(\vec U)}{\partial x_j} = \vec B </math> Дело в том, разностная схема для консервативной формы уравнений, записанная в виде <math> \frac{\vec U^{n+1}_{\vec r}-\vec U^n_{\vec r}}{\delta t} + \sum_{j=1}^m \frac{F_{j,\vec r+1/2\vec h_j} - F_{j,\vec r-1/2\vec h_j} }{h_j} = \vec B_{\vec r} </math> автоматически гарантирует точное выполнение на приближенном решении законов сохранения, в то время как разностные соотношения, получаемые из неконсервативной формы, соблюдают законы сохранения лишь приближенно - в рамках аппроксимации. === Разностные схемы === Простейшим и исходным объектом исследования в теории систем гиперболических уравнений является одиночное уравнение переноса: <math>\frac{\partial U}{\partial t}+\lambda\frac{\partial U}{\partial x}=0</math> Где <math>U</math> — искомая функция переменных <math>(x,t)</math>. <math>\lambda</math> — некоторая постоянная. Это уравнение очень удобно уже тем, что нам хорошо известно его аналитическое решение: <math>U(x,t)=U_0(x-\lambda t)</math> где <math>U_0(x)</math> — произвольная функция. Первый вопрос, который возникает — а зачем численно решать уравнение, для которого известно аналитическое решение? Ответ прост — дело в том, что это уравнение будет «вылезать» из решения сложных многомерных систем, и параметры, которые в него входят будут меняться в зависимости от решения да и заданы будут не всюду, а лишь в некоторых точках, что делает прямое применение аналитического решения невозможным. Итак, приступим к построению простейшей схемы для данного уравнения. Пусть функция <math>U</math> задана на узлах пространственной сетки <math>x_m</math> в момент времени <math>t_n</math> и мы хотим получить ее значения в тех же узлах в момент <math>t_{n+1}</math>. Воспользуемся простейшими формулами для аппроксимации производных и получим: <math> \frac{U^{n+1}_m-U^n_m}{\tau} + \lambda \frac{U^n_m-U^n_{m-1}}{h} = 0 </math> Тогда для значения <math>U^{n+1}_m</math> может быть выписано выражение в явном виде: <math> U^{n+1}_m=U_m^n-\tau \lambda \frac{U^n_m-U^n_{m-1}}{h} </math> Эта простейшая схема может быть легко реализована и запущена. См [[/Реализация на Fortran-e|пункт реализация]]. Приведенная схема не работает при <math>\lambda<0</math>. Ответ достаточно очевиден — «перенос» справа налево не работает в схеме, в которой нет точек справа. Хотелось бы добавить в схему что-то вроде <math>U_{m+1}</math>. Как это сделать? Простейший способ — построить «комбинированную» схему: <math> U^{n+1}_m=U_m^n-\tau \lambda \frac{U^n_m-U^n_{m-1}}{h}, \lambda\ge 0 </math> <math> U^{n+1}_m=U_m^n-\tau \lambda \frac{U^n_{m+1}-U^n_m}{h}, \lambda<0 </math> === Литература === * Куликовский А. Г., Погорелов Н. В., Семенов А. Ю. Математические вопросы численного решения гиперболических систем уравнений. — М.:ФИЗМАТЛИТ,2001. — 608с. — ISBN 5-9221-0194-3 itj95wtpbemhktbzdvh6riol5wgfxwn 267113 267112 2026-05-18T10:05:49Z AllaBuraya 79455 267113 wikitext text/x-wiki {{Название учебника |Категория = Дифференциальные уравнения |Тип = Одностраничный }} Дифференциальные уравнения, являясь подмножеством функциональных уравнений, довольно редко допускают аналитическое решение. В подобных ситуациях для их приближённого решения применяют численные методы. Численные методы не могут дать решения дифференциальной задачи, но могут обеспечить некоторое приближение к такому решению. Часто для получения такого приближения используют т. н. сеточную аппроксимацию функций. То есть вместо функций непрерывного аргумента вводят функции дискретного аргумента. А вместо дифференциальных операторов — разностные. Будем называть параметром сетки такую величину <math>h</math>, что расстояние между любыми двумя соседними узлами сетки не превосходит h. == Гиперболические уравнения == === Введение === Системы гиперболических уравнений возникают во многих задачах вычислительной физики. Хороший проработанный пример — газовая динамика. В приложениях часто используются гиперболические системы уравнений, представляемые в виде: <math> \frac{\partial \vec U}{\partial t} + \sum_{j=1}^m A_j\frac{\partial \vec U}{\partial x_j} = \vec b </math> Где матрица <math>A</math> имеет полный набор собственных векторов и, соответственно, представима в виде <math> A=\Omega_R \Lambda \Omega_L </math> Где <math> \Omega_R=\Omega_L^{-1}</math> — матрица, составленная из правых собственных векторов матрицы <math>A</math> как из столбцов. <math>\Lambda=diag[\lambda_1,\lambda_2,...,\lambda_n]</math> — матрица собственных значений матрицы <math>A</math>. Эта форма записи называется неконсервативной, в противовес не менее часто используемой консервативной форме, связанной с физическими законами сохранения в явном виде: <math> \frac{\partial \vec U}{\partial t} + \sum_{j=1}^m \frac{\partial F_j(\vec U)}{\partial x_j} = \vec B </math> Дело в том, разностная схема для консервативной формы уравнений, записанная в виде <math> \frac{\vec U^{n+1}_{\vec r}-\vec U^n_{\vec r}}{\delta t} + \sum_{j=1}^m \frac{F_{j,\vec r+1/2\vec h_j} - F_{j,\vec r-1/2\vec h_j} }{h_j} = \vec B_{\vec r} </math> автоматически гарантирует точное выполнение на приближенном решении законов сохранения, в то время как разностные соотношения, получаемые из неконсервативной формы, соблюдают законы сохранения лишь приближенно - в рамках аппроксимации. === Разностные схемы === Простейшим и исходным объектом исследования в теории систем гиперболических уравнений является одиночное уравнение переноса: <math>\frac{\partial U}{\partial t}+\lambda\frac{\partial U}{\partial x}=0</math> Где <math>U</math> — искомая функция переменных <math>(x,t)</math>. <math>\lambda</math> — некоторая постоянная. Это уравнение очень удобно уже тем, что нам хорошо известно его аналитическое решение: <math>U(x,t)=U_0(x-\lambda t)</math> где <math>U_0(x)</math> — произвольная функция. Первый вопрос, который возникает — а зачем численно решать уравнение, для которого известно аналитическое решение? Ответ прост — дело в том, что это уравнение будет «вылезать» из решения сложных многомерных систем, и параметры, которые в него входят будут меняться в зависимости от решения да и заданы будут не всюду, а лишь в некоторых точках, что делает прямое применение аналитического решения невозможным. Итак, приступим к построению простейшей схемы для данного уравнения. Пусть функция <math>U</math> задана на узлах пространственной сетки <math>x_m</math> в момент времени <math>t_n</math> и мы хотим получить ее значения в тех же узлах в момент <math>t_{n+1}</math>. Воспользуемся простейшими формулами для аппроксимации производных и получим: <math> \frac{U^{n+1}_m-U^n_m}{\tau} + \lambda \frac{U^n_m-U^n_{m-1}}{h} = 0 </math> Тогда для значения <math>U^{n+1}_m</math> может быть выписано выражение в явном виде: <math> U^{n+1}_m=U_m^n-\tau \lambda \frac{U^n_m-U^n_{m-1}}{h} </math> Эта простейшая схема может быть легко реализована и запущена. См [[/Реализация на Fortran-e|пункт реализация]]. Приведенная схема не работает при <math>\lambda<0</math>. Ответ достаточно очевиден — «перенос» справа налево не работает в схеме, в которой нет точек справа. Хотелось бы добавить в схему что-то вроде <math>U_{m+1}</math>. Как это сделать? Простейший способ — построить «комбинированную» схему: <math> U^{n+1}_m=U_m^n-\tau \lambda \frac{U^n_m-U^n_{m-1}}{h}, \lambda\ge 0 </math> <math> U^{n+1}_m=U_m^n-\tau \lambda \frac{U^n_{m+1}-U^n_m}{h}, \lambda<0 </math> === Литература === * Куликовский А. Г., Погорелов Н. В., Семенов А. Ю. Математические вопросы численного решения гиперболических систем уравнений. — М.:ФИЗМАТЛИТ,2001. — 608с. — ISBN 5-9221-0194-3 qvvvgxybjohrtc4m9wmth5678gm1bhj Дифференциальные уравнения 0 8114 267086 259122 2026-05-17T17:42:44Z AllaBuraya 79455 added [[Category:Математика]] using [[Help:Gadget-HotCat|HotCat]] 267086 wikitext text/x-wiki {{Название учебника |Категория = Математический анализ|Тип = Многостраничный}} == Аннотация == В данном учебнике раскрываются методы решения некоторых типов обыкновенных дифференциальных уравнений. Объяснение основывается на примерах из физики. Для понимания текста необходимо знание понятий ''производная'', ''первообразная'', ''интеграл'', а также, умение вычислять производные элементарных функций и простейшие интегралы. Обо всем этом можно прочитать в учебнике для средней школы.<ref>''А. Н. Колмогоров, А. М. Абрамов, Ю. П. Дудницын, Б. М. Ивлев, С. И. Шварцбург'' Алгебра и начала анализа. 10-11 класс. — М.: Просвещение, 2007. — 384 с. ISBN 978-5-09-017286-8</ref> {{Содержание |width = 100% | * [[/Понятие дифференциального уравнения|Понятие дифференциального уравнения]] * [[/Дифференциальные уравнения с разделяющимися переменными|Дифференциальные уравнения с разделяющимися переменными]] * [[/Литература|Литература]] }} == Примечания == {{примечания}} [[Категория:Математика]] sypdwd5vmksr6cq9gwmh0yoqtacofxo 267087 267086 2026-05-17T17:43:46Z AllaBuraya 79455 в Дифференциальные уравнения 267087 wikitext text/x-wiki {{Название учебника |Категория = Дифференциальные уравнения|Тип = Многостраничный}} == Аннотация == В данном учебнике раскрываются методы решения некоторых типов обыкновенных дифференциальных уравнений. Объяснение основывается на примерах из физики. Для понимания текста необходимо знание понятий ''производная'', ''первообразная'', ''интеграл'', а также, умение вычислять производные элементарных функций и простейшие интегралы. Обо всем этом можно прочитать в учебнике для средней школы.<ref>''А. Н. Колмогоров, А. М. Абрамов, Ю. П. Дудницын, Б. М. Ивлев, С. И. Шварцбург'' Алгебра и начала анализа. 10-11 класс. — М.: Просвещение, 2007. — 384 с. ISBN 978-5-09-017286-8</ref> {{Содержание |width = 100% | * [[/Понятие дифференциального уравнения|Понятие дифференциального уравнения]] * [[/Дифференциальные уравнения с разделяющимися переменными|Дифференциальные уравнения с разделяющимися переменными]] * [[/Литература|Литература]] }} == Примечания == {{примечания}} [[Категория:Математика]] 87zon6nxeurhjwn1jy3djruhlqjdlqv 267095 267087 2026-05-17T17:55:00Z AllaBuraya 79455 267095 wikitext text/x-wiki {{Название учебника |Категория = Дифференциальные уравнения |Тип = Многостраничный }} {{wikipedia|Дифференциальные уравнения}} В данном учебнике раскрываются методы решения некоторых типов обыкновенных дифференциальных уравнений. Объяснение основывается на примерах из физики. Для понимания текста необходимо знание понятий ''производная'', ''первообразная'', ''интеграл'', а также, умение вычислять производные элементарных функций и простейшие интегралы. Обо всем этом можно прочитать в учебнике для средней школы.<ref>''А. Н. Колмогоров, А. М. Абрамов, Ю. П. Дудницын, Б. М. Ивлев, С. И. Шварцбург'' Алгебра и начала анализа. 10-11 класс. — М.: Просвещение, 2007. — 384 с. ISBN 978-5-09-017286-8</ref> == Содержание == * [[/Понятие дифференциального уравнения|Понятие дифференциального уравнения]] * [[/Дифференциальные уравнения с разделяющимися переменными|Дифференциальные уравнения с разделяющимися переменными]] * [[/Литература|Литература]] == Примечания == {{примечания}} [[Категория:Математика]] [[Категория:Дифференциальные уравнения]] m0bkofkhu348503cum72k2myaez81i9 Категория:Украинская кухня 14 8470 267078 250620 2026-05-17T16:57:06Z Новостной арбуз 79464 267078 wikitext text/x-wiki {{Wikipedia}} [[Категория:Славянская кухня]] [[Категория:Европейская кухня]] 68ecwipcckongllpa9xcd0yxnk38u0k Викиучебник:Как писать учебники и руководства 4 15446 267101 258613 2026-05-17T18:15:07Z AllaBuraya 79455 Полки 267101 wikitext text/x-wiki {{Навигация}} {{Эссе}} {{Вкратце | Спешите поделиться собственной инструкцией по использованию новейшей JRH Foozilla 4.2 или решению линейных уравнений с одной неизвестной? [[#Создание нового учебника |Добро пожаловать!]] | Заметили ошибку в оформлении (орфографии, терминологии, …)? [[w:Википедия:Правьте смело |Правьте смело!]] | Очень нужная и полезная страница предложена к удалению? [[#Организационная деятельность |Примите участие в обсуждении!]] }} Принести пользу Викиучебнику по силам любому желающему. Здесь мы рассмотрим, <em >как именно</em> это можно сделать, — а заодно и как извлечь пользу <em >из</em> участия в проекте. == Два направления работы == Как и в других проектах [[w:Фонд Викимедиа |Фонда Викимедиа]], участие в Викиучебнике представлено двумя основными направлениями: * «тематическим» — [[#Создание нового учебника |созданием новых учебников]], дополнением существующих новым материалом (включая ссылки на ''авторитетные источники'' и иллюстрации), исправлением фактических ошибок; * «организационным» — выявлением и устранением существующих проблем в оформлении (и, в меньшей степени, — содержании) учебных материалов, поддержкой «вспомогательных» страниц, участием в обсуждениях, выполнением [[Викиучебник:Администраторы |административных действий]], {{lang |en|etc.}} Тем не менее, ''первичная цель'' в обоих случаях остается неизменной — сделать материалы проекта более ценными для читателей и создателей производных работ, а также сделать использование этих материалов и участие в работе над ними более удобным для тех, кому это может быть интересно. Участники, разумеется, могут преследовать собственные цели. В случае «тематического» направления, такой целью может быть получение критики на собственную работу, или же просто обеспечение к ней доступа всех заинтересованных лиц. Материалы, важные для профессиональной деятельности, конечно, можно опубликовать на «сетевых ресурсах» предприятия, но сколь прост будет к ним доступ «извне»? Напротив, материалы Викиучебника доступны едва ли не из любой точки мира и едва ли не с любого «сетевого» устройства. «Организационное» направление, по-видимому, будет наиболее интересным участникам-читателям, поскольку позволяет сделать поиск и чтение материалов более удобным, а также может привлечь к проекту новых авторов и, следовательно, — новый материал. == Полки == В Викиучебнике учебные пособия размещаются на полках. Проверьте, есть ли для вашего учебника подходящая полка на странице [[Викиучебник:Каталог учебников/Список]]. == Создание нового учебника == Для создания нового учебника по конкретной теме крайне желательно наличие некоторого опыта в объяснении этой самой темы, — не важно, в «формальной обстановке» или «неформальной». Тем не менее, к созданию учебника можно приступить в любом случае, а в случае вопросов обратиться на [[Викиучебник:Общий форум|форум]]. === Новый учебник, или? === Перед внесением материала в проект следует проверить наличие близких по теме учебников или разделов — возможно, материал будет более уместен как новый раздел уже существующего учебника? Одновременно с этим можно будет выяснить название подходящих для нового учебника [[Викиучебник:Категоризация |тематических категорий.]] Удостоверьтесь также, что предлагаемый материал соответствует [[Викиучебник:Что такое Викиучебник |основным принципам]] именно <em >данного</em> проекта. Размещаемый здесь материал должен отвечать на вопрос «как?». В некоторых случаях, материал может подойти другим проектам [[w:Фонд Викимедиа |Фонда]]: * [[w: |Википедии]] — если материал отвечает на вопрос «что такое?». Туда подойдут материалы описательного характера, описывающие какой-либо объект. * [[v: |Викиверситету]] — подойдут любые исследовательские и обучающие материалы: учебные курсы и методические указания, работы учащихся и требования к их оформлению, списки экзаменационных вопросов и списки литературы для подготовки; * [[s: |Викитеке]] — опубликованные («в печати») свободные работы — в том числе учебники и руководства, <em >а также их переводы</em> — не исключая и выполненные самими участниками Викитеки. Различие между Викитекой и Викиучебником прежде всего заключается в том, что в Викиучебнике изначально пишут свободные учебники. * [[q: |Викицитатнику]] — сборники цитат (по авторству, теме, произведению); * [[voy: |Викигиду]] — путеводители по городам и странам; * [[wikt: |Викисловарю]] — словарные статьи; * [[n: |Викиновостям]] — новости. <strong >Обратите внимание</strong>, что критерием освоения некоторых дисциплин (в частности, в сфере истории, филологии, философии) является знакомство ''с первоисточниками и критическими материалами'' по теме. ''Учебником'' по таким дисциплинам может оказаться, например, [[Викиучебник:Что такое Викиучебник#Что такое Викиучебник |собрание сочинений Шекспира]] (на правах ''первоисточника'') или сборник статей Википедии (как изложение идей, содержащихся ''в критике''.) Уместность материалов такого рода в Викиучебнике является предметом споров. По-видимому, первоисточники (в том числе аннотированные) следует в первую очередь предлагать Викитеке; обзор критики — Википедии; «практические задания» — Викиверситету. Викиучебник может служить разве что «инкубатором» для таких материалов. === Выбор названия === В названии учебника следует отразить конкретный ''предмет'' (умение, навык), которым (по мнению авторов) можно овладеть изучая его. Определенные усилия следует приложить к тому, чтобы название учебника не вводило в заблуждение — не использовало неоднозначных терминов и не было слишком уж общим. Так, название ''Ядро Linux'' будет уместно лишь для учебника, в котором рассмотрена сборка данного ядра, в деталях разобрано его внутреннее устройство, приведены примеры написания новых компонент и публикации разного рода изменений в рассылках разработчиков, использования команднострочных средств — а равно и файловых систем <code >/proc</code> и <code >/sys</code> — для настройки и извлечения разнообразной информации. <strong >Обратите внимание</strong>, что создание учебника автоматически резервирует [[Викиучебник:Категоризация#Категории страниц учебника |одноименную категорию]] для его страниц. Как следствие, создание учебника с названием, например, ''Бокрский язык'' сделает невозможным создание с таким названием <em >тематической</em> категории. Поэтому, для новых учебников следует, по-возможности, использовать более развернутые названия (например: ''Разговорник бокрского языка''.). Тем не менее, в случае если это единственный учебник в данной категории - проблемы не возникают. Если возникают сомнения относительно <em >названия</em> нового учебника или уместности нового материала в существующем учебнике, можно разместить материал [[Викиучебник:Личная страница участника |в «личном пространстве»]] и запросить мнение сообщества, — например, [[Викиучебник:Общий форум |на общем форуме.]]. Тем не менее, на данный момент рекомендуется все же создавать учебник сразу в основном пространстве. === Одностраничный учебник === Готовые материалы небольшого объема (в пределах порядка 2000‒5000 слов) допустимо размещать «одной страницей». Для этого (предполагая использование «типового» ''пользовательского агента Всемирной паутины'') можно воспользоваться следующим рецептом. * Воспользуйтесь [[ВУ:МС|мастером статей]] для создания учебника. Там же вы можете выбрать название и ознакомится с основными правилами Викиучебника. * Разместите материал на странице согласно следующему образцу. <pre> {{Название учебника |Категория = (Впишите сюда категорию вашего учебника) |Описание = (Описание учебника одним предложением) |Готовность = (0%, 25%, 75% или 100% степени готовности) }} В данном учебнике мы рассмотрим… (краткое — в пределах 150 слов — описание предмета учебника, принятого автором подхода к изложению.) == Часть 1 == Текст == Часть 2 == Текст == Часть 3 == Текст == Примечания == {{tl |Примечания}} </pre> * Используйте функцию ''предварительного просмотра'' для проверки корректности оформления нового материала. После внесения материала его желательно повторно просмотреть и устранить обнаруженные дефекты.</p></li> === Многостраничный учебник === Для материалов (предполагаемого) объема порядка 2000 слов и более следует создавать многостраничные учебники, для чего подойдет следующий рецепт. * Воспользуйтесь [[Викиучебник:МС|мастером статей]] для создания учебника. Там же вы можете выбрать название и ознакомится с основными правилами Викиучебника. * Создайте «главную страницу» учебника согласно следующему образцу. <pre> {{Название учебника |Категория = (Впишите сюда категорию вашего учебника) |Описание = (Описание учебника одним предложением) |Готовность = (0%, 25%, 75% или 100% степени готовности) }} В данном учебнике мы рассмотрим… (краткое — в пределах 150 слов — описание предмета учебника, принятого автором подхода к изложению, {{lang |en|etc.}})</span> == Содержание == [[/Глава 1|Глава 1]] [[/Глава 2|Глава 2]] [[/Глава 3|Глава 3]] [[/Глава 4|Глава 4]] [[/Глава 5|Глава 5]] или [[/Глава 1|Глава 1]] [[/Часть 1|Часть 1]] [[/Часть 2|Часть 2]] [[/Глава 2|Глава 2]] </pre> Если количество разделов — невелико, на ''главы'' материал можно не делить. С другой стороны, если материал достаточно дифференцирован, можно использовать ''двухуровневую'' систему наименования страниц учебника — <code >Название учебника/Главы́/Раздела</code>. Тем не менее, все же рекомендуется все главы писать как <code >Название учебника/Главы́</code> и добавляя подразделы только в содержании (см пример выше). *Используйте функцию ''предварительного просмотра'' для проверки корректности оформления страницы. *Воспользуйтесь ссылкой на какой-либо из несуществующих разделов учебника для его создания. Оформить страницу раздела можно соответственно данному выше [[#оформление страницы |образцу оформления]] одностраничного учебника, <em >обязательно используя,</em> {{tl |Готовность}}. «Аннотация» в начале страницы, разумеется, также должна относится к материалу данной отдельной страницы, а не учебника в целом. *После создания (дополнения) раздела — проверьте актуальность шаблона {{tl |Стадия кор}} в «Содержании» на «главной странице» учебника. === Перенос материала из других проектов === Содержание других проектов [[w:Фонд Викимедиа |Фонда]] также доступно (как правило) на условиях принятой в Викиучебнике лицензии [[:w:CC BY-SA|CC BY-SA]] 4.0 (или же на условиях менее строгих CC-BY или CC0), что позволяет сравнительно свободно ''заимствовать'' такой материал в данном проекте. Следует помнить, однако, что лицензии [[w:Creative Commons |Creative Commons]] требуют сохранения информации об ''авторстве'' материала. Для чего, в свою очередь, следует «взять на вооружение» следующие простые правила: # всегда указывать ''источник'' заимствования; ''желательно'' — в ''кратком описании'' соответствующего изменения (например: ''Перенесено из [[<nowiki />w:42 (число)]].''); если этого по какой-либо причине не было сделано, ''допустимо'' указать источник на «странице обсуждения»; # если переносимый материал подлежит удалению <em >из истории</em> исходного проекта (как, например, при удалении из проекта исходной страницы в целом), для сохранения авторства необходимо перенести ''полную историю изменений'' исходной страницы; сделать это может любой администратор по запросу участника на странице [[Викиучебник:Запросы к администраторам]]. Эти же правила применимы и при переносе материала между страницами Викиучебника, а равно и при заимствовании доступных на условиях CC BY-SA 4.0 (или менее строгих CC BY, CC0, {{lang |la|etc.}}) материалов любых других ресурсов Всемирной паутины; в последнем случае — с той лишь оговоркой, что необходимая информация об источнике и авторстве может оказаться слишком подробной для ''краткого описания.'' При этом, такую информацию ''необходимо'' привести на «странице обсуждения». Наконец, для заимствования материалов, условия распространения которых неизвестны или несовместимы с CC BY-SA 4.0, ''необходимо'' получить разрешение правообладателя [[w:Википедия:Получение разрешений |по форме OTRS]]. === Степень готовности === ''Степень готовности'' учебников и составляющих их страниц указывается, с одной стороны, чтобы помочь читателю выбрать наиболее подходящий материал, с другой — как способ информирования участников о возможных направлениях улучшения материала. Определять степень готовности можно по-разному. Следующие соображения, однако, представляются применимыми в наиболее общем случае: # степень готовности должна прямо следовать из соответствия фактически представленного материала — заявленному в «аннотации»; предполагается, что <em >оценить</em> степень такого соответствия может любой знакомый с предметом участник проекта; # по-видимому, степень готовности учебника в целом <em >не должна превышать</em> степени готовности любого из ''основных разделов''; # решение о том, какие разделы считать «основными», принимается опять-таки на основании их соответствия «аннотации» к учебнику; в спорных случаях — решение остается за ''сообществом редакторов'' конкретного учебника. == Организационная деятельность == Любая «организационная деятельность» начинается с обсуждений. Тем участникам, которым она интересна, следует обратить внимание на следующие страницы. * [[Викиучебник:Общий форум]] * [[Викиучебник:К удалению]] ([[:Категория:Викиучебник:Незакрытые обсуждения удаления страниц |текущие обсуждения]] '''·''' [[Special:PrefixIndex/Викиучебник:К удалению/ |полный список]].) * [[Викиучебник:Запросы к администраторам]] * [[Викиучебник:К переименованию]] ([[:Категория:Викиучебник:Незакрытые обсуждения переименования страниц |текущие обсуждения]] '''·''' [[Special:PrefixIndex/Викиучебник:К переименованию/ |полный список]].) * [[Викиучебник:К восстановлению]] Следующие страницы также существуют в проекте, однако по различным причинам фактически не используются. * [[Викиучебник:Форум администраторов]] — коль скоро в проекте активны лишь два [[Викиучебник:Администраторы |администратора,]] для обсуждения возникающих между ними вопросов им вполне хватает личных «страниц обсуждения». * [[Викиучебник:Планы и заявки]] — изначально предназначалась для информирования сообщества о (планируемом) размещении нового материала и поиска заинтересованных в работе над ним. В настоящее время для этой цели, как правило, используется [[Викиучебник:Общий форум |общий форум.]] <strong >Обратите внимание</strong>, что ввиду сравнительно небольшой активности в проекте в целом, однотипные изменения количеством от пяти и более уже могут считаться ''массовыми'' и требовать предварительного согласования с сообществом Викиучебника (через [[Викиучебник:Общий форум |общий форум]]), — или ''сообществом редакторов учебника,'' если предполагаемые изменения затрагивают лишь один конкретный учебник. Разумеется, чтобы успешно применять и улучшать правила и руководства проекта, следует для начала их изучить, для чего будет полезно обратиться к странице [[Викиучебник:Список правил и руководств]] и категории [[:Категория:Викиучебник:Правила и руководства]]. Отметим отдельно, что хотя опыт участия в других проектах [[w:Фонд Викимедиа |Фонда]] может оказаться полезным и в Викиучебнике, отдельные правила, а равно и практика их применения, могут существенно отличаться. Так, например, правило [[w:Википедия:Чем не является Википедия#Не инструкция |«не инструкция»]] Википедии к Викиучебнику применимо [[Викиучебник:Что такое Викиучебник#Викиучебник — не энциклопедия |лишь с обратным знаком.]] === Категоризация === : См. также: [[Викиучебник:Категоризация]], [[Викиучебник:Шаблоны]]. Для отнесения страниц основного пространства к тематическим и служебным категориям используется ряд шаблонов:<s>{{tl |Темы}}, {{tl |Готовность}} и {{tl |BookCat}}</s>, но так как {{tl|Название учебника}} теперь поддерживает всю катетеризацию внутри себя (включая все эти шаблоны), 3 этих шаблона теперь стали неактуальны - просьба, не использовать их при категоризации. Викиучебник постоянно развивается и накопленным материалам может стать «тесно» в рамках единой ''темы''. В таком случае, может быть полезно выделить часть из них в новую тему — для создания которой применим нижеследующий рецепт. Этот же рецепт будет полезен и в случае, когда для конкретной темы не создано ''категории всех учебников'' или страницы в пространстве [[Special:PrefixIndex/Полка: |Полка:]]. (Что, отметим, весьма вероятно — коль скоро используемые на таких страницах шаблоны существуют в проекте лишь с декабря 2014 г.) <ol> <li ><p >Воспользуйтесь [[Служебная:Поиск |поиском]], включив в него в том числе пространство имен [[Special:PrefixIndex/Категория: |Категория:]] — не исключено, что подходящая или достаточно близкая тема уже существует.</p></li> <li ><p >Создайте новую страницу с именем вида <code >Категория:<var >Название темы</var></code> по следующему образцу.</p> {{do wrap |Описание темы, со ссылкой на одноименную страницу в пространстве имен [[Special:PrefixIndex/Полка: |Полка:]] — <code ><nowiki >'''</nowiki>[[<nowiki />Полка:<var >Название темы</var> |<var >текст ссылки</var>]]<nowiki >'''</nowiki></code>.| elt = var}} [[<nowiki />Категория:<var >Первая родительская тема</var>]] [[<nowiki />Категория:<var >Вторая родительская тема</var>]] {{do wrap |Ссылки на данную категорию в других языковых разделах — если существуют.| elt = var}} <p >Здесь же можно применить и шаблон {{tl |Нав}} — в случае, если аналогичные категории существуют и в других проектах [[w:Фонд Викимедиа |Фонда Викимедиа.]]</p> <p ><strong >Обратите внимание</strong>, что существующие в проекте шаблоны, поддерживающие пространство [[Special:PrefixIndex/Полка: |Полка:]], не позволяют отнести какую-либо тему более чем к двум родительским. (В случае необходимости, это ограничение можно обойти создав «дерево» или «цепь» тем.)</p></li> <li ><p >Создайте также страницу ''категории всех учебников'' для данной темы — <code >Категория:<var >Название темы</var>/все учебники</code> — следующего содержания:</p> {{tl |Категория всех}}&lt;noinclude&gt; {{do wrap |&lt;!-- Пожалуйста добавляйте ссылки на другие языковые разделы ниже. Спасибо. --&gt;}} &lt;/noinclude&gt; </li> <li ><p >Наконец, создайте для данной темы страницу в пространстве [[Special:PrefixIndex/Полка: |Полка:]] — <code >Полка:<var >Название темы</var></code>, взяв за основу следующий образец.</p> {{<nowiki />[[Шаблон:Страница темы |Страница темы]] | родитель = {{do wrap |Первая родительская тема| elt = var}} | родитель2 = {{do wrap |Вторая родительская тема| elt = var}} | описание = {{do wrap |Описание темы, со ссылкой на подходящую статью Википедии — <code ><nowiki >'''</nowiki>[[<nowiki />w:<var >Статья</var> |<var >текст ссылки</var>]]<nowiki >'''</nowiki></code>.| elt = var}} }}&lt;noinclude&gt; {{do wrap |&lt;!-- Пожалуйста добавляйте категории и ссылки на другие языковые разделы ниже. Спасибо. --&gt;}} &lt;/noinclude&gt; </li> <li ><p >На всех этапах выше полезно использовать функцию ''предварительного просмотра'' для проверки корректности оформления создаваемых страниц.</p></li> </ol> == Ссылки на Викиучебник из Википедии == После создания материала в Викиучебнике будет полезно установить его связь с другими проектами. Например, чтобы пользователи Википедии могли быстро перейти к инструкции либо рецепту, находящимся в Викиучебнике. === Ссылка на рецепт === Для вставки в статью в Википедии можно использовать два способа: шаблон Блюдо (пример [[w:Плов|Плов]]) либо конструкцию <nowiki>{{Викиучебник}}</nowiki> (пример [[w:Холодник|Холодник]]). При вставке с использованием шаблона Блюдо ссылка добавляется в нижнюю часть карточки и сопровождается текстом "Рецепт в Викиучебнике". Правильным подходом будет добавить ссылку на статью в Викиучебнике в объект Викиданных (карточка-шаблоном "Блюдо" поддерживает работу с ними). Если по каким-то причинам Викиданные не получается изменить, то можно указать ссылку на статью явно с помощью ключа в шаблоне Блюдо либо через шаблон Викиучебник. Одним из критериев для отнесения рецепта в Викиучебнике к [[Викиучебник:Кулинарная_книга/Хорошие_рецепты|категории хороших]] является наличие ссылки на него в Википедии. === Ссылка с прочих статей === Вставка конструкции <nowiki>{{Викиучебник}}</nowiki> в тело статьи в Википедии. Информация для работы этого шаблона извлекается из Викиданных. === Административные обсуждения === Помочь решению «административных» вопросов может любой опытный участник — потратив собственное время и силы на оформление так называемого «предварительного итога» по конкретному обсуждению, а также, возможно, — устранив проблему или проблемы, явившиеся основанием для исходного запроса. Никаких особых «технических привилегий» («флагов») для этого не требуется. В некоторых случаях, [[Викиучебник:К удалению |запрос на удаление]] — или [[Викиучебник:Запросы к администраторам |запрос к администраторам]] в общем — может быть полностью исчерпан действиями непривилегированного участника. В таких случаях, администратору остается лишь формально «утвердить» итог и завершить обсуждение. Чтобы возразить против принятых администратором <em >действий,</em> следует переименовать раздел ''Итог'' в ''Оспоренный итог'' и привести собственный вариант разрешения проблемы и доводы в его пользу — <strong >обязательно подкрепив их</strong> ссылками на правила, принципы, или ''административную практику'' Викиучебника, или же (в отсутствие таковых) — других проектов [[w:Фонд Викимедиа |Фонда Викимедиа.]] С другой стороны, комментарии (пожелания, предложения) по использованной в «итоге» <em >формулировке</em> следует оставлять на «странице обсуждения» подводящего итог администратора. <strong >Обратите внимание</strong>, что обсуждение формально считается закрытым с момента подведения итога участником с соответствующими привилегиями; продолжить такое обсуждение можно лишь ''оспорив'' итог как указано выше. В некоторых случаях, подводящий итог участник может установить шаблон {{tl |закрыто}} — как напоминание о завершении обсуждения (в частности — при подведении итога после оспаривания.) В общем случае, однако, подобные шаблоны последовательно используются лишь для закрытия страниц в целом, а не отдельных обсуждений. Участникам, которым удается создавать новые запросы на выполнение административных действий чаще, чем администраторам удается подводить итоги по таким запросам, имеет смысл [[Викиучебник:Заявки на статус администратора |оформить заявку]] на получение привилегий администратора. == См. также == * [[Викиучебник:Что такое Викиучебник]] * [[Викиучебник:Справка]] * [[Викиучебник:Как использовать Викиучебник]] [[Категория:Викиучебник:Справка]] aq4ifxlumg7e86ut9gglvzr0y5m4puc 267103 267101 2026-05-17T18:16:32Z AllaBuraya 79455 /* Новый учебник, или? */ * [[n: |Викиновостям]] — новости. - текст исключен, потому что Викиновости закрыты 267103 wikitext text/x-wiki {{Навигация}} {{Эссе}} {{Вкратце | Спешите поделиться собственной инструкцией по использованию новейшей JRH Foozilla 4.2 или решению линейных уравнений с одной неизвестной? [[#Создание нового учебника |Добро пожаловать!]] | Заметили ошибку в оформлении (орфографии, терминологии, …)? [[w:Википедия:Правьте смело |Правьте смело!]] | Очень нужная и полезная страница предложена к удалению? [[#Организационная деятельность |Примите участие в обсуждении!]] }} Принести пользу Викиучебнику по силам любому желающему. Здесь мы рассмотрим, <em >как именно</em> это можно сделать, — а заодно и как извлечь пользу <em >из</em> участия в проекте. == Два направления работы == Как и в других проектах [[w:Фонд Викимедиа |Фонда Викимедиа]], участие в Викиучебнике представлено двумя основными направлениями: * «тематическим» — [[#Создание нового учебника |созданием новых учебников]], дополнением существующих новым материалом (включая ссылки на ''авторитетные источники'' и иллюстрации), исправлением фактических ошибок; * «организационным» — выявлением и устранением существующих проблем в оформлении (и, в меньшей степени, — содержании) учебных материалов, поддержкой «вспомогательных» страниц, участием в обсуждениях, выполнением [[Викиучебник:Администраторы |административных действий]], {{lang |en|etc.}} Тем не менее, ''первичная цель'' в обоих случаях остается неизменной — сделать материалы проекта более ценными для читателей и создателей производных работ, а также сделать использование этих материалов и участие в работе над ними более удобным для тех, кому это может быть интересно. Участники, разумеется, могут преследовать собственные цели. В случае «тематического» направления, такой целью может быть получение критики на собственную работу, или же просто обеспечение к ней доступа всех заинтересованных лиц. Материалы, важные для профессиональной деятельности, конечно, можно опубликовать на «сетевых ресурсах» предприятия, но сколь прост будет к ним доступ «извне»? Напротив, материалы Викиучебника доступны едва ли не из любой точки мира и едва ли не с любого «сетевого» устройства. «Организационное» направление, по-видимому, будет наиболее интересным участникам-читателям, поскольку позволяет сделать поиск и чтение материалов более удобным, а также может привлечь к проекту новых авторов и, следовательно, — новый материал. == Полки == В Викиучебнике учебные пособия размещаются на полках. Проверьте, есть ли для вашего учебника подходящая полка на странице [[Викиучебник:Каталог учебников/Список]]. == Создание нового учебника == Для создания нового учебника по конкретной теме крайне желательно наличие некоторого опыта в объяснении этой самой темы, — не важно, в «формальной обстановке» или «неформальной». Тем не менее, к созданию учебника можно приступить в любом случае, а в случае вопросов обратиться на [[Викиучебник:Общий форум|форум]]. === Новый учебник, или? === Перед внесением материала в проект следует проверить наличие близких по теме учебников или разделов — возможно, материал будет более уместен как новый раздел уже существующего учебника? Одновременно с этим можно будет выяснить название подходящих для нового учебника [[Викиучебник:Категоризация |тематических категорий.]] Удостоверьтесь также, что предлагаемый материал соответствует [[Викиучебник:Что такое Викиучебник |основным принципам]] именно <em >данного</em> проекта. Размещаемый здесь материал должен отвечать на вопрос «как?». В некоторых случаях, материал может подойти другим проектам [[w:Фонд Викимедиа |Фонда]]: * [[w: |Википедии]] — если материал отвечает на вопрос «что такое?». Туда подойдут материалы описательного характера, описывающие какой-либо объект. * [[v: |Викиверситету]] — подойдут любые исследовательские и обучающие материалы: учебные курсы и методические указания, работы учащихся и требования к их оформлению, списки экзаменационных вопросов и списки литературы для подготовки; * [[s: |Викитеке]] — опубликованные («в печати») свободные работы — в том числе учебники и руководства, <em >а также их переводы</em> — не исключая и выполненные самими участниками Викитеки. Различие между Викитекой и Викиучебником прежде всего заключается в том, что в Викиучебнике изначально пишут свободные учебники. * [[q: |Викицитатнику]] — сборники цитат (по авторству, теме, произведению); * [[voy: |Викигиду]] — путеводители по городам и странам; * [[wikt: |Викисловарю]] — словарные статьи; <strong >Обратите внимание</strong>, что критерием освоения некоторых дисциплин (в частности, в сфере истории, филологии, философии) является знакомство ''с первоисточниками и критическими материалами'' по теме. ''Учебником'' по таким дисциплинам может оказаться, например, [[Викиучебник:Что такое Викиучебник#Что такое Викиучебник |собрание сочинений Шекспира]] (на правах ''первоисточника'') или сборник статей Википедии (как изложение идей, содержащихся ''в критике''.) Уместность материалов такого рода в Викиучебнике является предметом споров. По-видимому, первоисточники (в том числе аннотированные) следует в первую очередь предлагать Викитеке; обзор критики — Википедии; «практические задания» — Викиверситету. Викиучебник может служить разве что «инкубатором» для таких материалов. === Выбор названия === В названии учебника следует отразить конкретный ''предмет'' (умение, навык), которым (по мнению авторов) можно овладеть изучая его. Определенные усилия следует приложить к тому, чтобы название учебника не вводило в заблуждение — не использовало неоднозначных терминов и не было слишком уж общим. Так, название ''Ядро Linux'' будет уместно лишь для учебника, в котором рассмотрена сборка данного ядра, в деталях разобрано его внутреннее устройство, приведены примеры написания новых компонент и публикации разного рода изменений в рассылках разработчиков, использования команднострочных средств — а равно и файловых систем <code >/proc</code> и <code >/sys</code> — для настройки и извлечения разнообразной информации. <strong >Обратите внимание</strong>, что создание учебника автоматически резервирует [[Викиучебник:Категоризация#Категории страниц учебника |одноименную категорию]] для его страниц. Как следствие, создание учебника с названием, например, ''Бокрский язык'' сделает невозможным создание с таким названием <em >тематической</em> категории. Поэтому, для новых учебников следует, по-возможности, использовать более развернутые названия (например: ''Разговорник бокрского языка''.). Тем не менее, в случае если это единственный учебник в данной категории - проблемы не возникают. Если возникают сомнения относительно <em >названия</em> нового учебника или уместности нового материала в существующем учебнике, можно разместить материал [[Викиучебник:Личная страница участника |в «личном пространстве»]] и запросить мнение сообщества, — например, [[Викиучебник:Общий форум |на общем форуме.]]. Тем не менее, на данный момент рекомендуется все же создавать учебник сразу в основном пространстве. === Одностраничный учебник === Готовые материалы небольшого объема (в пределах порядка 2000‒5000 слов) допустимо размещать «одной страницей». Для этого (предполагая использование «типового» ''пользовательского агента Всемирной паутины'') можно воспользоваться следующим рецептом. * Воспользуйтесь [[ВУ:МС|мастером статей]] для создания учебника. Там же вы можете выбрать название и ознакомится с основными правилами Викиучебника. * Разместите материал на странице согласно следующему образцу. <pre> {{Название учебника |Категория = (Впишите сюда категорию вашего учебника) |Описание = (Описание учебника одним предложением) |Готовность = (0%, 25%, 75% или 100% степени готовности) }} В данном учебнике мы рассмотрим… (краткое — в пределах 150 слов — описание предмета учебника, принятого автором подхода к изложению.) == Часть 1 == Текст == Часть 2 == Текст == Часть 3 == Текст == Примечания == {{tl |Примечания}} </pre> * Используйте функцию ''предварительного просмотра'' для проверки корректности оформления нового материала. После внесения материала его желательно повторно просмотреть и устранить обнаруженные дефекты.</p></li> === Многостраничный учебник === Для материалов (предполагаемого) объема порядка 2000 слов и более следует создавать многостраничные учебники, для чего подойдет следующий рецепт. * Воспользуйтесь [[Викиучебник:МС|мастером статей]] для создания учебника. Там же вы можете выбрать название и ознакомится с основными правилами Викиучебника. * Создайте «главную страницу» учебника согласно следующему образцу. <pre> {{Название учебника |Категория = (Впишите сюда категорию вашего учебника) |Описание = (Описание учебника одним предложением) |Готовность = (0%, 25%, 75% или 100% степени готовности) }} В данном учебнике мы рассмотрим… (краткое — в пределах 150 слов — описание предмета учебника, принятого автором подхода к изложению, {{lang |en|etc.}})</span> == Содержание == [[/Глава 1|Глава 1]] [[/Глава 2|Глава 2]] [[/Глава 3|Глава 3]] [[/Глава 4|Глава 4]] [[/Глава 5|Глава 5]] или [[/Глава 1|Глава 1]] [[/Часть 1|Часть 1]] [[/Часть 2|Часть 2]] [[/Глава 2|Глава 2]] </pre> Если количество разделов — невелико, на ''главы'' материал можно не делить. С другой стороны, если материал достаточно дифференцирован, можно использовать ''двухуровневую'' систему наименования страниц учебника — <code >Название учебника/Главы́/Раздела</code>. Тем не менее, все же рекомендуется все главы писать как <code >Название учебника/Главы́</code> и добавляя подразделы только в содержании (см пример выше). *Используйте функцию ''предварительного просмотра'' для проверки корректности оформления страницы. *Воспользуйтесь ссылкой на какой-либо из несуществующих разделов учебника для его создания. Оформить страницу раздела можно соответственно данному выше [[#оформление страницы |образцу оформления]] одностраничного учебника, <em >обязательно используя,</em> {{tl |Готовность}}. «Аннотация» в начале страницы, разумеется, также должна относится к материалу данной отдельной страницы, а не учебника в целом. *После создания (дополнения) раздела — проверьте актуальность шаблона {{tl |Стадия кор}} в «Содержании» на «главной странице» учебника. === Перенос материала из других проектов === Содержание других проектов [[w:Фонд Викимедиа |Фонда]] также доступно (как правило) на условиях принятой в Викиучебнике лицензии [[:w:CC BY-SA|CC BY-SA]] 4.0 (или же на условиях менее строгих CC-BY или CC0), что позволяет сравнительно свободно ''заимствовать'' такой материал в данном проекте. Следует помнить, однако, что лицензии [[w:Creative Commons |Creative Commons]] требуют сохранения информации об ''авторстве'' материала. Для чего, в свою очередь, следует «взять на вооружение» следующие простые правила: # всегда указывать ''источник'' заимствования; ''желательно'' — в ''кратком описании'' соответствующего изменения (например: ''Перенесено из [[<nowiki />w:42 (число)]].''); если этого по какой-либо причине не было сделано, ''допустимо'' указать источник на «странице обсуждения»; # если переносимый материал подлежит удалению <em >из истории</em> исходного проекта (как, например, при удалении из проекта исходной страницы в целом), для сохранения авторства необходимо перенести ''полную историю изменений'' исходной страницы; сделать это может любой администратор по запросу участника на странице [[Викиучебник:Запросы к администраторам]]. Эти же правила применимы и при переносе материала между страницами Викиучебника, а равно и при заимствовании доступных на условиях CC BY-SA 4.0 (или менее строгих CC BY, CC0, {{lang |la|etc.}}) материалов любых других ресурсов Всемирной паутины; в последнем случае — с той лишь оговоркой, что необходимая информация об источнике и авторстве может оказаться слишком подробной для ''краткого описания.'' При этом, такую информацию ''необходимо'' привести на «странице обсуждения». Наконец, для заимствования материалов, условия распространения которых неизвестны или несовместимы с CC BY-SA 4.0, ''необходимо'' получить разрешение правообладателя [[w:Википедия:Получение разрешений |по форме OTRS]]. === Степень готовности === ''Степень готовности'' учебников и составляющих их страниц указывается, с одной стороны, чтобы помочь читателю выбрать наиболее подходящий материал, с другой — как способ информирования участников о возможных направлениях улучшения материала. Определять степень готовности можно по-разному. Следующие соображения, однако, представляются применимыми в наиболее общем случае: # степень готовности должна прямо следовать из соответствия фактически представленного материала — заявленному в «аннотации»; предполагается, что <em >оценить</em> степень такого соответствия может любой знакомый с предметом участник проекта; # по-видимому, степень готовности учебника в целом <em >не должна превышать</em> степени готовности любого из ''основных разделов''; # решение о том, какие разделы считать «основными», принимается опять-таки на основании их соответствия «аннотации» к учебнику; в спорных случаях — решение остается за ''сообществом редакторов'' конкретного учебника. == Организационная деятельность == Любая «организационная деятельность» начинается с обсуждений. Тем участникам, которым она интересна, следует обратить внимание на следующие страницы. * [[Викиучебник:Общий форум]] * [[Викиучебник:К удалению]] ([[:Категория:Викиучебник:Незакрытые обсуждения удаления страниц |текущие обсуждения]] '''·''' [[Special:PrefixIndex/Викиучебник:К удалению/ |полный список]].) * [[Викиучебник:Запросы к администраторам]] * [[Викиучебник:К переименованию]] ([[:Категория:Викиучебник:Незакрытые обсуждения переименования страниц |текущие обсуждения]] '''·''' [[Special:PrefixIndex/Викиучебник:К переименованию/ |полный список]].) * [[Викиучебник:К восстановлению]] Следующие страницы также существуют в проекте, однако по различным причинам фактически не используются. * [[Викиучебник:Форум администраторов]] — коль скоро в проекте активны лишь два [[Викиучебник:Администраторы |администратора,]] для обсуждения возникающих между ними вопросов им вполне хватает личных «страниц обсуждения». * [[Викиучебник:Планы и заявки]] — изначально предназначалась для информирования сообщества о (планируемом) размещении нового материала и поиска заинтересованных в работе над ним. В настоящее время для этой цели, как правило, используется [[Викиучебник:Общий форум |общий форум.]] <strong >Обратите внимание</strong>, что ввиду сравнительно небольшой активности в проекте в целом, однотипные изменения количеством от пяти и более уже могут считаться ''массовыми'' и требовать предварительного согласования с сообществом Викиучебника (через [[Викиучебник:Общий форум |общий форум]]), — или ''сообществом редакторов учебника,'' если предполагаемые изменения затрагивают лишь один конкретный учебник. Разумеется, чтобы успешно применять и улучшать правила и руководства проекта, следует для начала их изучить, для чего будет полезно обратиться к странице [[Викиучебник:Список правил и руководств]] и категории [[:Категория:Викиучебник:Правила и руководства]]. Отметим отдельно, что хотя опыт участия в других проектах [[w:Фонд Викимедиа |Фонда]] может оказаться полезным и в Викиучебнике, отдельные правила, а равно и практика их применения, могут существенно отличаться. Так, например, правило [[w:Википедия:Чем не является Википедия#Не инструкция |«не инструкция»]] Википедии к Викиучебнику применимо [[Викиучебник:Что такое Викиучебник#Викиучебник — не энциклопедия |лишь с обратным знаком.]] === Категоризация === : См. также: [[Викиучебник:Категоризация]], [[Викиучебник:Шаблоны]]. Для отнесения страниц основного пространства к тематическим и служебным категориям используется ряд шаблонов:<s>{{tl |Темы}}, {{tl |Готовность}} и {{tl |BookCat}}</s>, но так как {{tl|Название учебника}} теперь поддерживает всю катетеризацию внутри себя (включая все эти шаблоны), 3 этих шаблона теперь стали неактуальны - просьба, не использовать их при категоризации. Викиучебник постоянно развивается и накопленным материалам может стать «тесно» в рамках единой ''темы''. В таком случае, может быть полезно выделить часть из них в новую тему — для создания которой применим нижеследующий рецепт. Этот же рецепт будет полезен и в случае, когда для конкретной темы не создано ''категории всех учебников'' или страницы в пространстве [[Special:PrefixIndex/Полка: |Полка:]]. (Что, отметим, весьма вероятно — коль скоро используемые на таких страницах шаблоны существуют в проекте лишь с декабря 2014 г.) <ol> <li ><p >Воспользуйтесь [[Служебная:Поиск |поиском]], включив в него в том числе пространство имен [[Special:PrefixIndex/Категория: |Категория:]] — не исключено, что подходящая или достаточно близкая тема уже существует.</p></li> <li ><p >Создайте новую страницу с именем вида <code >Категория:<var >Название темы</var></code> по следующему образцу.</p> {{do wrap |Описание темы, со ссылкой на одноименную страницу в пространстве имен [[Special:PrefixIndex/Полка: |Полка:]] — <code ><nowiki >'''</nowiki>[[<nowiki />Полка:<var >Название темы</var> |<var >текст ссылки</var>]]<nowiki >'''</nowiki></code>.| elt = var}} [[<nowiki />Категория:<var >Первая родительская тема</var>]] [[<nowiki />Категория:<var >Вторая родительская тема</var>]] {{do wrap |Ссылки на данную категорию в других языковых разделах — если существуют.| elt = var}} <p >Здесь же можно применить и шаблон {{tl |Нав}} — в случае, если аналогичные категории существуют и в других проектах [[w:Фонд Викимедиа |Фонда Викимедиа.]]</p> <p ><strong >Обратите внимание</strong>, что существующие в проекте шаблоны, поддерживающие пространство [[Special:PrefixIndex/Полка: |Полка:]], не позволяют отнести какую-либо тему более чем к двум родительским. (В случае необходимости, это ограничение можно обойти создав «дерево» или «цепь» тем.)</p></li> <li ><p >Создайте также страницу ''категории всех учебников'' для данной темы — <code >Категория:<var >Название темы</var>/все учебники</code> — следующего содержания:</p> {{tl |Категория всех}}&lt;noinclude&gt; {{do wrap |&lt;!-- Пожалуйста добавляйте ссылки на другие языковые разделы ниже. Спасибо. --&gt;}} &lt;/noinclude&gt; </li> <li ><p >Наконец, создайте для данной темы страницу в пространстве [[Special:PrefixIndex/Полка: |Полка:]] — <code >Полка:<var >Название темы</var></code>, взяв за основу следующий образец.</p> {{<nowiki />[[Шаблон:Страница темы |Страница темы]] | родитель = {{do wrap |Первая родительская тема| elt = var}} | родитель2 = {{do wrap |Вторая родительская тема| elt = var}} | описание = {{do wrap |Описание темы, со ссылкой на подходящую статью Википедии — <code ><nowiki >'''</nowiki>[[<nowiki />w:<var >Статья</var> |<var >текст ссылки</var>]]<nowiki >'''</nowiki></code>.| elt = var}} }}&lt;noinclude&gt; {{do wrap |&lt;!-- Пожалуйста добавляйте категории и ссылки на другие языковые разделы ниже. Спасибо. --&gt;}} &lt;/noinclude&gt; </li> <li ><p >На всех этапах выше полезно использовать функцию ''предварительного просмотра'' для проверки корректности оформления создаваемых страниц.</p></li> </ol> == Ссылки на Викиучебник из Википедии == После создания материала в Викиучебнике будет полезно установить его связь с другими проектами. Например, чтобы пользователи Википедии могли быстро перейти к инструкции либо рецепту, находящимся в Викиучебнике. === Ссылка на рецепт === Для вставки в статью в Википедии можно использовать два способа: шаблон Блюдо (пример [[w:Плов|Плов]]) либо конструкцию <nowiki>{{Викиучебник}}</nowiki> (пример [[w:Холодник|Холодник]]). При вставке с использованием шаблона Блюдо ссылка добавляется в нижнюю часть карточки и сопровождается текстом "Рецепт в Викиучебнике". Правильным подходом будет добавить ссылку на статью в Викиучебнике в объект Викиданных (карточка-шаблоном "Блюдо" поддерживает работу с ними). Если по каким-то причинам Викиданные не получается изменить, то можно указать ссылку на статью явно с помощью ключа в шаблоне Блюдо либо через шаблон Викиучебник. Одним из критериев для отнесения рецепта в Викиучебнике к [[Викиучебник:Кулинарная_книга/Хорошие_рецепты|категории хороших]] является наличие ссылки на него в Википедии. === Ссылка с прочих статей === Вставка конструкции <nowiki>{{Викиучебник}}</nowiki> в тело статьи в Википедии. Информация для работы этого шаблона извлекается из Викиданных. === Административные обсуждения === Помочь решению «административных» вопросов может любой опытный участник — потратив собственное время и силы на оформление так называемого «предварительного итога» по конкретному обсуждению, а также, возможно, — устранив проблему или проблемы, явившиеся основанием для исходного запроса. Никаких особых «технических привилегий» («флагов») для этого не требуется. В некоторых случаях, [[Викиучебник:К удалению |запрос на удаление]] — или [[Викиучебник:Запросы к администраторам |запрос к администраторам]] в общем — может быть полностью исчерпан действиями непривилегированного участника. В таких случаях, администратору остается лишь формально «утвердить» итог и завершить обсуждение. Чтобы возразить против принятых администратором <em >действий,</em> следует переименовать раздел ''Итог'' в ''Оспоренный итог'' и привести собственный вариант разрешения проблемы и доводы в его пользу — <strong >обязательно подкрепив их</strong> ссылками на правила, принципы, или ''административную практику'' Викиучебника, или же (в отсутствие таковых) — других проектов [[w:Фонд Викимедиа |Фонда Викимедиа.]] С другой стороны, комментарии (пожелания, предложения) по использованной в «итоге» <em >формулировке</em> следует оставлять на «странице обсуждения» подводящего итог администратора. <strong >Обратите внимание</strong>, что обсуждение формально считается закрытым с момента подведения итога участником с соответствующими привилегиями; продолжить такое обсуждение можно лишь ''оспорив'' итог как указано выше. В некоторых случаях, подводящий итог участник может установить шаблон {{tl |закрыто}} — как напоминание о завершении обсуждения (в частности — при подведении итога после оспаривания.) В общем случае, однако, подобные шаблоны последовательно используются лишь для закрытия страниц в целом, а не отдельных обсуждений. Участникам, которым удается создавать новые запросы на выполнение административных действий чаще, чем администраторам удается подводить итоги по таким запросам, имеет смысл [[Викиучебник:Заявки на статус администратора |оформить заявку]] на получение привилегий администратора. == См. также == * [[Викиучебник:Что такое Викиучебник]] * [[Викиучебник:Справка]] * [[Викиучебник:Как использовать Викиучебник]] [[Категория:Викиучебник:Справка]] nm6vu6zfkmeqqpydwpgm2wdlzlolruw 267107 267103 2026-05-18T09:48:02Z AllaBuraya 79455 267107 wikitext text/x-wiki {{Навигация}} {{Эссе}} {{Вкратце | Спешите поделиться собственной инструкцией по использованию новейшей JRH Foozilla 4.2 или решению линейных уравнений с одной неизвестной? [[#Создание нового учебника |Добро пожаловать!]] | Заметили ошибку в оформлении (орфографии, терминологии, …)? [[w:Википедия:Правьте смело |Правьте смело!]] | Очень нужная и полезная страница предложена к удалению? [[#Организационная деятельность |Примите участие в обсуждении!]] }} Принести пользу Викиучебнику по силам любому желающему. Здесь мы рассмотрим, <em >как именно</em> это можно сделать, — а заодно и как извлечь пользу <em >из</em> участия в проекте. == Два направления работы == Как и в других проектах [[w:Фонд Викимедиа |Фонда Викимедиа]], участие в Викиучебнике представлено двумя основными направлениями: * «тематическим» — [[#Создание нового учебника |созданием новых учебников]], дополнением существующих новым материалом (включая ссылки на ''авторитетные источники'' и иллюстрации), исправлением фактических ошибок; * «организационным» — выявлением и устранением существующих проблем в оформлении (и, в меньшей степени, — содержании) учебных материалов, поддержкой «вспомогательных» страниц, участием в обсуждениях, выполнением [[Викиучебник:Администраторы |административных действий]], {{lang |en|etc.}} Тем не менее, ''первичная цель'' в обоих случаях остается неизменной — сделать материалы проекта более ценными для читателей и создателей производных работ, а также сделать использование этих материалов и участие в работе над ними более удобным для тех, кому это может быть интересно. Участники, разумеется, могут преследовать собственные цели. В случае «тематического» направления, такой целью может быть получение критики на собственную работу, или же просто обеспечение к ней доступа всех заинтересованных лиц. Материалы, важные для профессиональной деятельности, конечно, можно опубликовать на «сетевых ресурсах» предприятия, но сколь прост будет к ним доступ «извне»? Напротив, материалы Викиучебника доступны едва ли не из любой точки мира и едва ли не с любого «сетевого» устройства. «Организационное» направление, по-видимому, будет наиболее интересным участникам-читателям, поскольку позволяет сделать поиск и чтение материалов более удобным, а также может привлечь к проекту новых авторов и, следовательно, — новый материал. == Создание нового учебника == Для создания нового учебника по конкретной теме крайне желательно наличие некоторого опыта в объяснении этой самой темы, — не важно, в «формальной обстановке» или «неформальной». Тем не менее, к созданию учебника можно приступить в любом случае, а в случае вопросов обратиться на [[Викиучебник:Общий форум|форум]]. === Новый учебник, или? === Перед внесением материала в проект следует проверить наличие близких по теме учебников или разделов — возможно, материал будет более уместен как новый раздел уже существующего учебника? Одновременно с этим можно будет выяснить название подходящих для нового учебника [[Викиучебник:Категоризация |тематических категорий.]] Удостоверьтесь также, что предлагаемый материал соответствует [[Викиучебник:Что такое Викиучебник |основным принципам]] именно <em >данного</em> проекта. Размещаемый здесь материал должен отвечать на вопрос «как?». В некоторых случаях, материал может подойти другим проектам [[w:Фонд Викимедиа |Фонда]]: * [[w: |Википедии]] — если материал отвечает на вопрос «что такое?». Туда подойдут материалы описательного характера, описывающие какой-либо объект. * [[v: |Викиверситету]] — подойдут любые исследовательские и обучающие материалы: учебные курсы и методические указания, работы учащихся и требования к их оформлению, списки экзаменационных вопросов и списки литературы для подготовки; * [[s: |Викитеке]] — опубликованные («в печати») свободные работы — в том числе учебники и руководства, <em >а также их переводы</em> — не исключая и выполненные самими участниками Викитеки. Различие между Викитекой и Викиучебником прежде всего заключается в том, что в Викиучебнике изначально пишут свободные учебники. * [[q: |Викицитатнику]] — сборники цитат (по авторству, теме, произведению); * [[voy: |Викигиду]] — путеводители по городам и странам; * [[wikt: |Викисловарю]] — словарные статьи; <strong >Обратите внимание</strong>, что критерием освоения некоторых дисциплин (в частности, в сфере истории, филологии, философии) является знакомство ''с первоисточниками и критическими материалами'' по теме. ''Учебником'' по таким дисциплинам может оказаться, например, [[Викиучебник:Что такое Викиучебник#Что такое Викиучебник |собрание сочинений Шекспира]] (на правах ''первоисточника'') или сборник статей Википедии (как изложение идей, содержащихся ''в критике''.) Уместность материалов такого рода в Викиучебнике является предметом споров. По-видимому, первоисточники (в том числе аннотированные) следует в первую очередь предлагать Викитеке; обзор критики — Википедии; «практические задания» — Викиверситету. Викиучебник может служить разве что «инкубатором» для таких материалов. === Выбор названия === В названии учебника следует отразить конкретный ''предмет'' (умение, навык), которым (по мнению авторов) можно овладеть изучая его. Определенные усилия следует приложить к тому, чтобы название учебника не вводило в заблуждение — не использовало неоднозначных терминов и не было слишком уж общим. Так, название ''Ядро Linux'' будет уместно лишь для учебника, в котором рассмотрена сборка данного ядра, в деталях разобрано его внутреннее устройство, приведены примеры написания новых компонент и публикации разного рода изменений в рассылках разработчиков, использования команднострочных средств — а равно и файловых систем <code >/proc</code> и <code >/sys</code> — для настройки и извлечения разнообразной информации. <strong >Обратите внимание</strong>, что создание учебника автоматически резервирует [[Викиучебник:Категоризация#Категории страниц учебника |одноименную категорию]] для его страниц. Как следствие, создание учебника с названием, например, ''Бокрский язык'' сделает невозможным создание с таким названием <em >тематической</em> категории. Поэтому, для новых учебников следует, по-возможности, использовать более развернутые названия (например: ''Разговорник бокрского языка''.). Тем не менее, в случае если это единственный учебник в данной категории - проблемы не возникают. Если возникают сомнения относительно <em >названия</em> нового учебника или уместности нового материала в существующем учебнике, можно разместить материал [[Викиучебник:Личная страница участника |в «личном пространстве»]] и запросить мнение сообщества, — например, [[Викиучебник:Общий форум |на общем форуме.]]. Тем не менее, на данный момент рекомендуется все же создавать учебник сразу в основном пространстве. === Одностраничный учебник === Готовые материалы небольшого объема (в пределах порядка 2000‒5000 слов) допустимо размещать «одной страницей». Для этого (предполагая использование «типового» ''пользовательского агента Всемирной паутины'') можно воспользоваться следующим рецептом. * Воспользуйтесь [[ВУ:МС|мастером статей]] для создания учебника. Там же вы можете выбрать название и ознакомится с основными правилами Викиучебника. * Разместите материал на странице согласно следующему образцу. <pre> {{Название учебника |Категория = (Впишите сюда категорию вашего учебника) |Описание = (Описание учебника одним предложением) |Готовность = (0%, 25%, 75% или 100% степени готовности) }} В данном учебнике мы рассмотрим… (краткое — в пределах 150 слов — описание предмета учебника, принятого автором подхода к изложению.) == Часть 1 == Текст == Часть 2 == Текст == Часть 3 == Текст == Примечания == {{tl |Примечания}} </pre> * Используйте функцию ''предварительного просмотра'' для проверки корректности оформления нового материала. После внесения материала его желательно повторно просмотреть и устранить обнаруженные дефекты.</p></li> === Многостраничный учебник === Для материалов (предполагаемого) объема порядка 2000 слов и более следует создавать многостраничные учебники, для чего подойдет следующий рецепт. * Воспользуйтесь [[Викиучебник:МС|мастером статей]] для создания учебника. Там же вы можете выбрать название и ознакомится с основными правилами Викиучебника. * Создайте «главную страницу» учебника согласно следующему образцу. <pre> {{Название учебника |Категория = (Впишите сюда категорию вашего учебника) |Описание = (Описание учебника одним предложением) |Готовность = (0%, 25%, 75% или 100% степени готовности) }} В данном учебнике мы рассмотрим… (краткое — в пределах 150 слов — описание предмета учебника, принятого автором подхода к изложению, {{lang |en|etc.}})</span> == Содержание == [[/Глава 1|Глава 1]] [[/Глава 2|Глава 2]] [[/Глава 3|Глава 3]] [[/Глава 4|Глава 4]] [[/Глава 5|Глава 5]] или [[/Глава 1|Глава 1]] [[/Часть 1|Часть 1]] [[/Часть 2|Часть 2]] [[/Глава 2|Глава 2]] </pre> Если количество разделов — невелико, на ''главы'' материал можно не делить. С другой стороны, если материал достаточно дифференцирован, можно использовать ''двухуровневую'' систему наименования страниц учебника — <code >Название учебника/Главы́/Раздела</code>. Тем не менее, все же рекомендуется все главы писать как <code >Название учебника/Главы́</code> и добавляя подразделы только в содержании (см пример выше). *Используйте функцию ''предварительного просмотра'' для проверки корректности оформления страницы. *Воспользуйтесь ссылкой на какой-либо из несуществующих разделов учебника для его создания. Оформить страницу раздела можно соответственно данному выше [[#оформление страницы |образцу оформления]] одностраничного учебника, <em >обязательно используя,</em> {{tl |Готовность}}. «Аннотация» в начале страницы, разумеется, также должна относится к материалу данной отдельной страницы, а не учебника в целом. *После создания (дополнения) раздела — проверьте актуальность шаблона {{tl |Стадия кор}} в «Содержании» на «главной странице» учебника. === Перенос материала из других проектов === Содержание других проектов [[w:Фонд Викимедиа |Фонда]] также доступно (как правило) на условиях принятой в Викиучебнике лицензии [[:w:CC BY-SA|CC BY-SA]] 4.0 (или же на условиях менее строгих CC-BY или CC0), что позволяет сравнительно свободно ''заимствовать'' такой материал в данном проекте. Следует помнить, однако, что лицензии [[w:Creative Commons |Creative Commons]] требуют сохранения информации об ''авторстве'' материала. Для чего, в свою очередь, следует «взять на вооружение» следующие простые правила: # всегда указывать ''источник'' заимствования; ''желательно'' — в ''кратком описании'' соответствующего изменения (например: ''Перенесено из [[<nowiki />w:42 (число)]].''); если этого по какой-либо причине не было сделано, ''допустимо'' указать источник на «странице обсуждения»; # если переносимый материал подлежит удалению <em >из истории</em> исходного проекта (как, например, при удалении из проекта исходной страницы в целом), для сохранения авторства необходимо перенести ''полную историю изменений'' исходной страницы; сделать это может любой администратор по запросу участника на странице [[Викиучебник:Запросы к администраторам]]. Эти же правила применимы и при переносе материала между страницами Викиучебника, а равно и при заимствовании доступных на условиях CC BY-SA 4.0 (или менее строгих CC BY, CC0, {{lang |la|etc.}}) материалов любых других ресурсов Всемирной паутины; в последнем случае — с той лишь оговоркой, что необходимая информация об источнике и авторстве может оказаться слишком подробной для ''краткого описания.'' При этом, такую информацию ''необходимо'' привести на «странице обсуждения». Наконец, для заимствования материалов, условия распространения которых неизвестны или несовместимы с CC BY-SA 4.0, ''необходимо'' получить разрешение правообладателя [[w:Википедия:Получение разрешений |по форме OTRS]]. === Степень готовности === Степень готовности указывается в учебнике в шаблоне [[Шаблон:Название учебника|Название учебника]]. ''Степень готовности'' учебников и составляющих их страниц указывается, с одной стороны, чтобы помочь читателю выбрать наиболее подходящий материал, с другой — как способ информирования участников о возможных направлениях улучшения материала. Определять степень готовности можно по-разному. Следующие соображения, однако, представляются применимыми в наиболее общем случае: # степень готовности должна прямо следовать из соответствия фактически представленного материала — заявленному в «аннотации»; предполагается, что <em >оценить</em> степень такого соответствия может любой знакомый с предметом участник проекта; # по-видимому, степень готовности учебника в целом <em >не должна превышать</em> степени готовности любого из ''основных разделов''; # решение о том, какие разделы считать «основными», принимается опять-таки на основании их соответствия «аннотации» к учебнику; в спорных случаях — решение остается за ''сообществом редакторов'' конкретного учебника. === Категоризация === : См. также: [[Викиучебник:Категоризация]], [[Викиучебник:Шаблоны]]. Для отнесения страниц основного пространства к тематическим и служебным категориям используется ряд шаблонов:<s>{{tl |Темы}}, {{tl |Готовность}} и {{tl |BookCat}}</s>, но так как {{tl|Название учебника}} теперь поддерживает всю катетеризацию внутри себя (включая все эти шаблоны), 3 этих шаблона теперь стали неактуальны - просьба, не использовать их при категоризации. Викиучебник постоянно развивается и накопленным материалам может стать «тесно» в рамках единой ''темы''. В таком случае, может быть полезно выделить часть из них в новую тему — для создания которой применима нижеследующая инструкция. Эта же инструкция будет полезна и в случае, когда для конкретной темы не создано ''категории всех учебников'' или страницы в пространстве [[Special:PrefixIndex/Полка: |Полка:]]. (Что, отметим, весьма вероятно — коль скоро используемые на таких страницах шаблоны существуют в проекте лишь с декабря 2014 г.) <ol> <li ><p >Воспользуйтесь [[Служебная:Поиск |поиском]], включив в него в том числе пространство имен [[Special:PrefixIndex/Категория: |Категория:]] и [[Special:PrefixIndex/Полка: |Полка:]], не исключено, что подходящая или достаточно близкая тема уже существует.</p></li> <li ><p >Создайте новую страницу с именем вида <code >Категория:<var >Название темы</var></code> по следующему образцу.</p> {{do wrap |Описание темы, со ссылкой на одноименную страницу в пространстве имен [[Special:PrefixIndex/Полка: |Полка:]] — <code ><nowiki >'''</nowiki>[[<nowiki />Полка:<var >Название темы</var> |<var >текст ссылки</var>]]<nowiki >'''</nowiki></code>.| elt = var}} [[<nowiki />Категория:<var >Первая родительская тема</var>]] [[<nowiki />Категория:<var >Вторая родительская тема</var>]] {{do wrap |Ссылки на данную категорию в других языковых разделах — если существуют.| elt = var}} <p >Здесь же можно применить и шаблон {{tl |Нав}} — в случае, если аналогичные категории существуют и в других проектах [[w:Фонд Викимедиа |Фонда Викимедиа.]]</p> <p ><strong >Обратите внимание</strong>, что существующие в проекте шаблоны, поддерживающие пространство [[Special:PrefixIndex/Полка: |Полка:]], не позволяют отнести какую-либо тему более чем к двум родительским. (В случае необходимости, это ограничение можно обойти создав «дерево» или «цепь» тем.) </p> См. пример: Категория:Алгебра. </p></li> <li ><p >Создайте также страницу ''категории всех учебников'' для данной темы — <code >Категория:<var >Название темы</var>/все учебники</code> — следующего содержания:</p> {{tl |Категория всех}}&lt;noinclude&gt; {{do wrap |&lt;!-- Пожалуйста добавляйте ссылки на другие языковые разделы ниже. Спасибо. --&gt;}} &lt;/noinclude&gt; </li> <li ><p >Создайте для данной темы страницу в пространстве [[Special:PrefixIndex/Полка: |Полка:]] — <code >Полка:<var >Название темы</var></code>, взяв за основу следующий образец.</p> {{<nowiki />[[Шаблон:Страница темы |Страница темы]] | родитель = {{do wrap |Первая родительская тема| elt = var}} | родитель2 = {{do wrap |Вторая родительская тема| elt = var}} | описание = {{do wrap |Описание темы, со ссылкой на подходящую статью Википедии — <code ><nowiki >'''</nowiki>[[<nowiki />w:<var >Статья</var> |<var >текст ссылки</var>]]<nowiki >'''</nowiki></code>.| elt = var}} }}&lt;noinclude&gt; {{do wrap |&lt;!-- Пожалуйста добавляйте категории и ссылки на другие языковые разделы ниже. Спасибо. --&gt;}} &lt;/noinclude&gt; </li> См. пример: Полка:Алгебра. <li ><p >На всех этапах выше полезно использовать функцию ''предварительного просмотра'' для проверки корректности оформления создаваемых страниц.</p></li> </ol> === Где я могу найти учебник? === В Викиучебнике рецепты размещаются в соответствующих категориях. Проверьте, что ваш рецепт размещен в подходящей для него категории [https://ru.wikibooks.org/wiki/Викиучебник:Кулинарная_книга Викиучебник:Кулинарная книга]. В Викиучебнике учебные пособия размещаются на полках. Проверьте, что ваш учебник размещен на подходящей для него полке [[Викиучебник:Каталог учебников/Список]]. == Ссылки на Викиучебник == После создания материала в Викиучебнике будет полезно установить его связь с другими проектами. Например, чтобы пользователи Википедии могли быстро перейти к инструкции либо рецепту, находящимся в Викиучебнике. Добавьте в объект Викиданных ссылку на статью в Викиучебнике. См. примеры: [https://www.wikidata.org/wiki/Q485796 плов], раздел Wikibooks (связанная статья в Википедии [[w:Плов|Плов]]) или [https://www.wikidata.org/wiki/Q632546 Постулат Бертрана] (связанная статья в Википедии [[w:Плов|Постулат Бертрана]]). === Ссылка на рецепт === Одним из критериев для отнесения рецепта в Викиучебнике к [[Викиучебник:Кулинарная_книга/Хорошие_рецепты|категории хороших]] является наличие ссылки на него в Википедии. Чтобы сослаться на рецепт в статье Википедии, нужно использовать [[w:Шаблон:Блюдо|Шаблон:Блюдо]] (пример [[w:Плов|Плов]]). При вставке с использованием карточки-шаблона "Блюдо" ссылка на викиучебник добавляется в нижнюю часть карточки и сопровождается текстом "Рецепт в Викиучебнике". Информация для шаблона извлекается из Викиданных. Второй способ - вставить [[w:Шаблон:Викиучебник|Шаблон:Викиучебник]] в тело статьи в Википедии. Информация для шаблона извлекается из Викиданных. См. пример [[w:Холодник|Холодник]]. === Ссылка на учебник === Чтобы сослаться на викиучебник в тексте статьи Википедии, нужно после выбранного утверждения создать ссылку (вверху Источник-Простая), вставить в нее шаблон [[w:Шаблон:Wikibooks-inline|Wikibooks-inline]], указать в шаблоне название статьи в викиучебнике. См. пример: [[w:Постулат Бертрана|Постулат Бертрана]]. Второй способ - вставить [[w:Шаблон:Викиучебник|Шаблон:Викиучебник]] в тело статьи в Википедии. Информация для шаблона извлекается из Викиданных. == Организационная деятельность == Любая «организационная деятельность» начинается с обсуждений. Тем участникам, которым она интересна, следует обратить внимание на следующие страницы. * [[Викиучебник:Общий форум]] * [[Викиучебник:К удалению]] ([[:Категория:Викиучебник:Незакрытые обсуждения удаления страниц |текущие обсуждения]] '''·''' [[Special:PrefixIndex/Викиучебник:К удалению/ |полный список]].) * [[Викиучебник:Запросы к администраторам]] * [[Викиучебник:К переименованию]] ([[:Категория:Викиучебник:Незакрытые обсуждения переименования страниц |текущие обсуждения]] '''·''' [[Special:PrefixIndex/Викиучебник:К переименованию/ |полный список]].) * [[Викиучебник:К восстановлению]] Следующие страницы также существуют в проекте, однако по различным причинам фактически не используются. * [[Викиучебник:Форум администраторов]] — коль скоро в проекте активны лишь два [[Викиучебник:Администраторы |администратора,]] для обсуждения возникающих между ними вопросов им вполне хватает личных «страниц обсуждения». * [[Викиучебник:Планы и заявки]] — изначально предназначалась для информирования сообщества о (планируемом) размещении нового материала и поиска заинтересованных в работе над ним. В настоящее время для этой цели, как правило, используется [[Викиучебник:Общий форум |общий форум.]] <strong >Обратите внимание</strong>, что ввиду сравнительно небольшой активности в проекте в целом, однотипные изменения количеством от пяти и более уже могут считаться ''массовыми'' и требовать предварительного согласования с сообществом Викиучебника (через [[Викиучебник:Общий форум |общий форум]]), — или ''сообществом редакторов учебника,'' если предполагаемые изменения затрагивают лишь один конкретный учебник. Разумеется, чтобы успешно применять и улучшать правила и руководства проекта, следует для начала их изучить, для чего будет полезно обратиться к странице [[Викиучебник:Список правил и руководств]] и категории [[:Категория:Викиучебник:Правила и руководства]]. Отметим отдельно, что хотя опыт участия в других проектах [[w:Фонд Викимедиа |Фонда]] может оказаться полезным и в Викиучебнике, отдельные правила, а равно и практика их применения, могут существенно отличаться. Так, например, правило [[w:Википедия:Чем не является Википедия#Не инструкция |«не инструкция»]] Википедии к Викиучебнику применимо [[Викиучебник:Что такое Викиучебник#Викиучебник — не энциклопедия |лишь с обратным знаком.]] Помочь решению «административных» вопросов может любой опытный участник — потратив собственное время и силы на оформление так называемого «предварительного итога» по конкретному обсуждению, а также, возможно, — устранив проблему или проблемы, явившиеся основанием для исходного запроса. Никаких особых «технических привилегий» («флагов») для этого не требуется. В некоторых случаях, [[Викиучебник:К удалению |запрос на удаление]] — или [[Викиучебник:Запросы к администраторам |запрос к администраторам]] в общем — может быть полностью исчерпан действиями непривилегированного участника. В таких случаях, администратору остается лишь формально «утвердить» итог и завершить обсуждение. Чтобы возразить против принятых администратором <em >действий,</em> следует переименовать раздел ''Итог'' в ''Оспоренный итог'' и привести собственный вариант разрешения проблемы и доводы в его пользу — <strong >обязательно подкрепив их</strong> ссылками на правила, принципы, или ''административную практику'' Викиучебника, или же (в отсутствие таковых) — других проектов [[w:Фонд Викимедиа |Фонда Викимедиа.]] С другой стороны, комментарии (пожелания, предложения) по использованной в «итоге» <em >формулировке</em> следует оставлять на «странице обсуждения» подводящего итог администратора. <strong >Обратите внимание</strong>, что обсуждение формально считается закрытым с момента подведения итога участником с соответствующими привилегиями; продолжить такое обсуждение можно лишь ''оспорив'' итог как указано выше. В некоторых случаях, подводящий итог участник может установить шаблон {{tl |закрыто}} — как напоминание о завершении обсуждения (в частности — при подведении итога после оспаривания.) В общем случае, однако, подобные шаблоны последовательно используются лишь для закрытия страниц в целом, а не отдельных обсуждений. Участникам, которым удается создавать новые запросы на выполнение административных действий чаще, чем администраторам удается подводить итоги по таким запросам, имеет смысл [[Викиучебник:Заявки на статус администратора |оформить заявку]] на получение привилегий администратора. == См. также == * [[Викиучебник:Что такое Викиучебник]] * [[Викиучебник:Справка]] * [[Викиучебник:Как использовать Викиучебник]] [[Категория:Викиучебник:Справка]] 03lbw80pwe0278l3qcnrf08l58zxjbh Полка:Математика 100 19015 267105 267041 2026-05-18T07:51:06Z AllaBuraya 79455 added [[Category:Все учебники]] using [[Help:Gadget-HotCat|HotCat]] 267105 wikitext text/x-wiki {{Основная полка |Описание = Полка посвящена материалам по математике |Лого = OOjs UI icon math.svg }} [[Категория:Все учебники]] agk7y6o00x6bo565gdnh3lh9r3sq6ym 267106 267105 2026-05-18T07:52:16Z AllaBuraya 79455 removed [[Category:Все учебники]] using [[Help:Gadget-HotCat|HotCat]] 267106 wikitext text/x-wiki {{Основная полка |Описание = Полка посвящена материалам по математике |Лого = OOjs UI icon math.svg }} 6vyjvvsoakjbjqd0lfmaxvxw54lmur4 Аналитическая геометрия 0 21489 267109 260052 2026-05-18T10:00:15Z AllaBuraya 79455 267109 wikitext text/x-wiki {{Название учебника |Категория = Геометрия |Тип = Многостраничный}} {{Содержание «Аналитическая геометрия»}} {{wikipedia|Аналитическая геометрия}} '''Аналитическая геометрия''' — раздел [[w:Геометрия|геометрии]], в котором [[w:Фигура (геометрия)|геометрические фигуры]] и их свойства исследуются средствами [[w:Алгебра|алгебры]]. Как правило, аналитическая геометрия используется на плоскости (<math>R^2</math>) и пространстве(<math>R^3</math>). Её методы применяются в иных разделах математики, а также физики, техники, программировании и во многих других областях. == Литература == * «Аналитическая геометрия и линейная алгебра», А.Е. Умнов, 3-е изд., М.: МФТИ, 2011. * «Курс аналитической геометрии и линейной алгебры», Д.В. Беклемишев, 10-е изд., испр. — М.: ФИЗМАТЛИТ. * «ЛЕКЦИИ ПО АНАЛИТИЧЕСКОЙ ГЕОМЕТРИИ, ПОПОЛНЕННЫЕ НЕОБХОДИМЫМИ СВЕДЕНИЯМИ ИЗ АЛГЕБРЫ», П.С. Александров, М., изд. «НАУКА», 1968. rok47vbrucgoq1d7xrk28mkxeci2kcz Рецепт:Салат «Киевский» 104 33718 267077 253806 2026-05-17T16:56:35Z Новостной арбуз 79464 267077 wikitext text/x-wiki {{Рецепт| | Категория = Салаты | Кухня = Советская кухня, Украинская кухня | Порций = | Время = | Сложность = | Энергетическая ценность = | Изображение = }} '''Салат «Киевский»''' — блюдо советской кухни. == Салат «Киевский»<ref name="ukrainskie70" /> == === Состав === (на 4 порции) * картофель: 2-3 шт * [[Рецепт:Огурцы солёные|огурцы солёные]]: 3-4 шт * яйца: 3 шт * майонез * зелёный горошек * зелень для кнелей: * курятина (мякоть): 200 г * мука: 1 ст. л. * молоко: 0,5 стакана * яйца: 1-2 шт * соль === Приготовление === # Овощи нашинковать и заправить майонезом. # Приготовить из курятины кнельную массу: куриную мякоть пропустить через мясорубку; смешать муку с молоком и, непрерывно помешивая, добавить измельчённую курятину, затем добавить белок, взбить. # Полученную массу разделать на фрикадельки отварить их. # Выложить в салатницу горкой приготовленные овощи, украсить сверху готовыми фрикадельками, зеленью, [[Рецепт:Яйца вкрутую|яйцами]]. == Примечания == {{примечания|refs= <ref name="ukrainskie70">{{Книга |ответственный= |заглавие = [[Кулинарная книга/Источники/Блюда национальной кухни|Блюда украинской кухни (набор из 15 открыток)]] |часть = Салат «Киевский» |место = М |издательство = Планета |год = 1970 |страницы = 1 |страниц = 15 }}</ref> }} qpzke0t7ddyt0492lpti7kh9pjfqe8i Викиучебник:Каталог учебников/Список 4 34750 267082 267042 2026-05-17T17:28:01Z AllaBuraya 79455 267082 wikitext text/x-wiki {{Викиучебник:Каталог учебников/Шапка}} * [[Файл:Black computer icon.png|14px]] [[Полка:Компьютеры|Компьютеры]] ** [[Файл:Code file icon.png|14px]] [[Полка:Программирование|Программирование]] ** [[Полка:Программное обеспечение|Программное обеспечение]] ** [[Полка:Операционные системы|Операционные системы]] ** [[Файл:Web icon.png|14px]] [[Полка:Веб-разработка|Веб-разработка]] ** [[Файл:Mathematik Informatik.png|14px]] [[Полка:Информатика|Информатика]] ** [[Файл:Paint palette icon from the Noun Project.svg|14px]] [[Полка:Компьютерная графика|Компьютерная графика]] * [[Полка:Естественные науки|Естественные науки]] ** [[Файл:Atom - game-icons.svg|14px]] [[Полка:Физика|Физика]] ** [[Файл:WikiJournal of Medicine logo (flat black).svg|14px]] [[Полка:Медицина|Медицина]] ** [[Файл:Flask-vial-solid.svg|14px]] [[Полка:Химия|Химия]] ** [[Файл:Biology - The Noun Project.svg|14px]] [[Полка:Биология|Биология]] ** [[Файл:Geography icon.svg|14px]] [[Полка:География|География]] ** [[Файл:Noun project 528.svg|14px]] [[Полка:Геология|Геология]] * [[Полка:Языки|Языки]] ** [[Полка:Языки Европы|Языки Европы]] ** [[Полка:Искусственные языки|Искусственные языки]] ** [[Полка:Другие языки|Другие языки]] ** [[Полка:Древние языки|Древние языки]] ** [[Полка:Языки Восточной Азии|Языки Восточной Азии]] ** [[Файл:Telugu Translation icon - 01.svg|14px]] [[Полка:Лингвистика|Лингвистика]] ** [[Полка:Семитские языки|Семитские языки]] ** [[Полка:Языки Юго-Восточной Азии|Языки Юго-Восточной Азии]] * [[Полка:Досуг|Досуг]] ** [[Файл:Gamepad - Delapouite - game-icons.svg|14px]] [[Полка:Компьютерные игры|Компьютерные игры]] ** [[Полка:Туризм|Туризм]] ** [[Файл:Round-table - Delapouite - game-icons.svg|14px]] [[Полка:Настольные игры|Настольные игры]] * [[Файл:OOjs UI icon math.svg|14px]] [[Полка:Математика|Математика]] ** [[Полка:Математический анализ|Математический анализ]] ** [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]] ** [[Полка:Математическая физика|Математическая физика]] ** [[Файл:Geometry tools - Noun project 108271.svg|14px]] [[Полка:Геометрия|Геометрия]] ** [[Полка:Топология|Топология]] ** [[Полка:Теория вероятностей|Теория вероятностей]] ** [[Полка:Математическая статистика|Математическая статистика]] ** [[Полка:Математическая логика|Математическая логика]] ** [[Полка:Алгебра|Алгебра]] ** [[Полка:Теория чисел|Теория чисел]] ** [[Полка:Вычислительная математика|Вычислительная математика]] ** [[Полка:Дискретная математика|Дискретная математика]] ** [[Полка:Математическая кибернетика|Математическая кибернетика]] * [[Полка:Техника|Техника]] ** [[Файл:Big guy 637's Car icon.svg|14px]] [[Полка:Автомобили|Автомобили]] ** [[Файл:Building icon Metal.png|14px]] [[Полка:Строительство|Строительство]] ** [[Файл:Plane-icon.png|14px]] [[Полка:Авиация|Авиация]] ** [[Полка:История техники|История техники]] ** [[Полка:Транспорт|Транспорт]] * [[Полка:Социальные науки|Социальные науки]] ** [[Полка:Экономика|Экономика]] ** [[Полка:Психология|Психология]] ** [[Полка:Социология|Социология]] * [[Полка:Гуманитарные науки|Гуманитарные науки]] ** [[Файл:PICOL icon News.svg|14px]] [[Полка:Журналистика|Журналистика]] ** [[Файл:201807 book C.svg|14px]] [[Полка:Литература|Литература]] ** [[Полка:Философия|Философия]] * [[Файл:Culture icon.png|14px]] [[Полка:Культура|Культура]] ** [[Файл:Deepin Icon Theme – folder-music-symbolic (3).svg|14px]] [[Полка:Музыка|Музыка]] ** [[Полка:Фотография|Фотография]] * [[Полка:Коллекционирование|Полка:Коллекционирование]] 3eyus1x084wlo5oh33isef9fi77herf 267083 267082 2026-05-17T17:38:34Z AllaBuraya 79455 https://ru.wikipedia.org/wiki/Разделы_математики#Математика_как_учебная_дисциплина 267083 wikitext text/x-wiki {{Викиучебник:Каталог учебников/Шапка}} * [[Файл:Black computer icon.png|14px]] [[Полка:Компьютеры|Компьютеры]] ** [[Файл:Code file icon.png|14px]] [[Полка:Программирование|Программирование]] ** [[Полка:Программное обеспечение|Программное обеспечение]] ** [[Полка:Операционные системы|Операционные системы]] ** [[Файл:Web icon.png|14px]] [[Полка:Веб-разработка|Веб-разработка]] ** [[Файл:Mathematik Informatik.png|14px]] [[Полка:Информатика|Информатика]] ** [[Файл:Paint palette icon from the Noun Project.svg|14px]] [[Полка:Компьютерная графика|Компьютерная графика]] * [[Полка:Естественные науки|Естественные науки]] ** [[Файл:Atom - game-icons.svg|14px]] [[Полка:Физика|Физика]] ** [[Файл:WikiJournal of Medicine logo (flat black).svg|14px]] [[Полка:Медицина|Медицина]] ** [[Файл:Flask-vial-solid.svg|14px]] [[Полка:Химия|Химия]] ** [[Файл:Biology - The Noun Project.svg|14px]] [[Полка:Биология|Биология]] ** [[Файл:Geography icon.svg|14px]] [[Полка:География|География]] ** [[Файл:Noun project 528.svg|14px]] [[Полка:Геология|Геология]] * [[Полка:Языки|Языки]] ** [[Полка:Языки Европы|Языки Европы]] ** [[Полка:Искусственные языки|Искусственные языки]] ** [[Полка:Другие языки|Другие языки]] ** [[Полка:Древние языки|Древние языки]] ** [[Полка:Языки Восточной Азии|Языки Восточной Азии]] ** [[Файл:Telugu Translation icon - 01.svg|14px]] [[Полка:Лингвистика|Лингвистика]] ** [[Полка:Семитские языки|Семитские языки]] ** [[Полка:Языки Юго-Восточной Азии|Языки Юго-Восточной Азии]] * [[Полка:Досуг|Досуг]] ** [[Файл:Gamepad - Delapouite - game-icons.svg|14px]] [[Полка:Компьютерные игры|Компьютерные игры]] ** [[Полка:Туризм|Туризм]] ** [[Файл:Round-table - Delapouite - game-icons.svg|14px]] [[Полка:Настольные игры|Настольные игры]] * [[Файл:OOjs UI icon math.svg|14px]] [[Полка:Математика|Математика]] ** [[Полка:Математический анализ|Математический анализ]] ** [[Полка:Алгебра|Алгебра]] ** [[Полка:Линейная алгебра|Линейная алгебра]] ** [[Файл:Geometry tools - Noun project 108271.svg|14px]] [[Полка:Геометрия|Геометрия]] ** [[Полка:Аналитическая геометрия|Аналитическая геометрия]] ** [[Полка:Дифференциальная геометрия|Дифференциальная геометрия]] ** [[Полка:Дискретная математика|Дискретная математика]] ** [[Полка:Математическая логика|Математическая логика]] ** [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]] ** [[Полка:Разностные уравнения|Разностные уравнения]] ** [[Полка:Топология|Топология]] ** [[Полка:Функциональный анализ|Функциональный анализ]] ** [[Полка:Интегральные уравнения|Интегральные уравнения]] ** [[Полка:Теория функций комплексного переменного|Теория функций комплексного переменного]] ** [[Полка:Уравнения с частными производными|Уравнения с частными производными]] ** [[Полка:Теория вероятностей|Теория вероятностей]] ** [[Полка:Математическая статистика|Математическая статистика]] ** [[Полка:Теория случайных процессов|Теория случайных процессов]] ** [[Полка:Вариационное исчисление|Вариационное исчисление]] ** [[Полка:Методы оптимизации|Методы оптимизации]] ** [[Полка:Численные методы|Численные методы]] ** [[Полка:Теория чисел|Теория чисел]] * [[Полка:Техника|Техника]] ** [[Файл:Big guy 637's Car icon.svg|14px]] [[Полка:Автомобили|Автомобили]] ** [[Файл:Building icon Metal.png|14px]] [[Полка:Строительство|Строительство]] ** [[Файл:Plane-icon.png|14px]] [[Полка:Авиация|Авиация]] ** [[Полка:История техники|История техники]] ** [[Полка:Транспорт|Транспорт]] * [[Полка:Социальные науки|Социальные науки]] ** [[Полка:Экономика|Экономика]] ** [[Полка:Психология|Психология]] ** [[Полка:Социология|Социология]] * [[Полка:Гуманитарные науки|Гуманитарные науки]] ** [[Файл:PICOL icon News.svg|14px]] [[Полка:Журналистика|Журналистика]] ** [[Файл:201807 book C.svg|14px]] [[Полка:Литература|Литература]] ** [[Полка:Философия|Философия]] * [[Файл:Culture icon.png|14px]] [[Полка:Культура|Культура]] ** [[Файл:Deepin Icon Theme – folder-music-symbolic (3).svg|14px]] [[Полка:Музыка|Музыка]] ** [[Полка:Фотография|Фотография]] * [[Полка:Коллекционирование|Полка:Коллекционирование]] kgv3x8qizh81npha8vufj2cn6ahv58l 267108 267083 2026-05-18T09:51:28Z AllaBuraya 79455 267108 wikitext text/x-wiki {{Викиучебник:Каталог учебников/Шапка}} * [[Файл:Black computer icon.png|14px]] [[Полка:Компьютеры|Компьютеры]] ** [[Файл:Code file icon.png|14px]] [[Полка:Программирование|Программирование]] ** [[Полка:Программное обеспечение|Программное обеспечение]] ** [[Полка:Операционные системы|Операционные системы]] ** [[Файл:Web icon.png|14px]] [[Полка:Веб-разработка|Веб-разработка]] ** [[Файл:Mathematik Informatik.png|14px]] [[Полка:Информатика|Информатика]] ** [[Файл:Paint palette icon from the Noun Project.svg|14px]] [[Полка:Компьютерная графика|Компьютерная графика]] * [[Полка:Естественные науки|Естественные науки]] ** [[Файл:Atom - game-icons.svg|14px]] [[Полка:Физика|Физика]] ** [[Файл:WikiJournal of Medicine logo (flat black).svg|14px]] [[Полка:Медицина|Медицина]] ** [[Файл:Flask-vial-solid.svg|14px]] [[Полка:Химия|Химия]] ** [[Файл:Biology - The Noun Project.svg|14px]] [[Полка:Биология|Биология]] ** [[Файл:Geography icon.svg|14px]] [[Полка:География|География]] ** [[Файл:Noun project 528.svg|14px]] [[Полка:Геология|Геология]] * [[Полка:Языки|Языки]] ** [[Полка:Языки Европы|Языки Европы]] ** [[Полка:Искусственные языки|Искусственные языки]] ** [[Полка:Другие языки|Другие языки]] ** [[Полка:Древние языки|Древние языки]] ** [[Полка:Языки Восточной Азии|Языки Восточной Азии]] ** [[Файл:Telugu Translation icon - 01.svg|14px]] [[Полка:Лингвистика|Лингвистика]] ** [[Полка:Семитские языки|Семитские языки]] ** [[Полка:Языки Юго-Восточной Азии|Языки Юго-Восточной Азии]] * [[Полка:Досуг|Досуг]] ** [[Файл:Gamepad - Delapouite - game-icons.svg|14px]] [[Полка:Компьютерные игры|Компьютерные игры]] ** [[Полка:Туризм|Туризм]] ** [[Файл:Round-table - Delapouite - game-icons.svg|14px]] [[Полка:Настольные игры|Настольные игры]] * [[Файл:OOjs UI icon math.svg|14px]] [[Полка:Математика|Математика]] ** [[Полка:Алгебра|Алгебра]] ** [[Файл:Geometry tools - Noun project 108271.svg|14px]] [[Полка:Геометрия|Геометрия]] ** [[Полка:Топология|Топология]] ** [[Полка:Математический анализ|Математический анализ]] ** [[Полка:Дискретная математика|Дискретная математика]] ** [[Полка:Математическая логика|Математическая логика]] ** [[Полка:Дифференциальные уравнения|Дифференциальные уравнения]] ** [[Полка:Разностные уравнения|Разностные уравнения]] ** [[Полка:Функциональный анализ|Функциональный анализ]] ** [[Полка:Интегральные уравнения|Интегральные уравнения]] ** [[Полка:Теория функций комплексного переменного|Теория функций комплексного переменного]] ** [[Полка:Уравнения с частными производными|Уравнения с частными производными]] ** [[Полка:Теория вероятностей|Теория вероятностей]] ** [[Полка:Математическая статистика|Математическая статистика]] ** [[Полка:Теория случайных процессов|Теория случайных процессов]] ** [[Полка:Вариационное исчисление|Вариационное исчисление]] ** [[Полка:Методы оптимизации|Методы оптимизации]] ** [[Полка:Численные методы|Численные методы]] ** [[Полка:Теория чисел|Теория чисел]] * [[Полка:Техника|Техника]] ** [[Файл:Big guy 637's Car icon.svg|14px]] [[Полка:Автомобили|Автомобили]] ** [[Файл:Building icon Metal.png|14px]] [[Полка:Строительство|Строительство]] ** [[Файл:Plane-icon.png|14px]] [[Полка:Авиация|Авиация]] ** [[Полка:История техники|История техники]] ** [[Полка:Транспорт|Транспорт]] * [[Полка:Социальные науки|Социальные науки]] ** [[Полка:Экономика|Экономика]] ** [[Полка:Психология|Психология]] ** [[Полка:Социология|Социология]] * [[Полка:Гуманитарные науки|Гуманитарные науки]] ** [[Файл:PICOL icon News.svg|14px]] [[Полка:Журналистика|Журналистика]] ** [[Файл:201807 book C.svg|14px]] [[Полка:Литература|Литература]] ** [[Полка:Философия|Философия]] * [[Файл:Culture icon.png|14px]] [[Полка:Культура|Культура]] ** [[Файл:Deepin Icon Theme – folder-music-symbolic (3).svg|14px]] [[Полка:Музыка|Музыка]] ** [[Полка:Фотография|Фотография]] * [[Полка:Коллекционирование|Полка:Коллекционирование]] cwzdbrozlyhj29sc5kcyp7lkxwblrko АОН/РПП 0 35501 267089 267059 2026-05-17T17:48:19Z Leksey 3027 /* Литература */ русское название 267089 wikitext text/x-wiki {{АОН Страница}} '''{{SUBPAGENAME}}''' (Руководство по производству полетов, Operations Manual (OM) англ.) — внутренний документ компаний [[АОН/Эксплуатант|эксплуатантов]]. Разрабатывается в обязательном порядке. Его объем и наполнение зависит от типа эксплуатанта (АОН, АР, коммерческий). [[АОН/ФАП-128|ФАП-128]] описывает струтуру РПП для эксплуатантов АОН с тяжелыми ВС (раздел IV) и структур для коммерческих эксплуатантов (раздел V.) ==Назначение== В ФАПах по сертификации разных видов эксплуатантов (на текущий момент это [[АОН/ФАП-494|ФАП-494]], ФАП-10, ФАП-147 (одноименный с ФАП-147 документ, но по сертификации эксплуатантов АОН)) упоминается о необходимости разработать такой документ. ==Нормативное определение РПП== {{Цитата|РПП это руководство, содержащее правила, инструкции и рекомендации для использования эксплуатационным персоналом при выполнении своих обязанностей|автор=Цитата из [[АОН/ФАП-128|ФАП-128]]}} ==Структура документа== Структура РПП для АОН (правда для того, что имеет взлетную массу больше 3500, но по факту используется и для ЛВС/СВС) описана в [[АОН/ФАП-128|ФАП-128]] (п. 4.10) 4.10. РПП должно содержать следующие элементы: *оглавление; *страницу учета поправок; *служебные обязанности, функции и субординацию руководящего и эксплуатационного персонала; *систему управления безопасностью полетов эксплуатанта; *систему руководства полетами; *правила в отношении минимального перечня исправного оборудования в случаях применения MEL; *производство полетов в нормальных условиях; *стандартные эксплуатационные процедуры; *метеорологические ограничения; *ограничения полетного и рабочего времени; *чрезвычайные ситуации в полете; *процедуры анализа авиационных происшествий и инцидентов; *квалификацию и подготовку персонала; *ведение учетной документации; *описание системы управления техническим обслуживанием; *процедуры обеспечения авиационной безопасности (где применимо); *эксплуатационные ограничения летно-технических характеристик; *использование и защита записей полетных данных бортового и речевого самописцев, в случаях, когда применяются самописцы; *обработку опасных грузов, в случаях, когда перевозятся опасные грузы. *метод установления абсолютных высот *Карты контрольных проверок *Программа контроля утомляемости *процедуры для обеспечения начала полета ==См. также== *[[АОН/Эксплуатант]] == Литература == * ICAO Doc 9376: Preparation of an Operations Manual * ICAO Annex 6: Operation of Aircraft, Appendix 2 - Contents of an Operations Manual; или Приложение 6. Эксплуатация воздушных судов, Часть II == Ссылки == ==Примечания== {{Примечания}} {{АОН}} f89gl4ycnb3jd52ybxv04l67gd7v2bo 267102 267089 2026-05-17T18:16:09Z Leksey 3027 Цитата ИКАО 267102 wikitext text/x-wiki {{АОН Страница}} '''{{SUBPAGENAME}}''' (Руководство по производству полетов, Operations Manual (OM) англ.) — внутренний документ компаний [[АОН/Эксплуатант|эксплуатантов]]. Разрабатывается в обязательном порядке. Его объем и наполнение зависит от типа эксплуатанта (АОН, АР, коммерческий). [[АОН/ФАП-128|ФАП-128]] описывает струтуру РПП для эксплуатантов АОН с тяжелыми ВС (раздел IV) и структур для коммерческих эксплуатантов (раздел V.) ==Назначение== В ФАПах по сертификации разных видов эксплуатантов (на текущий момент это [[АОН/ФАП-494|ФАП-494]], ФАП-10, ФАП-147 (одноименный с ФАП-147 документ, но по сертификации эксплуатантов АОН)) упоминается о необходимости разработать такой документ. ==Нормативное определение РПП== {{Цитата|РПП это руководство, содержащее правила, инструкции и рекомендации для использования эксплуатационным персоналом при выполнении своих обязанностей|автор=Цитата из [[АОН/ФАП-128|ФАП-128]]}} ==Структура документа== Структура РПП для АОН (правда для того, что имеет взлетную массу больше 3500, но по факту используется и для ЛВС/СВС) описана в [[АОН/ФАП-128|ФАП-128]] (п. 4.10) 4.10. РПП должно содержать следующие элементы: *оглавление; *страницу учета поправок; *служебные обязанности, функции и субординацию руководящего и эксплуатационного персонала; *систему управления безопасностью полетов эксплуатанта; *систему руководства полетами; *правила в отношении минимального перечня исправного оборудования в случаях применения MEL; *производство полетов в нормальных условиях; *стандартные эксплуатационные процедуры; *метеорологические ограничения; *ограничения полетного и рабочего времени; *чрезвычайные ситуации в полете; *процедуры анализа авиационных происшествий и инцидентов; *квалификацию и подготовку персонала; *ведение учетной документации; *описание системы управления техническим обслуживанием; *процедуры обеспечения авиационной безопасности (где применимо); *эксплуатационные ограничения летно-технических характеристик; *использование и защита записей полетных данных бортового и речевого самописцев, в случаях, когда применяются самописцы; *обработку опасных грузов, в случаях, когда перевозятся опасные грузы. *метод установления абсолютных высот *Карты контрольных проверок *Программа контроля утомляемости *процедуры для обеспечения начала полета ==Структура документа из ICAO Annex 6 часть II == Ниже приведено предлагаемое содержание руководства по производству полетов компании. Оно может издаваться отдельными частями, касающимися конкретных аспектов эксплуатации. Оно должно включать необходимые инструкции и информацию, позволяющие соответствующему персоналу безопасно выполнять свои служебные обязанности, и содержит по крайней мере следующие элементы: {{Цитата| a) оглавление; b) страница учета поправок и перечень действительных страниц, если при каждой поправке не перевыпускается весь документ и на документе не указана дата вступления в силу; c) служебные обязанности, ответственность и субординация руководящего и эксплуатационного персонала; d) система управления безопасностью полетов эксплуатанта; e) система руководства полетами; f) правила в отношении MEL (когда применяются); g) производство полетов в нормальных условиях; h) стандартные эксплуатационные процедуры (SOP); i) метеорологические ограничения; j) ограничения полетного и служебного времени; k) чрезвычайные ситуации в полете; l) анализ авиационных происшествий/инцидентов; m) квалификация и подготовка персонала; n) ведение учетной документации; o) описание системы управления техническим обслуживанием; p) процедуры обеспечения безопасности (где применимо); q) эксплуатационные ограничения летно-технических характеристик; r) использование/защита записей FDR/CVR (где применимо); s) обработка опасных грузов. t) использование систем автоматической посадки, HUD или эквивалентных индикаторов и, при необходимости, оборудования EVS, SVS или CVS.}} ==См. также== *[[АОН/Эксплуатант]] == Литература == * ICAO Doc 9376: Preparation of an Operations Manual * ICAO Annex 6: Operation of Aircraft, Appendix 2 - Contents of an Operations Manual; или Приложение 6. Эксплуатация воздушных судов, Часть II ** В документах ИКАО РПП именуется полностью "Руководство по производству полетов компании". == Ссылки == ==Примечания== {{Примечания}} {{АОН}} a93scg4eoe6hs4859k9wxoelzjttr9t Теория чисел 0 35571 267070 267029 2026-05-17T14:51:51Z Leksey 3027 ссылка 267070 wikitext text/x-wiki {{Название учебника |Категория = Теория чисел |Готовность = 0% }} {{wikipedia|Теория чисел}} В данном учебнике рассматривается '''теория чисел''', которая занимается изучением свойств [[w:Целое_число|целых чисел]]. Целыми называются не только числа [[w:Натуральное_число|натурального]] ряда 1, 2, 3, ... (положительные целые), но также нуль и отрицательные целые -1, -2, -3, ... == Содержание == * Теория делимости * Простые числа ** [[/Постулат Бертрана]] * Функции в теории чисел * Сравнения * Первообразные корни * Индексы * Логарифмы * Характеры == Литература == * {{Книга|ref=Виноградов|автор=И. М. Виноградов|заглавие=Основы теории чисел. Учебное пособие|год=2009|место=Санкт-Петербург|издательство=Лань|страниц=176|isbn=978-5-8114-0535-0}} * {{Книга|ref=Панкратова|автор=И. А. Панкратова|заглавие=Введение в теорию чисел. Учебное пособие|год=2018|место=Томск|издательство=Издательский дом Томского государственного университета|страниц=86}} * {{Книга|ref=Зенкин|ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|место=Калининград|страниц=158}} [[Категория:Математика]] [[Категория:Теория чисел]] [[Категория:Учебники без шаблона]] 4u7g21clw9ljotam4o30w34iy5biv5e Теория чисел/Постулат Бертрана 0 35572 267067 267055 2026-05-17T14:48:16Z AllaBuraya 79455 267067 wikitext text/x-wiki {{Wikipedia|Постулат Бертрана}} '''Постулат Бертрана''' (''теорема Бертрана — Чебышёва'', ''[[w:Теорема_Чебышёва|теорема Чебышёва]]'') — в [[w:Теория_чисел|теории чисел]] утверждение о том, что при [[Натуральные числа|натуральном]] ''n > 3'' между числами ''n'' и ''(2n − 2)'' существует по крайней мере одно [[w:Простое_число|простое]] число. Постулат был сформулирован как [[w:Гипотеза|гипотеза]] в [[w:1845_год_в_науке|1845 году]] [[w:Бертран,_Жозеф_Луи_Франсуа|Бертраном]], который проверил его до <math>n = 3 \cdot 10^{6}</math>''<ref name=":122">{{Книга |заглавие=[[w:Математическая энциклопедия|Математическая энциклопедия]]|ответственный=под редакцией академика [[w:Виноградов, Иван Матвеевич|Виноградова И. М.]]|год=1977—1985|часть=Бертрана поступат|издательство=Советская энциклопедия|том=1|страницы=433|всего страниц=5760}}</ref><ref name=":322">{{Книга |автор=Савин А. П.|заглавие=Энциклопедический словарь юного математика|год=1989|часть=Простое число|место=Москва|издательство=Педагогика|страницы=262|всего страниц=352|isbn=5-7155-0218-7}}</ref><ref name=":222">{{Cite web|url=https://mathworld.wolfram.com/BertrandsPostulate.html|title=Bertrand's Postulate|lang=en|website=mathworld.wolfram.com}}</ref><ref name=":023">{{Книга |ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|часть=§ 3. Постулат Ж. Бертрана — теорема П. Л. Чебышёва|место=Калининград|страницы=44|всего страниц=158}}</ref><ref name=":42">{{Cite web|url=https://bigenc.ru/c/teoremy-chebyshiova-o-prostykh-chislakh-5b2f4d|title=Теоремы Чебышёва о простых числах|author=Лаврик Александр Фёдорович|website=bigenc.ru|date=12 декабря 2024|publisher=[[БРЭ]]|url-status=live}}</ref>''<ref name=":53">{{Книга |автор=Paulo Ribenboim|заглавие=The Little Book of Bigger Primes. Second Edition|год=2004|язык=en|издательство=Springer-Verlag New York, Inc|всего страниц=356|isbn=0-387-20169-6}}</ref><ref name=":63">{{Книга |ссылка=https://faculty.ksu.edu.sa/sites/default/files/proofs_in_the_book.pdf|автор=Martin Aigner. Günter M. Ziegler|заглавие=Proofs from the book|год=2010|язык=de|место=Berlin, Germany|издательство=Springer-Verlag Berlin Heidelberg|страниц=274|isbn=978-3-642-00855-9|doi=10.1007/978-3-642-00856-6}}</ref><ref name=":73">{{Книга |ссылка=http://optic.cs.nstu.ru/files/Lit/Math/Осипов.pdf|автор=Н. Н. Осипов|заглавие=Теория чисел. Конспект лекций|год=2008|место=Красноярск|издательство=Институт космических и информационных технологий СФУ|страниц=117}}</ref><ref name=":04">{{Статья |ссылка=https://cyberleninka.ru/article/n/o-rabotah-s-b-stechkina-po-teorii-chisel|автор=М. Р. Габдуллин, [[Конягин, Сергей Владимирович|С. В. Конягин]]|заглавие=О работах С. Б. Стечкина по теории чисел|год=2020|издание=Чебышевский сборник|тип=|том=21|выпуск=4|doi=10.22405/2226-8383-2020-21-4-9-18}}</ref>. Другие формулировки: * при любом ''n > 1'' имеется [[w:Простое_число|простое]] число, принадлежащее интервалу (''n, 2n)<ref name=":122" /><ref name=":322" /><ref name=":222" /><ref name=":023" /><ref name=":42" /><ref name=":53" />''<ref name=":63" />''<ref name=":73" />'' * для ''n ≥ 1'': ''p<sub>n+1</sub> < 2p<sub>n</sub>, p<sub>n</sub>''<ref name=":53" /> * для ''n ≥ 1: π(2n) − π(n) ≥ 1''<ref name=":53" /> В [[w:1852_год_в_науке|1852 году]] постулат был доказан [[w:Чебышёв,_Пафнутий_Львович|Чебышёвым]]''<ref name=":122" /><ref name=":322" /><ref name=":023" />''<ref name=":53" />. По другим источникам - в 1850 году''<ref name=":222" />''<ref name=":63" /><ref name=":73" />. В дальнейшем несколько математиков предложили более простые варианты доказательства: * [[w:Сриниваса_Рамануджан_Айенгор|Рамануджан]] в 1919 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" />. Ученый также доказал, что количество простых чисел в интервале <math>(n, 2n)</math> можно ограничить снизу неубывающей последовательностью, которая стремится к бесконечности, такой что в [[w:Простые_числа_Рамануджана|простых числах Рамануджана]] достигается равенство{{Нет АИ|17|05|2026}}. * [[w:Эрдёш,_Пол|Эрдёш]] [[Постулат Бертрана|в 1932 году]]''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[wikipedia:Leo_Moser|Мозер]] в 1949 году<ref name=":53" /><ref>{{Cite web|url=https://www.zyymat.com/leo-mosers-proof-of-bertrands-postulate.html|title=Доказательство Лео Мозером постулата Бертрана|lang=en|website=www.zyymat.com}}</ref> * [[w:Стечкин,_Сергей_Борисович|Стечкин]] в 1968 году''<ref name=":73" />''<ref name=":04" /> == Доказательство == === Доказательство Эрдёша{{Нет АИ|nocat=Нет АИ}} === В доказательстве мы используем следующие обозначения: * <math>{a \choose b}</math> — [[w:Биномиальный_коэффициент|биномиальный коэффициент]] или [[w:Сочетание|число сочетаний]] из <math>a</math> по <math>b</math>. * <math> \left \lfloor x \right \rfloor </math> — [[w:Целая_часть|целая часть]] <math>x</math>. Обозначим множество простых чисел через <math>\mathbb{P}</math> и определим <math>\theta(n)</math> как сумму логарифмов простых чисел, не превышающих <math>n</math>: : <math> \theta(n) = \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p). </math> Например, <math> \theta(10)=\ln 2 + \ln 3 + \ln 5 + \ln 7 </math>. Эта функция называется ''<math>\theta</math>-функция Чебышёва''. '''Лемма''' : <math> \theta(n) < n \cdot \ln(4) </math> для всех <math> n\geqslant 1 </math>. (Интересно, что для доказательства теоремы о том, что простых чисел «не очень мало», нам приходится сначала доказать лемму, гласящую, что простых чисел «не очень много».) Заметим — и это главная идея доказательства леммы — что для любого целого неотрицательного <math>m</math>, биноминальный коэффициент <math> {2m+1 \choose m} </math> делится на все простые числа в интервале <math>[m+2,\;2m+1]</math>. В самом деле, <math> {2m+1 \choose m} = \frac {(2m+1)!} {m!(m+1)!} </math>, a любое простое число в указанном интервале делит числитель этой дроби и не делит её знаменатель. Поскольку биноминальный коэффициент делится на все такие простые числа, он не может быть меньше их произведения :: <math> {2m+1 \choose m} \geqslant \prod_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} p.</math> Взяв логарифм от обеих частей неравенства, получаем :: <math> \ln {2m+1 \choose m} \geqslant \sum_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} \ln p = \theta(2m+1)-\theta(m+1). </math> С другой стороны, биноминальный коэффициент <math> {2m+1 \choose m} </math> легко оценить сверху: :: <math> {2m+1 \choose m} = \frac {{2m+1 \choose m}+{2m+1 \choose m+1}}{2} \leqslant \frac {\sum_{k=0}^{2m+1}{2m+1 \choose k}} {2} = </math> :: <math> = \frac {(1+1)^{2m+1}}{2} = 4^m. </math> Объединяя два последних неравенства, получаем :: <math>\theta(2m+1)-\theta(m+1) \leqslant \ln 4^m = m \ln 4 </math> Откуда :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 </math> Теперь легко доказать лемму по индукции: * <math>n = 1</math>: :: <math> \theta(1)= 0 < 1 \cdot \ln(4). </math> * <math>n = 2</math>: :: <math> \theta(2)=\ln(2) < 2 \cdot \ln(4). </math> * <math> n>2 </math> и <math>n</math> нечётно. Пусть <math> n = 2m+1 </math>. :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 < (m+1) \ln 4 + m \ln 4 = (2m+1) \ln 4 = n \ln 4</math> * <math>n > 2</math> и <math>n</math> чётно. :: <math> \theta(n) = \theta(n-1) < (n-1) \cdot \ln(4) < n \cdot \ln(4) </math> (поскольку любое чётное число, большее 2 составное, то <math> \ln (n) </math> не входит в сумму <math> \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p) </math>). Лемма доказана. '''Доказательство постулата''' Теперь переходим к доказательству самого постулата. Основная идея доказательства — разложить биноминальный коэффициент <math> 2n \choose n </math> на простые множители. Если между <math>n</math> и <math>2n</math> нет простых чисел, то произведение всех этих простых множителей окажется ''слишком маленьким.'' Доказываем от противного. Допустим, что для некоторого целого <math>n \geqslant 2</math> не существует простого числа <math>p</math> такого, что <math>n < p < 2n</math>. Если <math>2 \leqslant n < 2048</math>, то одно из простых чисел 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259 и 2503 (каждое последующее меньше удвоенного предыдущего), назовём его <math>p</math>, удовлетворяет неравенству <math>n < p < 2n</math>. Следовательно, <math>n \geqslant 2048</math>. Оценим <math> 2n \choose n </math>. : <math> 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n \choose k}. </math> Поскольку <math> {2n \choose n} </math> — максимальный член суммы, мы имеем: : <math> \frac {4^n} {2n+1} \leqslant {2n \choose n}. </math> '''Определение R(p, n) и его оценка сверху''' Пусть <math> R(p,\; n) </math> — степень <math>p</math> в разложении <math> {2n \choose n} </math> на простые множители. :: <math>{2n \choose n} = \prod_p{p^{R(p,\;n)}}.</math> Поскольку <math>n!</math> для каждого <math>j</math> имеет ровно <math> \left \lfloor \frac {n} {p^j} \right \rfloor </math> сомножителей, делящихся на <math>p^j</math>, в разложении <math>n!</math> на простые множители <math>p</math> входит в степени <math> \sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor </math>. Поэтому : <math> R(p,\;n)=\sum_{j=1}^\infty \left \lfloor \frac {2n} {p^j} \right \rfloor-2\sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor=\sum_{j=1}^\infty \left( \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor \right). </math> Чтобы узнать об этой сумме побольше, оценим, с одной стороны, насколько велики её слагаемые, а с другой — их количество. '''Величина''': каждое слагаемое <math> \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor </math> может быть или 0, или 1 (в зависимости от дробной части <math> \frac {n} {p^j} </math> : если она меньше <math>\frac{1}{2}</math>, слагаемое равно 0, а если <math>\frac{1}{2}</math> или больше, то 1). '''Количество''': все слагаемые с <math> j > \frac {\ln(2n)} {\ln(p)} </math> равны нулю, потому что для них <math> \frac {2n} {p^j} < 1 </math>. Поэтому только <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> первых слагаемых имеют шансы быть ненулевыми. Итак, <math> R(p,\;n) </math> — сумма <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> слагаемых, каждое из которых равно 0 или 1. Следовательно, : <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor. </math> '''Оценка p^R(p, n)''' Оценим теперь <math> p^{R(p,n)} </math>. : <math>p^{R(p,\;n)} = \exp \left ( R(p,\;n) \ln p \right ) \leqslant \exp \left ( \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor \ln p \right ) \leqslant 2n. </math> Это была оценка для любых <math>p</math>. Но гораздо лучшую оценку можно получить для <math> \sqrt {2n} < p \leqslant 2n </math>. Для таких <math>p</math>, количество слагаемых <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> равно 1, то есть в нашей сумме всего одно слагаемое: : <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor. </math> Если это слагаемое равно 1, то <math> p^{R(p,\;n)} = p </math> . А если оно равно 0, то <math>p^{R(p,\;n)} = 1 </math>. '''В каком интервале могут находиться простые делители?''' А теперь посмотрим, в каком интервале находятся простые делители. <math> {2n \choose n} </math> не имеет простых делителей <math>p</math> таких, что: * <math>2n < p</math>, потому что <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor = 0 </math>. * <math> n<p \leqslant 2n </math>, потому что мы предположили, что в этом интервале нет простых чисел. * <math> \frac {2n} {3} <p \leqslant n </math>, потому что при <math> p > \sqrt{2n} </math> (так как <math> n \geqslant 5 </math>) имеем <math> R(p, \; n) \leq 1</math>, что даёт нам <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor < \left \lfloor \frac {2n} {\frac{2n} {3}} \right \rfloor - 2\left \lfloor \frac{n} {n} \right \rfloor = 3-2 = 1,</math> откуда <math> R(p, \; n) = 0 </math>. Получается, что у <math> {2n \choose n} </math> нет простых делителей, больших чем <math> \frac {2n} {3} </math>. '''Перемножение всех p^R(p, n)''' Теперь оценим произведение <math>p^{R(p,\;n)}</math> по всем простым делителям <math>p</math> числа <math> {2n \choose n} </math> . Для делителей, не больших <math> \sqrt{2n} </math>, произведение не превышает <math> {(2n)} ^ {\sqrt{2n}} </math> . А для простых делителей, больших <math> \sqrt{2n} </math>, оно не превышает <math> \prod_{p \in \mathbb{P};\, p \leqslant 2n/3} p = \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right )</math>. Поскольку <math> {2n \choose n} </math> равен произведению <math> p^{R(p,\;n)} </math> по всем простым <math>p</math>, мы получаем: : <math> \frac {4^n}{2n+1} \leqslant {2n \choose n} \leqslant (2n)^\sqrt{2n} \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right ). </math> Используя нашу лемму <math> \theta(n) < n \cdot \ln(4) </math>: : <math> \frac {4^n} {2n+1} < (2n)^\sqrt{2n} 4^{\frac {2n} {3}}. </math> Поскольку <math> (2n+1) < (2n)^2 </math>: : <math> 4^{\frac {n}{3}} < (2n)^{2+\sqrt{2n}}. </math> Кроме того, <math> 2 \leqslant \frac {\sqrt{2n}}{3} </math> (поскольку <math> n \geqslant 18 </math>): : <math> 4^{\frac {n}{3}} < (2n)^{\frac {4} {3}\sqrt{2n}}. </math> [[w:Логарифм|Логарифмируя]] обе части, получаем : <math> \sqrt{2n} \ln(2) < 4 \cdot \ln(2n). </math> Делая подстановку <math>2^{2t} = 2n</math>: : <math> \frac {2^t} {t} < 8 </math> Это даёт нам <math>t < 6</math> и противоречие: : <math>n=\frac {2^{2t}} {2}<\frac {2^{2 \cdot 6}} {2}=2048.</math> Следовательно, наше допущение было неверно. Что и требовалось доказать. == Примечания == ga5i0ayogioymr2cmqu0jhn8vmbu2sg 267068 267067 2026-05-17T14:51:05Z Leksey 3027 Leksey переименовал страницу [[Постулат Бертрана]] в [[Теория чисел/Постулат Бертрана]] без оставления перенаправления: по обсуждению на СО 267067 wikitext text/x-wiki {{Wikipedia|Постулат Бертрана}} '''Постулат Бертрана''' (''теорема Бертрана — Чебышёва'', ''[[w:Теорема_Чебышёва|теорема Чебышёва]]'') — в [[w:Теория_чисел|теории чисел]] утверждение о том, что при [[Натуральные числа|натуральном]] ''n > 3'' между числами ''n'' и ''(2n − 2)'' существует по крайней мере одно [[w:Простое_число|простое]] число. Постулат был сформулирован как [[w:Гипотеза|гипотеза]] в [[w:1845_год_в_науке|1845 году]] [[w:Бертран,_Жозеф_Луи_Франсуа|Бертраном]], который проверил его до <math>n = 3 \cdot 10^{6}</math>''<ref name=":122">{{Книга |заглавие=[[w:Математическая энциклопедия|Математическая энциклопедия]]|ответственный=под редакцией академика [[w:Виноградов, Иван Матвеевич|Виноградова И. М.]]|год=1977—1985|часть=Бертрана поступат|издательство=Советская энциклопедия|том=1|страницы=433|всего страниц=5760}}</ref><ref name=":322">{{Книга |автор=Савин А. П.|заглавие=Энциклопедический словарь юного математика|год=1989|часть=Простое число|место=Москва|издательство=Педагогика|страницы=262|всего страниц=352|isbn=5-7155-0218-7}}</ref><ref name=":222">{{Cite web|url=https://mathworld.wolfram.com/BertrandsPostulate.html|title=Bertrand's Postulate|lang=en|website=mathworld.wolfram.com}}</ref><ref name=":023">{{Книга |ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|часть=§ 3. Постулат Ж. Бертрана — теорема П. Л. Чебышёва|место=Калининград|страницы=44|всего страниц=158}}</ref><ref name=":42">{{Cite web|url=https://bigenc.ru/c/teoremy-chebyshiova-o-prostykh-chislakh-5b2f4d|title=Теоремы Чебышёва о простых числах|author=Лаврик Александр Фёдорович|website=bigenc.ru|date=12 декабря 2024|publisher=[[БРЭ]]|url-status=live}}</ref>''<ref name=":53">{{Книга |автор=Paulo Ribenboim|заглавие=The Little Book of Bigger Primes. Second Edition|год=2004|язык=en|издательство=Springer-Verlag New York, Inc|всего страниц=356|isbn=0-387-20169-6}}</ref><ref name=":63">{{Книга |ссылка=https://faculty.ksu.edu.sa/sites/default/files/proofs_in_the_book.pdf|автор=Martin Aigner. Günter M. Ziegler|заглавие=Proofs from the book|год=2010|язык=de|место=Berlin, Germany|издательство=Springer-Verlag Berlin Heidelberg|страниц=274|isbn=978-3-642-00855-9|doi=10.1007/978-3-642-00856-6}}</ref><ref name=":73">{{Книга |ссылка=http://optic.cs.nstu.ru/files/Lit/Math/Осипов.pdf|автор=Н. Н. Осипов|заглавие=Теория чисел. Конспект лекций|год=2008|место=Красноярск|издательство=Институт космических и информационных технологий СФУ|страниц=117}}</ref><ref name=":04">{{Статья |ссылка=https://cyberleninka.ru/article/n/o-rabotah-s-b-stechkina-po-teorii-chisel|автор=М. Р. Габдуллин, [[Конягин, Сергей Владимирович|С. В. Конягин]]|заглавие=О работах С. Б. Стечкина по теории чисел|год=2020|издание=Чебышевский сборник|тип=|том=21|выпуск=4|doi=10.22405/2226-8383-2020-21-4-9-18}}</ref>. Другие формулировки: * при любом ''n > 1'' имеется [[w:Простое_число|простое]] число, принадлежащее интервалу (''n, 2n)<ref name=":122" /><ref name=":322" /><ref name=":222" /><ref name=":023" /><ref name=":42" /><ref name=":53" />''<ref name=":63" />''<ref name=":73" />'' * для ''n ≥ 1'': ''p<sub>n+1</sub> < 2p<sub>n</sub>, p<sub>n</sub>''<ref name=":53" /> * для ''n ≥ 1: π(2n) − π(n) ≥ 1''<ref name=":53" /> В [[w:1852_год_в_науке|1852 году]] постулат был доказан [[w:Чебышёв,_Пафнутий_Львович|Чебышёвым]]''<ref name=":122" /><ref name=":322" /><ref name=":023" />''<ref name=":53" />. По другим источникам - в 1850 году''<ref name=":222" />''<ref name=":63" /><ref name=":73" />. В дальнейшем несколько математиков предложили более простые варианты доказательства: * [[w:Сриниваса_Рамануджан_Айенгор|Рамануджан]] в 1919 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" />. Ученый также доказал, что количество простых чисел в интервале <math>(n, 2n)</math> можно ограничить снизу неубывающей последовательностью, которая стремится к бесконечности, такой что в [[w:Простые_числа_Рамануджана|простых числах Рамануджана]] достигается равенство{{Нет АИ|17|05|2026}}. * [[w:Эрдёш,_Пол|Эрдёш]] [[Постулат Бертрана|в 1932 году]]''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[wikipedia:Leo_Moser|Мозер]] в 1949 году<ref name=":53" /><ref>{{Cite web|url=https://www.zyymat.com/leo-mosers-proof-of-bertrands-postulate.html|title=Доказательство Лео Мозером постулата Бертрана|lang=en|website=www.zyymat.com}}</ref> * [[w:Стечкин,_Сергей_Борисович|Стечкин]] в 1968 году''<ref name=":73" />''<ref name=":04" /> == Доказательство == === Доказательство Эрдёша{{Нет АИ|nocat=Нет АИ}} === В доказательстве мы используем следующие обозначения: * <math>{a \choose b}</math> — [[w:Биномиальный_коэффициент|биномиальный коэффициент]] или [[w:Сочетание|число сочетаний]] из <math>a</math> по <math>b</math>. * <math> \left \lfloor x \right \rfloor </math> — [[w:Целая_часть|целая часть]] <math>x</math>. Обозначим множество простых чисел через <math>\mathbb{P}</math> и определим <math>\theta(n)</math> как сумму логарифмов простых чисел, не превышающих <math>n</math>: : <math> \theta(n) = \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p). </math> Например, <math> \theta(10)=\ln 2 + \ln 3 + \ln 5 + \ln 7 </math>. Эта функция называется ''<math>\theta</math>-функция Чебышёва''. '''Лемма''' : <math> \theta(n) < n \cdot \ln(4) </math> для всех <math> n\geqslant 1 </math>. (Интересно, что для доказательства теоремы о том, что простых чисел «не очень мало», нам приходится сначала доказать лемму, гласящую, что простых чисел «не очень много».) Заметим — и это главная идея доказательства леммы — что для любого целого неотрицательного <math>m</math>, биноминальный коэффициент <math> {2m+1 \choose m} </math> делится на все простые числа в интервале <math>[m+2,\;2m+1]</math>. В самом деле, <math> {2m+1 \choose m} = \frac {(2m+1)!} {m!(m+1)!} </math>, a любое простое число в указанном интервале делит числитель этой дроби и не делит её знаменатель. Поскольку биноминальный коэффициент делится на все такие простые числа, он не может быть меньше их произведения :: <math> {2m+1 \choose m} \geqslant \prod_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} p.</math> Взяв логарифм от обеих частей неравенства, получаем :: <math> \ln {2m+1 \choose m} \geqslant \sum_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} \ln p = \theta(2m+1)-\theta(m+1). </math> С другой стороны, биноминальный коэффициент <math> {2m+1 \choose m} </math> легко оценить сверху: :: <math> {2m+1 \choose m} = \frac {{2m+1 \choose m}+{2m+1 \choose m+1}}{2} \leqslant \frac {\sum_{k=0}^{2m+1}{2m+1 \choose k}} {2} = </math> :: <math> = \frac {(1+1)^{2m+1}}{2} = 4^m. </math> Объединяя два последних неравенства, получаем :: <math>\theta(2m+1)-\theta(m+1) \leqslant \ln 4^m = m \ln 4 </math> Откуда :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 </math> Теперь легко доказать лемму по индукции: * <math>n = 1</math>: :: <math> \theta(1)= 0 < 1 \cdot \ln(4). </math> * <math>n = 2</math>: :: <math> \theta(2)=\ln(2) < 2 \cdot \ln(4). </math> * <math> n>2 </math> и <math>n</math> нечётно. Пусть <math> n = 2m+1 </math>. :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 < (m+1) \ln 4 + m \ln 4 = (2m+1) \ln 4 = n \ln 4</math> * <math>n > 2</math> и <math>n</math> чётно. :: <math> \theta(n) = \theta(n-1) < (n-1) \cdot \ln(4) < n \cdot \ln(4) </math> (поскольку любое чётное число, большее 2 составное, то <math> \ln (n) </math> не входит в сумму <math> \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p) </math>). Лемма доказана. '''Доказательство постулата''' Теперь переходим к доказательству самого постулата. Основная идея доказательства — разложить биноминальный коэффициент <math> 2n \choose n </math> на простые множители. Если между <math>n</math> и <math>2n</math> нет простых чисел, то произведение всех этих простых множителей окажется ''слишком маленьким.'' Доказываем от противного. Допустим, что для некоторого целого <math>n \geqslant 2</math> не существует простого числа <math>p</math> такого, что <math>n < p < 2n</math>. Если <math>2 \leqslant n < 2048</math>, то одно из простых чисел 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259 и 2503 (каждое последующее меньше удвоенного предыдущего), назовём его <math>p</math>, удовлетворяет неравенству <math>n < p < 2n</math>. Следовательно, <math>n \geqslant 2048</math>. Оценим <math> 2n \choose n </math>. : <math> 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n \choose k}. </math> Поскольку <math> {2n \choose n} </math> — максимальный член суммы, мы имеем: : <math> \frac {4^n} {2n+1} \leqslant {2n \choose n}. </math> '''Определение R(p, n) и его оценка сверху''' Пусть <math> R(p,\; n) </math> — степень <math>p</math> в разложении <math> {2n \choose n} </math> на простые множители. :: <math>{2n \choose n} = \prod_p{p^{R(p,\;n)}}.</math> Поскольку <math>n!</math> для каждого <math>j</math> имеет ровно <math> \left \lfloor \frac {n} {p^j} \right \rfloor </math> сомножителей, делящихся на <math>p^j</math>, в разложении <math>n!</math> на простые множители <math>p</math> входит в степени <math> \sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor </math>. Поэтому : <math> R(p,\;n)=\sum_{j=1}^\infty \left \lfloor \frac {2n} {p^j} \right \rfloor-2\sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor=\sum_{j=1}^\infty \left( \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor \right). </math> Чтобы узнать об этой сумме побольше, оценим, с одной стороны, насколько велики её слагаемые, а с другой — их количество. '''Величина''': каждое слагаемое <math> \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor </math> может быть или 0, или 1 (в зависимости от дробной части <math> \frac {n} {p^j} </math> : если она меньше <math>\frac{1}{2}</math>, слагаемое равно 0, а если <math>\frac{1}{2}</math> или больше, то 1). '''Количество''': все слагаемые с <math> j > \frac {\ln(2n)} {\ln(p)} </math> равны нулю, потому что для них <math> \frac {2n} {p^j} < 1 </math>. Поэтому только <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> первых слагаемых имеют шансы быть ненулевыми. Итак, <math> R(p,\;n) </math> — сумма <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> слагаемых, каждое из которых равно 0 или 1. Следовательно, : <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor. </math> '''Оценка p^R(p, n)''' Оценим теперь <math> p^{R(p,n)} </math>. : <math>p^{R(p,\;n)} = \exp \left ( R(p,\;n) \ln p \right ) \leqslant \exp \left ( \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor \ln p \right ) \leqslant 2n. </math> Это была оценка для любых <math>p</math>. Но гораздо лучшую оценку можно получить для <math> \sqrt {2n} < p \leqslant 2n </math>. Для таких <math>p</math>, количество слагаемых <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> равно 1, то есть в нашей сумме всего одно слагаемое: : <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor. </math> Если это слагаемое равно 1, то <math> p^{R(p,\;n)} = p </math> . А если оно равно 0, то <math>p^{R(p,\;n)} = 1 </math>. '''В каком интервале могут находиться простые делители?''' А теперь посмотрим, в каком интервале находятся простые делители. <math> {2n \choose n} </math> не имеет простых делителей <math>p</math> таких, что: * <math>2n < p</math>, потому что <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor = 0 </math>. * <math> n<p \leqslant 2n </math>, потому что мы предположили, что в этом интервале нет простых чисел. * <math> \frac {2n} {3} <p \leqslant n </math>, потому что при <math> p > \sqrt{2n} </math> (так как <math> n \geqslant 5 </math>) имеем <math> R(p, \; n) \leq 1</math>, что даёт нам <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor < \left \lfloor \frac {2n} {\frac{2n} {3}} \right \rfloor - 2\left \lfloor \frac{n} {n} \right \rfloor = 3-2 = 1,</math> откуда <math> R(p, \; n) = 0 </math>. Получается, что у <math> {2n \choose n} </math> нет простых делителей, больших чем <math> \frac {2n} {3} </math>. '''Перемножение всех p^R(p, n)''' Теперь оценим произведение <math>p^{R(p,\;n)}</math> по всем простым делителям <math>p</math> числа <math> {2n \choose n} </math> . Для делителей, не больших <math> \sqrt{2n} </math>, произведение не превышает <math> {(2n)} ^ {\sqrt{2n}} </math> . А для простых делителей, больших <math> \sqrt{2n} </math>, оно не превышает <math> \prod_{p \in \mathbb{P};\, p \leqslant 2n/3} p = \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right )</math>. Поскольку <math> {2n \choose n} </math> равен произведению <math> p^{R(p,\;n)} </math> по всем простым <math>p</math>, мы получаем: : <math> \frac {4^n}{2n+1} \leqslant {2n \choose n} \leqslant (2n)^\sqrt{2n} \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right ). </math> Используя нашу лемму <math> \theta(n) < n \cdot \ln(4) </math>: : <math> \frac {4^n} {2n+1} < (2n)^\sqrt{2n} 4^{\frac {2n} {3}}. </math> Поскольку <math> (2n+1) < (2n)^2 </math>: : <math> 4^{\frac {n}{3}} < (2n)^{2+\sqrt{2n}}. </math> Кроме того, <math> 2 \leqslant \frac {\sqrt{2n}}{3} </math> (поскольку <math> n \geqslant 18 </math>): : <math> 4^{\frac {n}{3}} < (2n)^{\frac {4} {3}\sqrt{2n}}. </math> [[w:Логарифм|Логарифмируя]] обе части, получаем : <math> \sqrt{2n} \ln(2) < 4 \cdot \ln(2n). </math> Делая подстановку <math>2^{2t} = 2n</math>: : <math> \frac {2^t} {t} < 8 </math> Это даёт нам <math>t < 6</math> и противоречие: : <math>n=\frac {2^{2t}} {2}<\frac {2^{2 \cdot 6}} {2}=2048.</math> Следовательно, наше допущение было неверно. Что и требовалось доказать. == Примечания == ga5i0ayogioymr2cmqu0jhn8vmbu2sg 267073 267068 2026-05-17T16:26:51Z AllaBuraya 79455 267073 wikitext text/x-wiki {{Wikipedia|Постулат Бертрана}} '''Постулат Бертрана''' (''теорема Бертрана — Чебышёва'', ''[[w:Теорема_Чебышёва|теорема Чебышёва]]'') — в [[w:Теория_чисел|теории чисел]] утверждение о том, что при [[Натуральные числа|натуральном]] ''n > 3'' между числами ''n'' и ''(2n − 2)'' существует по крайней мере одно [[w:Простое_число|простое]] число. Постулат был сформулирован как [[w:Гипотеза|гипотеза]] в [[w:1845_год_в_науке|1845 году]] [[w:Бертран,_Жозеф_Луи_Франсуа|Бертраном]], который проверил его до <math>n = 3 \cdot 10^{6}</math>''<ref name=":122">{{Книга |заглавие=[[w:Математическая энциклопедия|Математическая энциклопедия]]|ответственный=под редакцией академика [[w:Виноградов, Иван Матвеевич|Виноградова И. М.]]|год=1977—1985|часть=Бертрана поступат|издательство=Советская энциклопедия|том=1|страницы=433|всего страниц=5760}}</ref><ref name=":322">{{Книга |автор=Савин А. П.|заглавие=Энциклопедический словарь юного математика|год=1989|часть=Простое число|место=Москва|издательство=Педагогика|страницы=262|всего страниц=352|isbn=5-7155-0218-7}}</ref><ref name=":222">{{Cite web|url=https://mathworld.wolfram.com/BertrandsPostulate.html|title=Bertrand's Postulate|lang=en|website=mathworld.wolfram.com}}</ref><ref name=":023">{{Книга |ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|часть=§ 3. Постулат Ж. Бертрана — теорема П. Л. Чебышёва|место=Калининград|страницы=44|всего страниц=158}}</ref><ref name=":42">{{Cite web|url=https://bigenc.ru/c/teoremy-chebyshiova-o-prostykh-chislakh-5b2f4d|title=Теоремы Чебышёва о простых числах|author=Лаврик Александр Фёдорович|website=bigenc.ru|date=12 декабря 2024|publisher=[[БРЭ]]|url-status=live}}</ref>''<ref name=":53">{{Книга |автор=Paulo Ribenboim|заглавие=The Little Book of Bigger Primes. Second Edition|год=2004|язык=en|издательство=Springer-Verlag New York, Inc|всего страниц=356|isbn=0-387-20169-6}}</ref><ref name=":63">{{Книга |ссылка=https://faculty.ksu.edu.sa/sites/default/files/proofs_in_the_book.pdf|автор=Martin Aigner. Günter M. Ziegler|заглавие=Proofs from the book|год=2010|язык=de|место=Berlin, Germany|издательство=Springer-Verlag Berlin Heidelberg|страниц=274|isbn=978-3-642-00855-9|doi=10.1007/978-3-642-00856-6}}</ref><ref name=":73">{{Книга |ссылка=http://optic.cs.nstu.ru/files/Lit/Math/Осипов.pdf|автор=Н. Н. Осипов|заглавие=Теория чисел. Конспект лекций|год=2008|место=Красноярск|издательство=Институт космических и информационных технологий СФУ|страниц=117}}</ref><ref name=":04">{{Статья |ссылка=https://cyberleninka.ru/article/n/o-rabotah-s-b-stechkina-po-teorii-chisel|автор=М. Р. Габдуллин, [[Конягин, Сергей Владимирович|С. В. Конягин]]|заглавие=О работах С. Б. Стечкина по теории чисел|год=2020|издание=Чебышевский сборник|тип=|том=21|выпуск=4|doi=10.22405/2226-8383-2020-21-4-9-18}}</ref><ref name=":0">{{Cite web|url=https://ncatlab.org/nlab/show/Bertrand%27s+postulate|title=Постулат Бертрана|website=ncatlab.org|lang=en}}</ref>. Другие формулировки: * при любом ''n > 1'' имеется [[w:Простое_число|простое]] число, принадлежащее интервалу (''n, 2n)<ref name=":122" /><ref name=":322" /><ref name=":222" /><ref name=":023" /><ref name=":42" /><ref name=":53" />''<ref name=":63" />''<ref name=":73" /><ref name=":0" />'' * для ''n ≥ 1'': ''p<sub>n+1</sub> < 2p<sub>n</sub>, p<sub>n</sub>''<ref name=":53" /><ref name=":0" /> * для ''n ≥ 1: π(2n) − π(n) ≥ 1''<ref name=":53" /> В [[w:1852_год_в_науке|1852 году]] постулат был доказан [[w:Чебышёв,_Пафнутий_Львович|Чебышёвым]]''<ref name=":122" /><ref name=":322" /><ref name=":023" />''<ref name=":53" />. По другим источникам - в 1850 году''<ref name=":222" />''<ref name=":63" /><ref name=":73" />. В дальнейшем несколько математиков предложили более простые варианты доказательства: * [[w:Сриниваса_Рамануджан_Айенгор|Рамануджан]] в 1919 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[w:Эрдёш,_Пол|Эрдёш]] [[Постулат Бертрана|в 1932 году]]''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[wikipedia:Leo_Moser|Мозер]] в 1949 году<ref name=":53" /><ref>{{Cite web|url=https://www.zyymat.com/leo-mosers-proof-of-bertrands-postulate.html|title=Доказательство Лео Мозером постулата Бертрана|lang=en|website=www.zyymat.com}}</ref> * [[w:Стечкин,_Сергей_Борисович|Стечкин]] в 1968 году''<ref name=":73" />''<ref name=":04" /> == Доказательство == === Доказательство Эрдёша{{Нет АИ|nocat=Нет АИ}} === В доказательстве мы используем следующие обозначения: * <math>{a \choose b}</math> — [[w:Биномиальный_коэффициент|биномиальный коэффициент]] или [[w:Сочетание|число сочетаний]] из <math>a</math> по <math>b</math>. * <math> \left \lfloor x \right \rfloor </math> — [[w:Целая_часть|целая часть]] <math>x</math>. Обозначим множество простых чисел через <math>\mathbb{P}</math> и определим <math>\theta(n)</math> как сумму логарифмов простых чисел, не превышающих <math>n</math>: : <math> \theta(n) = \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p). </math> Например, <math> \theta(10)=\ln 2 + \ln 3 + \ln 5 + \ln 7 </math>. Эта функция называется ''<math>\theta</math>-функция Чебышёва''. '''Лемма''' : <math> \theta(n) < n \cdot \ln(4) </math> для всех <math> n\geqslant 1 </math>. (Интересно, что для доказательства теоремы о том, что простых чисел «не очень мало», нам приходится сначала доказать лемму, гласящую, что простых чисел «не очень много».) Заметим — и это главная идея доказательства леммы — что для любого целого неотрицательного <math>m</math>, биноминальный коэффициент <math> {2m+1 \choose m} </math> делится на все простые числа в интервале <math>[m+2,\;2m+1]</math>. В самом деле, <math> {2m+1 \choose m} = \frac {(2m+1)!} {m!(m+1)!} </math>, a любое простое число в указанном интервале делит числитель этой дроби и не делит её знаменатель. Поскольку биноминальный коэффициент делится на все такие простые числа, он не может быть меньше их произведения :: <math> {2m+1 \choose m} \geqslant \prod_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} p.</math> Взяв логарифм от обеих частей неравенства, получаем :: <math> \ln {2m+1 \choose m} \geqslant \sum_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} \ln p = \theta(2m+1)-\theta(m+1). </math> С другой стороны, биноминальный коэффициент <math> {2m+1 \choose m} </math> легко оценить сверху: :: <math> {2m+1 \choose m} = \frac {{2m+1 \choose m}+{2m+1 \choose m+1}}{2} \leqslant \frac {\sum_{k=0}^{2m+1}{2m+1 \choose k}} {2} = </math> :: <math> = \frac {(1+1)^{2m+1}}{2} = 4^m. </math> Объединяя два последних неравенства, получаем :: <math>\theta(2m+1)-\theta(m+1) \leqslant \ln 4^m = m \ln 4 </math> Откуда :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 </math> Теперь легко доказать лемму по индукции: * <math>n = 1</math>: :: <math> \theta(1)= 0 < 1 \cdot \ln(4). </math> * <math>n = 2</math>: :: <math> \theta(2)=\ln(2) < 2 \cdot \ln(4). </math> * <math> n>2 </math> и <math>n</math> нечётно. Пусть <math> n = 2m+1 </math>. :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 < (m+1) \ln 4 + m \ln 4 = (2m+1) \ln 4 = n \ln 4</math> * <math>n > 2</math> и <math>n</math> чётно. :: <math> \theta(n) = \theta(n-1) < (n-1) \cdot \ln(4) < n \cdot \ln(4) </math> (поскольку любое чётное число, большее 2 составное, то <math> \ln (n) </math> не входит в сумму <math> \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p) </math>). Лемма доказана. '''Доказательство постулата''' Теперь переходим к доказательству самого постулата. Основная идея доказательства — разложить биноминальный коэффициент <math> 2n \choose n </math> на простые множители. Если между <math>n</math> и <math>2n</math> нет простых чисел, то произведение всех этих простых множителей окажется ''слишком маленьким.'' Доказываем от противного. Допустим, что для некоторого целого <math>n \geqslant 2</math> не существует простого числа <math>p</math> такого, что <math>n < p < 2n</math>. Если <math>2 \leqslant n < 2048</math>, то одно из простых чисел 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259 и 2503 (каждое последующее меньше удвоенного предыдущего), назовём его <math>p</math>, удовлетворяет неравенству <math>n < p < 2n</math>. Следовательно, <math>n \geqslant 2048</math>. Оценим <math> 2n \choose n </math>. : <math> 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n \choose k}. </math> Поскольку <math> {2n \choose n} </math> — максимальный член суммы, мы имеем: : <math> \frac {4^n} {2n+1} \leqslant {2n \choose n}. </math> '''Определение R(p, n) и его оценка сверху''' Пусть <math> R(p,\; n) </math> — степень <math>p</math> в разложении <math> {2n \choose n} </math> на простые множители. :: <math>{2n \choose n} = \prod_p{p^{R(p,\;n)}}.</math> Поскольку <math>n!</math> для каждого <math>j</math> имеет ровно <math> \left \lfloor \frac {n} {p^j} \right \rfloor </math> сомножителей, делящихся на <math>p^j</math>, в разложении <math>n!</math> на простые множители <math>p</math> входит в степени <math> \sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor </math>. Поэтому : <math> R(p,\;n)=\sum_{j=1}^\infty \left \lfloor \frac {2n} {p^j} \right \rfloor-2\sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor=\sum_{j=1}^\infty \left( \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor \right). </math> Чтобы узнать об этой сумме побольше, оценим, с одной стороны, насколько велики её слагаемые, а с другой — их количество. '''Величина''': каждое слагаемое <math> \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor </math> может быть или 0, или 1 (в зависимости от дробной части <math> \frac {n} {p^j} </math> : если она меньше <math>\frac{1}{2}</math>, слагаемое равно 0, а если <math>\frac{1}{2}</math> или больше, то 1). '''Количество''': все слагаемые с <math> j > \frac {\ln(2n)} {\ln(p)} </math> равны нулю, потому что для них <math> \frac {2n} {p^j} < 1 </math>. Поэтому только <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> первых слагаемых имеют шансы быть ненулевыми. Итак, <math> R(p,\;n) </math> — сумма <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> слагаемых, каждое из которых равно 0 или 1. Следовательно, : <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor. </math> '''Оценка p^R(p, n)''' Оценим теперь <math> p^{R(p,n)} </math>. : <math>p^{R(p,\;n)} = \exp \left ( R(p,\;n) \ln p \right ) \leqslant \exp \left ( \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor \ln p \right ) \leqslant 2n. </math> Это была оценка для любых <math>p</math>. Но гораздо лучшую оценку можно получить для <math> \sqrt {2n} < p \leqslant 2n </math>. Для таких <math>p</math>, количество слагаемых <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> равно 1, то есть в нашей сумме всего одно слагаемое: : <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor. </math> Если это слагаемое равно 1, то <math> p^{R(p,\;n)} = p </math> . А если оно равно 0, то <math>p^{R(p,\;n)} = 1 </math>. '''В каком интервале могут находиться простые делители?''' А теперь посмотрим, в каком интервале находятся простые делители. <math> {2n \choose n} </math> не имеет простых делителей <math>p</math> таких, что: * <math>2n < p</math>, потому что <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor = 0 </math>. * <math> n<p \leqslant 2n </math>, потому что мы предположили, что в этом интервале нет простых чисел. * <math> \frac {2n} {3} <p \leqslant n </math>, потому что при <math> p > \sqrt{2n} </math> (так как <math> n \geqslant 5 </math>) имеем <math> R(p, \; n) \leq 1</math>, что даёт нам <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor < \left \lfloor \frac {2n} {\frac{2n} {3}} \right \rfloor - 2\left \lfloor \frac{n} {n} \right \rfloor = 3-2 = 1,</math> откуда <math> R(p, \; n) = 0 </math>. Получается, что у <math> {2n \choose n} </math> нет простых делителей, больших чем <math> \frac {2n} {3} </math>. '''Перемножение всех p^R(p, n)''' Теперь оценим произведение <math>p^{R(p,\;n)}</math> по всем простым делителям <math>p</math> числа <math> {2n \choose n} </math> . Для делителей, не больших <math> \sqrt{2n} </math>, произведение не превышает <math> {(2n)} ^ {\sqrt{2n}} </math> . А для простых делителей, больших <math> \sqrt{2n} </math>, оно не превышает <math> \prod_{p \in \mathbb{P};\, p \leqslant 2n/3} p = \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right )</math>. Поскольку <math> {2n \choose n} </math> равен произведению <math> p^{R(p,\;n)} </math> по всем простым <math>p</math>, мы получаем: : <math> \frac {4^n}{2n+1} \leqslant {2n \choose n} \leqslant (2n)^\sqrt{2n} \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right ). </math> Используя нашу лемму <math> \theta(n) < n \cdot \ln(4) </math>: : <math> \frac {4^n} {2n+1} < (2n)^\sqrt{2n} 4^{\frac {2n} {3}}. </math> Поскольку <math> (2n+1) < (2n)^2 </math>: : <math> 4^{\frac {n}{3}} < (2n)^{2+\sqrt{2n}}. </math> Кроме того, <math> 2 \leqslant \frac {\sqrt{2n}}{3} </math> (поскольку <math> n \geqslant 18 </math>): : <math> 4^{\frac {n}{3}} < (2n)^{\frac {4} {3}\sqrt{2n}}. </math> [[w:Логарифм|Логарифмируя]] обе части, получаем : <math> \sqrt{2n} \ln(2) < 4 \cdot \ln(2n). </math> Делая подстановку <math>2^{2t} = 2n</math>: : <math> \frac {2^t} {t} < 8 </math> Это даёт нам <math>t < 6</math> и противоречие: : <math>n=\frac {2^{2t}} {2}<\frac {2^{2 \cdot 6}} {2}=2048.</math> Следовательно, наше допущение было неверно. Что и требовалось доказать. === Доказательство с учетом гипотезы Гольдбаха === Примерно в 2005 году Генри Рикардо и Ёсихиро Танака (Ricardo 05) заметили, что постулат Бертрана следует из [[w:Проблема_Гольдбаха|гипотезы Гольдбаха]]<ref name=":0" />. Если гипотеза Гольдбаха верна, то существуют простые числа p<sub>1</sub> и p<sub>2</sub> такие, что 2n = p<sub>1</sub> + p<sub>2</sub>. Мы должны иметь ввиду, что по крайней мере одно из p<sub>1</sub> и p<sub>2</sub> больше или равно n. Без потери общности предположим, что p<sub>1</sub> обладает этим свойством. Если n не является [[w:Простое_число|простым]] числом, то следует, что n < p<sub>1</sub> < 2n, как и требуется доказать. Предположим вместо этого, что n является [[w:Простое_число|простым]] числом. Тогда n + 1 является [[w:Составное_число|составным]] числом, поскольку оно должно быть кратно 2. Еще раз по гипотезе Гольдбаха, существуют простые числа p'<sub>1</sub> и p'<sub>2</sub> такие, что 2(n + 1) = p'<sub>1</sub> + p'<sub>2</sub>. Как указано выше, по крайней мере одно из p'<sub>1</sub> и p'<sub>2</sub> должно быть больше или равно n + 1. Не умаляя общности, предположим, что p'<sub>1</sub> обладает этим свойством. Тогда, поскольку n + 1 не является [[w:Простое_число|простым]] числом, мы получаем, что n + 1 < p'<sub>1</sub> < 2(n + 1), а значит, что n < p'<sub>1</sub> < 2(n + 1) Теперь p'<sub>1</sub> не равно 2n + 1, поскольку это означало бы, что p'<sub>2</sub> = 1, а это невозможно. Более того, p'<sub>1</sub> не равно 2n, поскольку 2n не является [[w:Простое_число|простым]] числом. Отсюда следует, что p'<sub>1</sub> < 2n, как и требовалось доказать. == Примечания == 1eh1ao40wykbqh8mb59txfv6zyxjv5y 267075 267073 2026-05-17T16:47:18Z AllaBuraya 79455 /* Примечания */ 267075 wikitext text/x-wiki {{Wikipedia|Постулат Бертрана}} '''Постулат Бертрана''' (''теорема Бертрана — Чебышёва'', ''[[w:Теорема_Чебышёва|теорема Чебышёва]]'') — в [[w:Теория_чисел|теории чисел]] утверждение о том, что при [[Натуральные числа|натуральном]] ''n > 3'' между числами ''n'' и ''(2n − 2)'' существует по крайней мере одно [[w:Простое_число|простое]] число. Постулат был сформулирован как [[w:Гипотеза|гипотеза]] в [[w:1845_год_в_науке|1845 году]] [[w:Бертран,_Жозеф_Луи_Франсуа|Бертраном]], который проверил его до <math>n = 3 \cdot 10^{6}</math>''<ref name=":122">{{Книга |заглавие=[[w:Математическая энциклопедия|Математическая энциклопедия]]|ответственный=под редакцией академика [[w:Виноградов, Иван Матвеевич|Виноградова И. М.]]|год=1977—1985|часть=Бертрана поступат|издательство=Советская энциклопедия|том=1|страницы=433|всего страниц=5760}}</ref><ref name=":322">{{Книга |автор=Савин А. П.|заглавие=Энциклопедический словарь юного математика|год=1989|часть=Простое число|место=Москва|издательство=Педагогика|страницы=262|всего страниц=352|isbn=5-7155-0218-7}}</ref><ref name=":222">{{Cite web|url=https://mathworld.wolfram.com/BertrandsPostulate.html|title=Bertrand's Postulate|lang=en|website=mathworld.wolfram.com}}</ref><ref name=":023">{{Книга |ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|часть=§ 3. Постулат Ж. Бертрана — теорема П. Л. Чебышёва|место=Калининград|страницы=44|всего страниц=158}}</ref><ref name=":42">{{Cite web|url=https://bigenc.ru/c/teoremy-chebyshiova-o-prostykh-chislakh-5b2f4d|title=Теоремы Чебышёва о простых числах|author=Лаврик Александр Фёдорович|website=bigenc.ru|date=12 декабря 2024|publisher=[[w:БРЭ|БРЭ]]|url-status=live}}</ref>''<ref name=":53">{{Книга |автор=Paulo Ribenboim|заглавие=The Little Book of Bigger Primes. Second Edition|год=2004|язык=en|издательство=Springer-Verlag New York, Inc|всего страниц=356|isbn=0-387-20169-6}}</ref><ref name=":63">{{Книга |ссылка=https://faculty.ksu.edu.sa/sites/default/files/proofs_in_the_book.pdf|автор=Martin Aigner. Günter M. Ziegler|заглавие=Proofs from the book|год=2010|язык=de|место=Berlin, Germany|издательство=Springer-Verlag Berlin Heidelberg|страниц=274|isbn=978-3-642-00855-9|doi=10.1007/978-3-642-00856-6}}</ref><ref name=":73">{{Книга |ссылка=http://optic.cs.nstu.ru/files/Lit/Math/Осипов.pdf|автор=Н. Н. Осипов|заглавие=Теория чисел. Конспект лекций|год=2008|место=Красноярск|издательство=Институт космических и информационных технологий СФУ|страниц=117}}</ref><ref name=":04">{{Статья |ссылка=https://cyberleninka.ru/article/n/o-rabotah-s-b-stechkina-po-teorii-chisel|автор=М. Р. Габдуллин, [[w:Конягин, Сергей Владимирович|С. В. Конягин]]|заглавие=О работах С. Б. Стечкина по теории чисел|год=2020|издание=Чебышевский сборник|тип=|том=21|выпуск=4|doi=10.22405/2226-8383-2020-21-4-9-18}}</ref><ref name=":0">{{Cite web|url=https://ncatlab.org/nlab/show/Bertrand%27s+postulate|title=Постулат Бертрана|website=ncatlab.org|lang=en}}</ref>. Другие формулировки: * при любом ''n > 1'' имеется [[w:Простое_число|простое]] число, принадлежащее интервалу (''n, 2n)<ref name=":122" /><ref name=":322" /><ref name=":222" /><ref name=":023" /><ref name=":42" /><ref name=":53" />''<ref name=":63" />''<ref name=":73" /><ref name=":0" />'' * для ''n ≥ 1'': ''p<sub>n+1</sub> < 2p<sub>n</sub>, p<sub>n</sub>''<ref name=":53" /><ref name=":0" /> * для ''n ≥ 1: π(2n) − π(n) ≥ 1''<ref name=":53" /> В [[w:1852_год_в_науке|1852 году]] постулат был доказан [[w:Чебышёв,_Пафнутий_Львович|Чебышёвым]]''<ref name=":122" /><ref name=":322" /><ref name=":023" />''<ref name=":53" />. По другим источникам - в 1850 году''<ref name=":222" />''<ref name=":63" /><ref name=":73" />. В дальнейшем несколько математиков предложили более простые варианты доказательства: * [[w:Сриниваса_Рамануджан_Айенгор|Рамануджан]] в 1919 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[w:Эрдёш,_Пол|Эрдёш]] [[Постулат Бертрана|в 1932 году]]''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[wikipedia:Leo_Moser|Мозер]] в 1949 году<ref name=":53" /><ref>{{Cite web|url=https://www.zyymat.com/leo-mosers-proof-of-bertrands-postulate.html|title=Доказательство Лео Мозером постулата Бертрана|lang=en|website=www.zyymat.com}}</ref> * [[w:Стечкин,_Сергей_Борисович|Стечкин]] в 1968 году''<ref name=":73" />''<ref name=":04" /> == Доказательство == === Доказательство Эрдёша{{Нет АИ|nocat=Нет АИ}} === В доказательстве мы используем следующие обозначения: * <math>{a \choose b}</math> — [[w:Биномиальный_коэффициент|биномиальный коэффициент]] или [[w:Сочетание|число сочетаний]] из <math>a</math> по <math>b</math>. * <math> \left \lfloor x \right \rfloor </math> — [[w:Целая_часть|целая часть]] <math>x</math>. Обозначим множество простых чисел через <math>\mathbb{P}</math> и определим <math>\theta(n)</math> как сумму логарифмов простых чисел, не превышающих <math>n</math>: : <math> \theta(n) = \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p). </math> Например, <math> \theta(10)=\ln 2 + \ln 3 + \ln 5 + \ln 7 </math>. Эта функция называется ''<math>\theta</math>-функция Чебышёва''. '''Лемма''' : <math> \theta(n) < n \cdot \ln(4) </math> для всех <math> n\geqslant 1 </math>. (Интересно, что для доказательства теоремы о том, что простых чисел «не очень мало», нам приходится сначала доказать лемму, гласящую, что простых чисел «не очень много».) Заметим — и это главная идея доказательства леммы — что для любого целого неотрицательного <math>m</math>, биноминальный коэффициент <math> {2m+1 \choose m} </math> делится на все простые числа в интервале <math>[m+2,\;2m+1]</math>. В самом деле, <math> {2m+1 \choose m} = \frac {(2m+1)!} {m!(m+1)!} </math>, a любое простое число в указанном интервале делит числитель этой дроби и не делит её знаменатель. Поскольку биноминальный коэффициент делится на все такие простые числа, он не может быть меньше их произведения :: <math> {2m+1 \choose m} \geqslant \prod_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} p.</math> Взяв логарифм от обеих частей неравенства, получаем :: <math> \ln {2m+1 \choose m} \geqslant \sum_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} \ln p = \theta(2m+1)-\theta(m+1). </math> С другой стороны, биноминальный коэффициент <math> {2m+1 \choose m} </math> легко оценить сверху: :: <math> {2m+1 \choose m} = \frac {{2m+1 \choose m}+{2m+1 \choose m+1}}{2} \leqslant \frac {\sum_{k=0}^{2m+1}{2m+1 \choose k}} {2} = </math> :: <math> = \frac {(1+1)^{2m+1}}{2} = 4^m. </math> Объединяя два последних неравенства, получаем :: <math>\theta(2m+1)-\theta(m+1) \leqslant \ln 4^m = m \ln 4 </math> Откуда :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 </math> Теперь легко доказать лемму по индукции: * <math>n = 1</math>: :: <math> \theta(1)= 0 < 1 \cdot \ln(4). </math> * <math>n = 2</math>: :: <math> \theta(2)=\ln(2) < 2 \cdot \ln(4). </math> * <math> n>2 </math> и <math>n</math> нечётно. Пусть <math> n = 2m+1 </math>. :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 < (m+1) \ln 4 + m \ln 4 = (2m+1) \ln 4 = n \ln 4</math> * <math>n > 2</math> и <math>n</math> чётно. :: <math> \theta(n) = \theta(n-1) < (n-1) \cdot \ln(4) < n \cdot \ln(4) </math> (поскольку любое чётное число, большее 2 составное, то <math> \ln (n) </math> не входит в сумму <math> \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p) </math>). Лемма доказана. '''Доказательство постулата''' Теперь переходим к доказательству самого постулата. Основная идея доказательства — разложить биноминальный коэффициент <math> 2n \choose n </math> на простые множители. Если между <math>n</math> и <math>2n</math> нет простых чисел, то произведение всех этих простых множителей окажется ''слишком маленьким.'' Доказываем от противного. Допустим, что для некоторого целого <math>n \geqslant 2</math> не существует простого числа <math>p</math> такого, что <math>n < p < 2n</math>. Если <math>2 \leqslant n < 2048</math>, то одно из простых чисел 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259 и 2503 (каждое последующее меньше удвоенного предыдущего), назовём его <math>p</math>, удовлетворяет неравенству <math>n < p < 2n</math>. Следовательно, <math>n \geqslant 2048</math>. Оценим <math> 2n \choose n </math>. : <math> 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n \choose k}. </math> Поскольку <math> {2n \choose n} </math> — максимальный член суммы, мы имеем: : <math> \frac {4^n} {2n+1} \leqslant {2n \choose n}. </math> '''Определение R(p, n) и его оценка сверху''' Пусть <math> R(p,\; n) </math> — степень <math>p</math> в разложении <math> {2n \choose n} </math> на простые множители. :: <math>{2n \choose n} = \prod_p{p^{R(p,\;n)}}.</math> Поскольку <math>n!</math> для каждого <math>j</math> имеет ровно <math> \left \lfloor \frac {n} {p^j} \right \rfloor </math> сомножителей, делящихся на <math>p^j</math>, в разложении <math>n!</math> на простые множители <math>p</math> входит в степени <math> \sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor </math>. Поэтому : <math> R(p,\;n)=\sum_{j=1}^\infty \left \lfloor \frac {2n} {p^j} \right \rfloor-2\sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor=\sum_{j=1}^\infty \left( \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor \right). </math> Чтобы узнать об этой сумме побольше, оценим, с одной стороны, насколько велики её слагаемые, а с другой — их количество. '''Величина''': каждое слагаемое <math> \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor </math> может быть или 0, или 1 (в зависимости от дробной части <math> \frac {n} {p^j} </math> : если она меньше <math>\frac{1}{2}</math>, слагаемое равно 0, а если <math>\frac{1}{2}</math> или больше, то 1). '''Количество''': все слагаемые с <math> j > \frac {\ln(2n)} {\ln(p)} </math> равны нулю, потому что для них <math> \frac {2n} {p^j} < 1 </math>. Поэтому только <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> первых слагаемых имеют шансы быть ненулевыми. Итак, <math> R(p,\;n) </math> — сумма <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> слагаемых, каждое из которых равно 0 или 1. Следовательно, : <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor. </math> '''Оценка p^R(p, n)''' Оценим теперь <math> p^{R(p,n)} </math>. : <math>p^{R(p,\;n)} = \exp \left ( R(p,\;n) \ln p \right ) \leqslant \exp \left ( \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor \ln p \right ) \leqslant 2n. </math> Это была оценка для любых <math>p</math>. Но гораздо лучшую оценку можно получить для <math> \sqrt {2n} < p \leqslant 2n </math>. Для таких <math>p</math>, количество слагаемых <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> равно 1, то есть в нашей сумме всего одно слагаемое: : <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor. </math> Если это слагаемое равно 1, то <math> p^{R(p,\;n)} = p </math> . А если оно равно 0, то <math>p^{R(p,\;n)} = 1 </math>. '''В каком интервале могут находиться простые делители?''' А теперь посмотрим, в каком интервале находятся простые делители. <math> {2n \choose n} </math> не имеет простых делителей <math>p</math> таких, что: * <math>2n < p</math>, потому что <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor = 0 </math>. * <math> n<p \leqslant 2n </math>, потому что мы предположили, что в этом интервале нет простых чисел. * <math> \frac {2n} {3} <p \leqslant n </math>, потому что при <math> p > \sqrt{2n} </math> (так как <math> n \geqslant 5 </math>) имеем <math> R(p, \; n) \leq 1</math>, что даёт нам <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor < \left \lfloor \frac {2n} {\frac{2n} {3}} \right \rfloor - 2\left \lfloor \frac{n} {n} \right \rfloor = 3-2 = 1,</math> откуда <math> R(p, \; n) = 0 </math>. Получается, что у <math> {2n \choose n} </math> нет простых делителей, больших чем <math> \frac {2n} {3} </math>. '''Перемножение всех p^R(p, n)''' Теперь оценим произведение <math>p^{R(p,\;n)}</math> по всем простым делителям <math>p</math> числа <math> {2n \choose n} </math> . Для делителей, не больших <math> \sqrt{2n} </math>, произведение не превышает <math> {(2n)} ^ {\sqrt{2n}} </math> . А для простых делителей, больших <math> \sqrt{2n} </math>, оно не превышает <math> \prod_{p \in \mathbb{P};\, p \leqslant 2n/3} p = \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right )</math>. Поскольку <math> {2n \choose n} </math> равен произведению <math> p^{R(p,\;n)} </math> по всем простым <math>p</math>, мы получаем: : <math> \frac {4^n}{2n+1} \leqslant {2n \choose n} \leqslant (2n)^\sqrt{2n} \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right ). </math> Используя нашу лемму <math> \theta(n) < n \cdot \ln(4) </math>: : <math> \frac {4^n} {2n+1} < (2n)^\sqrt{2n} 4^{\frac {2n} {3}}. </math> Поскольку <math> (2n+1) < (2n)^2 </math>: : <math> 4^{\frac {n}{3}} < (2n)^{2+\sqrt{2n}}. </math> Кроме того, <math> 2 \leqslant \frac {\sqrt{2n}}{3} </math> (поскольку <math> n \geqslant 18 </math>): : <math> 4^{\frac {n}{3}} < (2n)^{\frac {4} {3}\sqrt{2n}}. </math> [[w:Логарифм|Логарифмируя]] обе части, получаем : <math> \sqrt{2n} \ln(2) < 4 \cdot \ln(2n). </math> Делая подстановку <math>2^{2t} = 2n</math>: : <math> \frac {2^t} {t} < 8 </math> Это даёт нам <math>t < 6</math> и противоречие: : <math>n=\frac {2^{2t}} {2}<\frac {2^{2 \cdot 6}} {2}=2048.</math> Следовательно, наше допущение было неверно. Что и требовалось доказать. === Доказательство с учетом гипотезы Гольдбаха === Примерно в 2005 году Генри Рикардо и Ёсихиро Танака (Ricardo 05) заметили, что постулат Бертрана следует из [[w:Проблема_Гольдбаха|гипотезы Гольдбаха]]<ref name=":0" />. Если гипотеза Гольдбаха верна, то существуют простые числа p<sub>1</sub> и p<sub>2</sub> такие, что 2n = p<sub>1</sub> + p<sub>2</sub>. Мы должны иметь ввиду, что по крайней мере одно из p<sub>1</sub> и p<sub>2</sub> больше или равно n. Без потери общности предположим, что p<sub>1</sub> обладает этим свойством. Если n не является [[w:Простое_число|простым]] числом, то следует, что n < p<sub>1</sub> < 2n, как и требуется доказать. Предположим вместо этого, что n является [[w:Простое_число|простым]] числом. Тогда n + 1 является [[w:Составное_число|составным]] числом, поскольку оно должно быть кратно 2. Еще раз по гипотезе Гольдбаха, существуют простые числа p'<sub>1</sub> и p'<sub>2</sub> такие, что 2(n + 1) = p'<sub>1</sub> + p'<sub>2</sub>. Как указано выше, по крайней мере одно из p'<sub>1</sub> и p'<sub>2</sub> должно быть больше или равно n + 1. Не умаляя общности, предположим, что p'<sub>1</sub> обладает этим свойством. Тогда, поскольку n + 1 не является [[w:Простое_число|простым]] числом, мы получаем, что n + 1 < p'<sub>1</sub> < 2(n + 1), а значит, что n < p'<sub>1</sub> < 2(n + 1) Теперь p'<sub>1</sub> не равно 2n + 1, поскольку это означало бы, что p'<sub>2</sub> = 1, а это невозможно. Более того, p'<sub>1</sub> не равно 2n, поскольку 2n не является [[w:Простое_число|простым]] числом. Отсюда следует, что p'<sub>1</sub> < 2n, как и требовалось доказать. == Примечания == 0nk98usa2dqyhzkmngybn23i9a5msd0 267076 267075 2026-05-17T16:50:08Z AllaBuraya 79455 267076 wikitext text/x-wiki {{Wikipedia|Постулат Бертрана}} '''Постулат Бертрана''' (''теорема Бертрана — Чебышёва'', ''[[w:Теорема_Чебышёва|теорема Чебышёва]]'') — в [[w:Теория_чисел|теории чисел]] утверждение о том, что при [[Натуральные числа|натуральном]] ''n > 3'' между числами ''n'' и ''(2n − 2)'' существует по крайней мере одно [[w:Простое_число|простое]] число. Постулат был сформулирован как [[w:Гипотеза|гипотеза]] в [[w:1845_год_в_науке|1845 году]] [[w:Бертран,_Жозеф_Луи_Франсуа|Бертраном]], который проверил его до <math>n = 3 \cdot 10^{6}</math>''<ref name=":122">{{Книга |заглавие=[[w:Математическая энциклопедия|Математическая энциклопедия]]|ответственный=под редакцией академика [[w:Виноградов, Иван Матвеевич|Виноградова И. М.]]|год=1977—1985|часть=Бертрана поступат|издательство=Советская энциклопедия|том=1|страницы=433|всего страниц=5760}}</ref><ref name=":322">{{Книга |автор=Савин А. П.|заглавие=Энциклопедический словарь юного математика|год=1989|часть=Простое число|место=Москва|издательство=Педагогика|страницы=262|всего страниц=352|isbn=5-7155-0218-7}}</ref><ref name=":222">{{Cite web|url=https://mathworld.wolfram.com/BertrandsPostulate.html|title=Bertrand's Postulate|lang=en|website=mathworld.wolfram.com}}</ref><ref name=":023">{{Книга |ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|часть=§ 3. Постулат Ж. Бертрана — теорема П. Л. Чебышёва|место=Калининград|страницы=44|всего страниц=158}}</ref><ref name=":42">{{Cite web|url=https://bigenc.ru/c/teoremy-chebyshiova-o-prostykh-chislakh-5b2f4d|title=Теоремы Чебышёва о простых числах|author=Лаврик Александр Фёдорович|website=bigenc.ru|date=12 декабря 2024|publisher=[[w:БРЭ|БРЭ]]|url-status=live}}</ref>''<ref name=":53">{{Книга |автор=Paulo Ribenboim|заглавие=The Little Book of Bigger Primes. Second Edition|год=2004|язык=en|издательство=Springer-Verlag New York, Inc|всего страниц=356|isbn=0-387-20169-6}}</ref><ref name=":63">{{Книга |ссылка=https://faculty.ksu.edu.sa/sites/default/files/proofs_in_the_book.pdf|автор=Martin Aigner. Günter M. Ziegler|заглавие=Proofs from the book|год=2010|язык=de|место=Berlin, Germany|издательство=Springer-Verlag Berlin Heidelberg|страниц=274|isbn=978-3-642-00855-9|doi=10.1007/978-3-642-00856-6}}</ref><ref name=":73">{{Книга |ссылка=http://optic.cs.nstu.ru/files/Lit/Math/Осипов.pdf|автор=Н. Н. Осипов|заглавие=Теория чисел. Конспект лекций|год=2008|место=Красноярск|издательство=Институт космических и информационных технологий СФУ|страниц=117}}</ref><ref name=":04">{{Статья |ссылка=https://cyberleninka.ru/article/n/o-rabotah-s-b-stechkina-po-teorii-chisel|автор=М. Р. Габдуллин, [[w:Конягин, Сергей Владимирович|С. В. Конягин]]|заглавие=О работах С. Б. Стечкина по теории чисел|год=2020|издание=Чебышевский сборник|тип=|том=21|выпуск=4|doi=10.22405/2226-8383-2020-21-4-9-18}}</ref><ref name=":0">{{Cite web|url=https://ncatlab.org/nlab/show/Bertrand%27s+postulate|title=Постулат Бертрана|website=ncatlab.org|lang=en}}</ref>. Другие формулировки: * при любом ''n > 1'' имеется [[w:Простое_число|простое]] число, принадлежащее интервалу (''n, 2n)<ref name=":122" /><ref name=":322" /><ref name=":222" /><ref name=":023" /><ref name=":42" /><ref name=":53" />''<ref name=":63" />''<ref name=":73" /><ref name=":0" />'' * для ''n ≥ 1'': ''p<sub>n+1</sub> < 2p<sub>n</sub>, p<sub>n</sub>''<ref name=":53" /><ref name=":0" /> * для ''n ≥ 1: π(2n) − π(n) ≥ 1''<ref name=":53" /> В [[w:1852_год_в_науке|1852 году]] постулат был доказан [[w:Чебышёв,_Пафнутий_Львович|Чебышёвым]]''<ref name=":122" /><ref name=":322" /><ref name=":023" />''<ref name=":53" />. По другим источникам - в 1850 году''<ref name=":222" />''<ref name=":63" /><ref name=":73" />. В дальнейшем несколько математиков предложили более простые варианты доказательства: * [[w:Сриниваса_Рамануджан_Айенгор|Рамануджан]] в 1919 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[w:Эрдёш,_Пол|Эрдёш]] в 1932 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[wikipedia:Leo_Moser|Мозер]] в 1949 году<ref name=":53" /><ref>{{Cite web|url=https://www.zyymat.com/leo-mosers-proof-of-bertrands-postulate.html|title=Доказательство Лео Мозером постулата Бертрана|lang=en|website=www.zyymat.com}}</ref> * [[w:Стечкин,_Сергей_Борисович|Стечкин]] в 1968 году''<ref name=":73" />''<ref name=":04" /> * Генри Рикардо и Ёсихиро Танака в 2005 году<ref name=":0" /> == Доказательство == === Доказательство Эрдёша{{Нет АИ|nocat=Нет АИ}} === В доказательстве мы используем следующие обозначения: * <math>{a \choose b}</math> — [[w:Биномиальный_коэффициент|биномиальный коэффициент]] или [[w:Сочетание|число сочетаний]] из <math>a</math> по <math>b</math>. * <math> \left \lfloor x \right \rfloor </math> — [[w:Целая_часть|целая часть]] <math>x</math>. Обозначим множество простых чисел через <math>\mathbb{P}</math> и определим <math>\theta(n)</math> как сумму логарифмов простых чисел, не превышающих <math>n</math>: : <math> \theta(n) = \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p). </math> Например, <math> \theta(10)=\ln 2 + \ln 3 + \ln 5 + \ln 7 </math>. Эта функция называется ''<math>\theta</math>-функция Чебышёва''. '''Лемма''' : <math> \theta(n) < n \cdot \ln(4) </math> для всех <math> n\geqslant 1 </math>. (Интересно, что для доказательства теоремы о том, что простых чисел «не очень мало», нам приходится сначала доказать лемму, гласящую, что простых чисел «не очень много».) Заметим — и это главная идея доказательства леммы — что для любого целого неотрицательного <math>m</math>, биноминальный коэффициент <math> {2m+1 \choose m} </math> делится на все простые числа в интервале <math>[m+2,\;2m+1]</math>. В самом деле, <math> {2m+1 \choose m} = \frac {(2m+1)!} {m!(m+1)!} </math>, a любое простое число в указанном интервале делит числитель этой дроби и не делит её знаменатель. Поскольку биноминальный коэффициент делится на все такие простые числа, он не может быть меньше их произведения :: <math> {2m+1 \choose m} \geqslant \prod_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} p.</math> Взяв логарифм от обеих частей неравенства, получаем :: <math> \ln {2m+1 \choose m} \geqslant \sum_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} \ln p = \theta(2m+1)-\theta(m+1). </math> С другой стороны, биноминальный коэффициент <math> {2m+1 \choose m} </math> легко оценить сверху: :: <math> {2m+1 \choose m} = \frac {{2m+1 \choose m}+{2m+1 \choose m+1}}{2} \leqslant \frac {\sum_{k=0}^{2m+1}{2m+1 \choose k}} {2} = </math> :: <math> = \frac {(1+1)^{2m+1}}{2} = 4^m. </math> Объединяя два последних неравенства, получаем :: <math>\theta(2m+1)-\theta(m+1) \leqslant \ln 4^m = m \ln 4 </math> Откуда :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 </math> Теперь легко доказать лемму по индукции: * <math>n = 1</math>: :: <math> \theta(1)= 0 < 1 \cdot \ln(4). </math> * <math>n = 2</math>: :: <math> \theta(2)=\ln(2) < 2 \cdot \ln(4). </math> * <math> n>2 </math> и <math>n</math> нечётно. Пусть <math> n = 2m+1 </math>. :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 < (m+1) \ln 4 + m \ln 4 = (2m+1) \ln 4 = n \ln 4</math> * <math>n > 2</math> и <math>n</math> чётно. :: <math> \theta(n) = \theta(n-1) < (n-1) \cdot \ln(4) < n \cdot \ln(4) </math> (поскольку любое чётное число, большее 2 составное, то <math> \ln (n) </math> не входит в сумму <math> \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p) </math>). Лемма доказана. '''Доказательство постулата''' Теперь переходим к доказательству самого постулата. Основная идея доказательства — разложить биноминальный коэффициент <math> 2n \choose n </math> на простые множители. Если между <math>n</math> и <math>2n</math> нет простых чисел, то произведение всех этих простых множителей окажется ''слишком маленьким.'' Доказываем от противного. Допустим, что для некоторого целого <math>n \geqslant 2</math> не существует простого числа <math>p</math> такого, что <math>n < p < 2n</math>. Если <math>2 \leqslant n < 2048</math>, то одно из простых чисел 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259 и 2503 (каждое последующее меньше удвоенного предыдущего), назовём его <math>p</math>, удовлетворяет неравенству <math>n < p < 2n</math>. Следовательно, <math>n \geqslant 2048</math>. Оценим <math> 2n \choose n </math>. : <math> 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n \choose k}. </math> Поскольку <math> {2n \choose n} </math> — максимальный член суммы, мы имеем: : <math> \frac {4^n} {2n+1} \leqslant {2n \choose n}. </math> '''Определение R(p, n) и его оценка сверху''' Пусть <math> R(p,\; n) </math> — степень <math>p</math> в разложении <math> {2n \choose n} </math> на простые множители. :: <math>{2n \choose n} = \prod_p{p^{R(p,\;n)}}.</math> Поскольку <math>n!</math> для каждого <math>j</math> имеет ровно <math> \left \lfloor \frac {n} {p^j} \right \rfloor </math> сомножителей, делящихся на <math>p^j</math>, в разложении <math>n!</math> на простые множители <math>p</math> входит в степени <math> \sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor </math>. Поэтому : <math> R(p,\;n)=\sum_{j=1}^\infty \left \lfloor \frac {2n} {p^j} \right \rfloor-2\sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor=\sum_{j=1}^\infty \left( \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor \right). </math> Чтобы узнать об этой сумме побольше, оценим, с одной стороны, насколько велики её слагаемые, а с другой — их количество. '''Величина''': каждое слагаемое <math> \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor </math> может быть или 0, или 1 (в зависимости от дробной части <math> \frac {n} {p^j} </math> : если она меньше <math>\frac{1}{2}</math>, слагаемое равно 0, а если <math>\frac{1}{2}</math> или больше, то 1). '''Количество''': все слагаемые с <math> j > \frac {\ln(2n)} {\ln(p)} </math> равны нулю, потому что для них <math> \frac {2n} {p^j} < 1 </math>. Поэтому только <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> первых слагаемых имеют шансы быть ненулевыми. Итак, <math> R(p,\;n) </math> — сумма <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> слагаемых, каждое из которых равно 0 или 1. Следовательно, : <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor. </math> '''Оценка p^R(p, n)''' Оценим теперь <math> p^{R(p,n)} </math>. : <math>p^{R(p,\;n)} = \exp \left ( R(p,\;n) \ln p \right ) \leqslant \exp \left ( \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor \ln p \right ) \leqslant 2n. </math> Это была оценка для любых <math>p</math>. Но гораздо лучшую оценку можно получить для <math> \sqrt {2n} < p \leqslant 2n </math>. Для таких <math>p</math>, количество слагаемых <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> равно 1, то есть в нашей сумме всего одно слагаемое: : <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor. </math> Если это слагаемое равно 1, то <math> p^{R(p,\;n)} = p </math> . А если оно равно 0, то <math>p^{R(p,\;n)} = 1 </math>. '''В каком интервале могут находиться простые делители?''' А теперь посмотрим, в каком интервале находятся простые делители. <math> {2n \choose n} </math> не имеет простых делителей <math>p</math> таких, что: * <math>2n < p</math>, потому что <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor = 0 </math>. * <math> n<p \leqslant 2n </math>, потому что мы предположили, что в этом интервале нет простых чисел. * <math> \frac {2n} {3} <p \leqslant n </math>, потому что при <math> p > \sqrt{2n} </math> (так как <math> n \geqslant 5 </math>) имеем <math> R(p, \; n) \leq 1</math>, что даёт нам <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor < \left \lfloor \frac {2n} {\frac{2n} {3}} \right \rfloor - 2\left \lfloor \frac{n} {n} \right \rfloor = 3-2 = 1,</math> откуда <math> R(p, \; n) = 0 </math>. Получается, что у <math> {2n \choose n} </math> нет простых делителей, больших чем <math> \frac {2n} {3} </math>. '''Перемножение всех p^R(p, n)''' Теперь оценим произведение <math>p^{R(p,\;n)}</math> по всем простым делителям <math>p</math> числа <math> {2n \choose n} </math> . Для делителей, не больших <math> \sqrt{2n} </math>, произведение не превышает <math> {(2n)} ^ {\sqrt{2n}} </math> . А для простых делителей, больших <math> \sqrt{2n} </math>, оно не превышает <math> \prod_{p \in \mathbb{P};\, p \leqslant 2n/3} p = \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right )</math>. Поскольку <math> {2n \choose n} </math> равен произведению <math> p^{R(p,\;n)} </math> по всем простым <math>p</math>, мы получаем: : <math> \frac {4^n}{2n+1} \leqslant {2n \choose n} \leqslant (2n)^\sqrt{2n} \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right ). </math> Используя нашу лемму <math> \theta(n) < n \cdot \ln(4) </math>: : <math> \frac {4^n} {2n+1} < (2n)^\sqrt{2n} 4^{\frac {2n} {3}}. </math> Поскольку <math> (2n+1) < (2n)^2 </math>: : <math> 4^{\frac {n}{3}} < (2n)^{2+\sqrt{2n}}. </math> Кроме того, <math> 2 \leqslant \frac {\sqrt{2n}}{3} </math> (поскольку <math> n \geqslant 18 </math>): : <math> 4^{\frac {n}{3}} < (2n)^{\frac {4} {3}\sqrt{2n}}. </math> [[w:Логарифм|Логарифмируя]] обе части, получаем : <math> \sqrt{2n} \ln(2) < 4 \cdot \ln(2n). </math> Делая подстановку <math>2^{2t} = 2n</math>: : <math> \frac {2^t} {t} < 8 </math> Это даёт нам <math>t < 6</math> и противоречие: : <math>n=\frac {2^{2t}} {2}<\frac {2^{2 \cdot 6}} {2}=2048.</math> Следовательно, наше допущение было неверно. Что и требовалось доказать. === Доказательство с учетом гипотезы Гольдбаха === Примерно в 2005 году Генри Рикардо и Ёсихиро Танака (Ricardo 05) заметили, что постулат Бертрана следует из [[w:Проблема_Гольдбаха|гипотезы Гольдбаха]]<ref name=":0" />. Если гипотеза Гольдбаха верна, то существуют простые числа p<sub>1</sub> и p<sub>2</sub> такие, что 2n = p<sub>1</sub> + p<sub>2</sub>. Мы должны иметь ввиду, что по крайней мере одно из p<sub>1</sub> и p<sub>2</sub> больше или равно n. Без потери общности предположим, что p<sub>1</sub> обладает этим свойством. Если n не является [[w:Простое_число|простым]] числом, то следует, что n < p<sub>1</sub> < 2n, как и требуется доказать. Предположим вместо этого, что n является [[w:Простое_число|простым]] числом. Тогда n + 1 является [[w:Составное_число|составным]] числом, поскольку оно должно быть кратно 2. Еще раз по гипотезе Гольдбаха, существуют простые числа p'<sub>1</sub> и p'<sub>2</sub> такие, что 2(n + 1) = p'<sub>1</sub> + p'<sub>2</sub>. Как указано выше, по крайней мере одно из p'<sub>1</sub> и p'<sub>2</sub> должно быть больше или равно n + 1. Не умаляя общности, предположим, что p'<sub>1</sub> обладает этим свойством. Тогда, поскольку n + 1 не является [[w:Простое_число|простым]] числом, мы получаем, что n + 1 < p'<sub>1</sub> < 2(n + 1), а значит, что n < p'<sub>1</sub> < 2(n + 1) Теперь p'<sub>1</sub> не равно 2n + 1, поскольку это означало бы, что p'<sub>2</sub> = 1, а это невозможно. Более того, p'<sub>1</sub> не равно 2n, поскольку 2n не является [[w:Простое_число|простым]] числом. Отсюда следует, что p'<sub>1</sub> < 2n, как и требовалось доказать. == Примечания == kl8kjhdr0bjhxan1r76yasqgmf36idf 267079 267076 2026-05-17T17:05:28Z AllaBuraya 79455 /* Примечания */ 267079 wikitext text/x-wiki {{Wikipedia|Постулат Бертрана}} '''Постулат Бертрана''' (''теорема Бертрана — Чебышёва'', ''[[w:Теорема_Чебышёва|теорема Чебышёва]]'') — в [[w:Теория_чисел|теории чисел]] утверждение о том, что при [[Натуральные числа|натуральном]] ''n > 3'' между числами ''n'' и ''(2n − 2)'' существует по крайней мере одно [[w:Простое_число|простое]] число. Постулат был сформулирован как [[w:Гипотеза|гипотеза]] в [[w:1845_год_в_науке|1845 году]] [[w:Бертран,_Жозеф_Луи_Франсуа|Бертраном]], который проверил его до <math>n = 3 \cdot 10^{6}</math>''<ref name=":122">{{Книга |заглавие=[[w:Математическая энциклопедия|Математическая энциклопедия]]|ответственный=под редакцией академика [[w:Виноградов, Иван Матвеевич|Виноградова И. М.]]|год=1977—1985|часть=Бертрана поступат|издательство=Советская энциклопедия|том=1|страницы=433|всего страниц=5760|автор=Б. М. Бредихин}}</ref><ref name=":322">{{Книга |автор=Савин А. П.|заглавие=Энциклопедический словарь юного математика|год=1989|часть=Простое число|место=Москва|издательство=Педагогика|страницы=262|всего страниц=352|isbn=5-7155-0218-7}}</ref><ref name=":222">{{Cite web|url=https://mathworld.wolfram.com/BertrandsPostulate.html|title=Bertrand's Postulate|lang=en|website=mathworld.wolfram.com|author=Weisstein Eric W.}}</ref><ref name=":023">{{Книга |ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|часть=§ 3. Постулат Ж. Бертрана — теорема П. Л. Чебышёва|место=Калининград|страницы=44|всего страниц=158}}</ref><ref name=":42">{{Cite web|url=https://bigenc.ru/c/teoremy-chebyshiova-o-prostykh-chislakh-5b2f4d|title=Теоремы Чебышёва о простых числах|author=Лаврик Александр Фёдорович|website=bigenc.ru|date=12 декабря 2024|publisher=[[w:БРЭ|БРЭ]]|url-status=live}}</ref>''<ref name=":53">{{Книга |автор=Paulo Ribenboim|заглавие=The Little Book of Bigger Primes. Second Edition|год=2004|язык=en|издательство=Springer-Verlag New York, Inc|всего страниц=356|isbn=0-387-20169-6}}</ref><ref name=":63">{{Книга |ссылка=https://faculty.ksu.edu.sa/sites/default/files/proofs_in_the_book.pdf|автор=Martin Aigner. Günter M. Ziegler|заглавие=Proofs from the book|год=2010|язык=de|место=Berlin, Germany|издательство=Springer-Verlag Berlin Heidelberg|страниц=274|isbn=978-3-642-00855-9|doi=10.1007/978-3-642-00856-6}}</ref><ref name=":73">{{Книга |ссылка=http://optic.cs.nstu.ru/files/Lit/Math/Осипов.pdf|автор=Н. Н. Осипов|заглавие=Теория чисел. Конспект лекций|год=2008|место=Красноярск|издательство=Институт космических и информационных технологий СФУ|страниц=117}}</ref><ref name=":04">{{Статья |ссылка=https://cyberleninka.ru/article/n/o-rabotah-s-b-stechkina-po-teorii-chisel|автор=М. Р. Габдуллин, [[w:Конягин, Сергей Владимирович|С. В. Конягин]]|заглавие=О работах С. Б. Стечкина по теории чисел|год=2020|издание=Чебышевский сборник|тип=|том=21|выпуск=4|doi=10.22405/2226-8383-2020-21-4-9-18}}</ref><ref name=":0">{{Cite web|url=https://ncatlab.org/nlab/show/Bertrand%27s+postulate|title=Постулат Бертрана|website=ncatlab.org|lang=en}}</ref>. Другие формулировки: * при любом ''n > 1'' имеется [[w:Простое_число|простое]] число, принадлежащее интервалу (''n, 2n)<ref name=":122" /><ref name=":322" /><ref name=":222" /><ref name=":023" /><ref name=":42" /><ref name=":53" />''<ref name=":63" />''<ref name=":73" /><ref name=":0" />'' * для ''n ≥ 1'': ''p<sub>n+1</sub> < 2p<sub>n</sub>, p<sub>n</sub>''<ref name=":53" /><ref name=":0" /> * для ''n ≥ 1: π(2n) − π(n) ≥ 1''<ref name=":53" /> В [[w:1852_год_в_науке|1852 году]] постулат был доказан [[w:Чебышёв,_Пафнутий_Львович|Чебышёвым]]''<ref name=":122" /><ref name=":322" /><ref name=":023" />''<ref name=":53" />. По другим источникам - в 1850 году''<ref name=":222" />''<ref name=":63" /><ref name=":73" />. В дальнейшем несколько математиков предложили более простые варианты доказательства: * [[w:Сриниваса_Рамануджан_Айенгор|Рамануджан]] в 1919 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[w:Эрдёш,_Пол|Эрдёш]] в 1932 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[wikipedia:Leo_Moser|Мозер]] в 1949 году<ref name=":53" /><ref>{{Cite web|url=https://www.zyymat.com/leo-mosers-proof-of-bertrands-postulate.html|title=Доказательство Лео Мозером постулата Бертрана|lang=en|website=www.zyymat.com|author=Zyymat}}</ref> * [[w:Стечкин,_Сергей_Борисович|Стечкин]] в 1968 году''<ref name=":73" />''<ref name=":04" /> * Генри Рикардо и Ёсихиро Танака в 2005 году<ref name=":0" /> == Доказательство == === Доказательство Эрдёша{{Нет АИ|nocat=Нет АИ}} === В доказательстве мы используем следующие обозначения: * <math>{a \choose b}</math> — [[w:Биномиальный_коэффициент|биномиальный коэффициент]] или [[w:Сочетание|число сочетаний]] из <math>a</math> по <math>b</math>. * <math> \left \lfloor x \right \rfloor </math> — [[w:Целая_часть|целая часть]] <math>x</math>. Обозначим множество простых чисел через <math>\mathbb{P}</math> и определим <math>\theta(n)</math> как сумму логарифмов простых чисел, не превышающих <math>n</math>: : <math> \theta(n) = \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p). </math> Например, <math> \theta(10)=\ln 2 + \ln 3 + \ln 5 + \ln 7 </math>. Эта функция называется ''<math>\theta</math>-функция Чебышёва''. '''Лемма''' : <math> \theta(n) < n \cdot \ln(4) </math> для всех <math> n\geqslant 1 </math>. (Интересно, что для доказательства теоремы о том, что простых чисел «не очень мало», нам приходится сначала доказать лемму, гласящую, что простых чисел «не очень много».) Заметим — и это главная идея доказательства леммы — что для любого целого неотрицательного <math>m</math>, биноминальный коэффициент <math> {2m+1 \choose m} </math> делится на все простые числа в интервале <math>[m+2,\;2m+1]</math>. В самом деле, <math> {2m+1 \choose m} = \frac {(2m+1)!} {m!(m+1)!} </math>, a любое простое число в указанном интервале делит числитель этой дроби и не делит её знаменатель. Поскольку биноминальный коэффициент делится на все такие простые числа, он не может быть меньше их произведения :: <math> {2m+1 \choose m} \geqslant \prod_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} p.</math> Взяв логарифм от обеих частей неравенства, получаем :: <math> \ln {2m+1 \choose m} \geqslant \sum_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} \ln p = \theta(2m+1)-\theta(m+1). </math> С другой стороны, биноминальный коэффициент <math> {2m+1 \choose m} </math> легко оценить сверху: :: <math> {2m+1 \choose m} = \frac {{2m+1 \choose m}+{2m+1 \choose m+1}}{2} \leqslant \frac {\sum_{k=0}^{2m+1}{2m+1 \choose k}} {2} = </math> :: <math> = \frac {(1+1)^{2m+1}}{2} = 4^m. </math> Объединяя два последних неравенства, получаем :: <math>\theta(2m+1)-\theta(m+1) \leqslant \ln 4^m = m \ln 4 </math> Откуда :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 </math> Теперь легко доказать лемму по индукции: * <math>n = 1</math>: :: <math> \theta(1)= 0 < 1 \cdot \ln(4). </math> * <math>n = 2</math>: :: <math> \theta(2)=\ln(2) < 2 \cdot \ln(4). </math> * <math> n>2 </math> и <math>n</math> нечётно. Пусть <math> n = 2m+1 </math>. :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 < (m+1) \ln 4 + m \ln 4 = (2m+1) \ln 4 = n \ln 4</math> * <math>n > 2</math> и <math>n</math> чётно. :: <math> \theta(n) = \theta(n-1) < (n-1) \cdot \ln(4) < n \cdot \ln(4) </math> (поскольку любое чётное число, большее 2 составное, то <math> \ln (n) </math> не входит в сумму <math> \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p) </math>). Лемма доказана. '''Доказательство постулата''' Теперь переходим к доказательству самого постулата. Основная идея доказательства — разложить биноминальный коэффициент <math> 2n \choose n </math> на простые множители. Если между <math>n</math> и <math>2n</math> нет простых чисел, то произведение всех этих простых множителей окажется ''слишком маленьким.'' Доказываем от противного. Допустим, что для некоторого целого <math>n \geqslant 2</math> не существует простого числа <math>p</math> такого, что <math>n < p < 2n</math>. Если <math>2 \leqslant n < 2048</math>, то одно из простых чисел 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259 и 2503 (каждое последующее меньше удвоенного предыдущего), назовём его <math>p</math>, удовлетворяет неравенству <math>n < p < 2n</math>. Следовательно, <math>n \geqslant 2048</math>. Оценим <math> 2n \choose n </math>. : <math> 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n \choose k}. </math> Поскольку <math> {2n \choose n} </math> — максимальный член суммы, мы имеем: : <math> \frac {4^n} {2n+1} \leqslant {2n \choose n}. </math> '''Определение R(p, n) и его оценка сверху''' Пусть <math> R(p,\; n) </math> — степень <math>p</math> в разложении <math> {2n \choose n} </math> на простые множители. :: <math>{2n \choose n} = \prod_p{p^{R(p,\;n)}}.</math> Поскольку <math>n!</math> для каждого <math>j</math> имеет ровно <math> \left \lfloor \frac {n} {p^j} \right \rfloor </math> сомножителей, делящихся на <math>p^j</math>, в разложении <math>n!</math> на простые множители <math>p</math> входит в степени <math> \sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor </math>. Поэтому : <math> R(p,\;n)=\sum_{j=1}^\infty \left \lfloor \frac {2n} {p^j} \right \rfloor-2\sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor=\sum_{j=1}^\infty \left( \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor \right). </math> Чтобы узнать об этой сумме побольше, оценим, с одной стороны, насколько велики её слагаемые, а с другой — их количество. '''Величина''': каждое слагаемое <math> \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor </math> может быть или 0, или 1 (в зависимости от дробной части <math> \frac {n} {p^j} </math> : если она меньше <math>\frac{1}{2}</math>, слагаемое равно 0, а если <math>\frac{1}{2}</math> или больше, то 1). '''Количество''': все слагаемые с <math> j > \frac {\ln(2n)} {\ln(p)} </math> равны нулю, потому что для них <math> \frac {2n} {p^j} < 1 </math>. Поэтому только <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> первых слагаемых имеют шансы быть ненулевыми. Итак, <math> R(p,\;n) </math> — сумма <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> слагаемых, каждое из которых равно 0 или 1. Следовательно, : <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor. </math> '''Оценка p^R(p, n)''' Оценим теперь <math> p^{R(p,n)} </math>. : <math>p^{R(p,\;n)} = \exp \left ( R(p,\;n) \ln p \right ) \leqslant \exp \left ( \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor \ln p \right ) \leqslant 2n. </math> Это была оценка для любых <math>p</math>. Но гораздо лучшую оценку можно получить для <math> \sqrt {2n} < p \leqslant 2n </math>. Для таких <math>p</math>, количество слагаемых <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> равно 1, то есть в нашей сумме всего одно слагаемое: : <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor. </math> Если это слагаемое равно 1, то <math> p^{R(p,\;n)} = p </math> . А если оно равно 0, то <math>p^{R(p,\;n)} = 1 </math>. '''В каком интервале могут находиться простые делители?''' А теперь посмотрим, в каком интервале находятся простые делители. <math> {2n \choose n} </math> не имеет простых делителей <math>p</math> таких, что: * <math>2n < p</math>, потому что <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor = 0 </math>. * <math> n<p \leqslant 2n </math>, потому что мы предположили, что в этом интервале нет простых чисел. * <math> \frac {2n} {3} <p \leqslant n </math>, потому что при <math> p > \sqrt{2n} </math> (так как <math> n \geqslant 5 </math>) имеем <math> R(p, \; n) \leq 1</math>, что даёт нам <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor < \left \lfloor \frac {2n} {\frac{2n} {3}} \right \rfloor - 2\left \lfloor \frac{n} {n} \right \rfloor = 3-2 = 1,</math> откуда <math> R(p, \; n) = 0 </math>. Получается, что у <math> {2n \choose n} </math> нет простых делителей, больших чем <math> \frac {2n} {3} </math>. '''Перемножение всех p^R(p, n)''' Теперь оценим произведение <math>p^{R(p,\;n)}</math> по всем простым делителям <math>p</math> числа <math> {2n \choose n} </math> . Для делителей, не больших <math> \sqrt{2n} </math>, произведение не превышает <math> {(2n)} ^ {\sqrt{2n}} </math> . А для простых делителей, больших <math> \sqrt{2n} </math>, оно не превышает <math> \prod_{p \in \mathbb{P};\, p \leqslant 2n/3} p = \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right )</math>. Поскольку <math> {2n \choose n} </math> равен произведению <math> p^{R(p,\;n)} </math> по всем простым <math>p</math>, мы получаем: : <math> \frac {4^n}{2n+1} \leqslant {2n \choose n} \leqslant (2n)^\sqrt{2n} \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right ). </math> Используя нашу лемму <math> \theta(n) < n \cdot \ln(4) </math>: : <math> \frac {4^n} {2n+1} < (2n)^\sqrt{2n} 4^{\frac {2n} {3}}. </math> Поскольку <math> (2n+1) < (2n)^2 </math>: : <math> 4^{\frac {n}{3}} < (2n)^{2+\sqrt{2n}}. </math> Кроме того, <math> 2 \leqslant \frac {\sqrt{2n}}{3} </math> (поскольку <math> n \geqslant 18 </math>): : <math> 4^{\frac {n}{3}} < (2n)^{\frac {4} {3}\sqrt{2n}}. </math> [[w:Логарифм|Логарифмируя]] обе части, получаем : <math> \sqrt{2n} \ln(2) < 4 \cdot \ln(2n). </math> Делая подстановку <math>2^{2t} = 2n</math>: : <math> \frac {2^t} {t} < 8 </math> Это даёт нам <math>t < 6</math> и противоречие: : <math>n=\frac {2^{2t}} {2}<\frac {2^{2 \cdot 6}} {2}=2048.</math> Следовательно, наше допущение было неверно. Что и требовалось доказать. === Доказательство с учетом гипотезы Гольдбаха === Примерно в 2005 году Генри Рикардо и Ёсихиро Танака (Ricardo 05) заметили, что постулат Бертрана следует из [[w:Проблема_Гольдбаха|гипотезы Гольдбаха]]<ref name=":0" />. Если гипотеза Гольдбаха верна, то существуют простые числа p<sub>1</sub> и p<sub>2</sub> такие, что 2n = p<sub>1</sub> + p<sub>2</sub>. Мы должны иметь ввиду, что по крайней мере одно из p<sub>1</sub> и p<sub>2</sub> больше или равно n. Без потери общности предположим, что p<sub>1</sub> обладает этим свойством. Если n не является [[w:Простое_число|простым]] числом, то следует, что n < p<sub>1</sub> < 2n, как и требуется доказать. Предположим вместо этого, что n является [[w:Простое_число|простым]] числом. Тогда n + 1 является [[w:Составное_число|составным]] числом, поскольку оно должно быть кратно 2. Еще раз по гипотезе Гольдбаха, существуют простые числа p'<sub>1</sub> и p'<sub>2</sub> такие, что 2(n + 1) = p'<sub>1</sub> + p'<sub>2</sub>. Как указано выше, по крайней мере одно из p'<sub>1</sub> и p'<sub>2</sub> должно быть больше или равно n + 1. Не умаляя общности, предположим, что p'<sub>1</sub> обладает этим свойством. Тогда, поскольку n + 1 не является [[w:Простое_число|простым]] числом, мы получаем, что n + 1 < p'<sub>1</sub> < 2(n + 1), а значит, что n < p'<sub>1</sub> < 2(n + 1) Теперь p'<sub>1</sub> не равно 2n + 1, поскольку это означало бы, что p'<sub>2</sub> = 1, а это невозможно. Более того, p'<sub>1</sub> не равно 2n, поскольку 2n не является [[w:Простое_число|простым]] числом. Отсюда следует, что p'<sub>1</sub> < 2n, как и требовалось доказать. == Примечания == ex3ppwuj3x938crtey20ddxhwnjhc76 267080 267079 2026-05-17T17:08:09Z AllaBuraya 79455 /* Примечания */ 267080 wikitext text/x-wiki {{Wikipedia|Постулат Бертрана}} '''Постулат Бертрана''' (''теорема Бертрана — Чебышёва'', ''[[w:Теорема_Чебышёва|теорема Чебышёва]]'') — в [[w:Теория_чисел|теории чисел]] утверждение о том, что при [[Натуральные числа|натуральном]] ''n > 3'' между числами ''n'' и ''(2n − 2)'' существует по крайней мере одно [[w:Простое_число|простое]] число. Постулат был сформулирован как [[w:Гипотеза|гипотеза]] в [[w:1845_год_в_науке|1845 году]] [[w:Бертран,_Жозеф_Луи_Франсуа|Бертраном]], который проверил его до <math>n = 3 \cdot 10^{6}</math>''<ref name=":122">{{Книга |заглавие=[[w:Математическая энциклопедия|Математическая энциклопедия]]|ответственный=под редакцией академика [[w:Виноградов, Иван Матвеевич|Виноградова И. М.]]|год=1977—1985|часть=Бертрана поступат|издательство=Советская энциклопедия|том=1|страницы=433|всего страниц=5760|автор=Б. М. Бредихин}}</ref><ref name=":322">{{Книга |автор=Савин А. П.|заглавие=Энциклопедический словарь юного математика|год=1989|часть=Простое число|место=Москва|издательство=Педагогика|страницы=262|всего страниц=352|isbn=5-7155-0218-7}}</ref><ref name=":222">{{Cite web|url=https://mathworld.wolfram.com/BertrandsPostulate.html|title=Bertrand's Postulate|lang=en|website=mathworld.wolfram.com|author=Weisstein Eric W.}}</ref><ref name=":023">{{Книга |ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|часть=§ 3. Постулат Ж. Бертрана — теорема П. Л. Чебышёва|место=Калининград|страницы=44|всего страниц=158}}</ref><ref name=":42">{{Cite web|url=https://bigenc.ru/c/teoremy-chebyshiova-o-prostykh-chislakh-5b2f4d|title=Теоремы Чебышёва о простых числах|author=Лаврик Александр Фёдорович|website=bigenc.ru|date=12 декабря 2024|publisher=[[w:БРЭ|БРЭ]]|url-status=live}}</ref>''<ref name=":53">{{Книга |автор=Paulo Ribenboim|заглавие=The Little Book of Bigger Primes. Second Edition|год=2004|язык=en|издательство=Springer-Verlag New York, Inc|всего страниц=356|isbn=0-387-20169-6}}</ref><ref name=":63">{{Книга |ссылка=https://faculty.ksu.edu.sa/sites/default/files/proofs_in_the_book.pdf|автор=Martin Aigner. Günter M. Ziegler|заглавие=Proofs from the book|год=2010|язык=de|место=Berlin, Germany|издательство=Springer-Verlag Berlin Heidelberg|страниц=274|isbn=978-3-642-00855-9|doi=10.1007/978-3-642-00856-6}}</ref><ref name=":73">{{Книга |ссылка=http://optic.cs.nstu.ru/files/Lit/Math/Осипов.pdf|автор=Н. Н. Осипов|заглавие=Теория чисел. Конспект лекций|год=2008|место=Красноярск|издательство=Институт космических и информационных технологий СФУ|страниц=117}}</ref><ref name=":04">{{Статья |ссылка=https://cyberleninka.ru/article/n/o-rabotah-s-b-stechkina-po-teorii-chisel|автор=М. Р. Габдуллин, [[w:Конягин, Сергей Владимирович|С. В. Конягин]]|заглавие=О работах С. Б. Стечкина по теории чисел|год=2020|издание=Чебышевский сборник|тип=|том=21|выпуск=4|doi=10.22405/2226-8383-2020-21-4-9-18}}</ref><ref name=":0">{{Cite web|url=https://ncatlab.org/nlab/show/Bertrand%27s+postulate|title=Bertrand's postulate|website=ncatlab.org|lang=en}}</ref>. Другие формулировки: * при любом ''n > 1'' имеется [[w:Простое_число|простое]] число, принадлежащее интервалу (''n, 2n)<ref name=":122" /><ref name=":322" /><ref name=":222" /><ref name=":023" /><ref name=":42" /><ref name=":53" />''<ref name=":63" />''<ref name=":73" /><ref name=":0" />'' * для ''n ≥ 1'': ''p<sub>n+1</sub> < 2p<sub>n</sub>, p<sub>n</sub>''<ref name=":53" /><ref name=":0" /> * для ''n ≥ 1: π(2n) − π(n) ≥ 1''<ref name=":53" /> В [[w:1852_год_в_науке|1852 году]] постулат был доказан [[w:Чебышёв,_Пафнутий_Львович|Чебышёвым]]''<ref name=":122" /><ref name=":322" /><ref name=":023" />''<ref name=":53" />. По другим источникам - в 1850 году''<ref name=":222" />''<ref name=":63" /><ref name=":73" />. В дальнейшем несколько математиков предложили более простые варианты доказательства: * [[w:Сриниваса_Рамануджан_Айенгор|Рамануджан]] в 1919 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[w:Эрдёш,_Пол|Эрдёш]] в 1932 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[wikipedia:Leo_Moser|Мозер]] в 1949 году<ref name=":53" /><ref>{{Cite web|url=https://www.zyymat.com/leo-mosers-proof-of-bertrands-postulate.html|title=Leo Moser’s proof of Bertrand’s postulate|lang=en|website=www.zyymat.com|author=Zyymat}}</ref> * [[w:Стечкин,_Сергей_Борисович|Стечкин]] в 1968 году''<ref name=":73" />''<ref name=":04" /> * Генри Рикардо и Ёсихиро Танака в 2005 году<ref name=":0" /> == Доказательство == === Доказательство Эрдёша{{Нет АИ|nocat=Нет АИ}} === В доказательстве мы используем следующие обозначения: * <math>{a \choose b}</math> — [[w:Биномиальный_коэффициент|биномиальный коэффициент]] или [[w:Сочетание|число сочетаний]] из <math>a</math> по <math>b</math>. * <math> \left \lfloor x \right \rfloor </math> — [[w:Целая_часть|целая часть]] <math>x</math>. Обозначим множество простых чисел через <math>\mathbb{P}</math> и определим <math>\theta(n)</math> как сумму логарифмов простых чисел, не превышающих <math>n</math>: : <math> \theta(n) = \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p). </math> Например, <math> \theta(10)=\ln 2 + \ln 3 + \ln 5 + \ln 7 </math>. Эта функция называется ''<math>\theta</math>-функция Чебышёва''. '''Лемма''' : <math> \theta(n) < n \cdot \ln(4) </math> для всех <math> n\geqslant 1 </math>. (Интересно, что для доказательства теоремы о том, что простых чисел «не очень мало», нам приходится сначала доказать лемму, гласящую, что простых чисел «не очень много».) Заметим — и это главная идея доказательства леммы — что для любого целого неотрицательного <math>m</math>, биноминальный коэффициент <math> {2m+1 \choose m} </math> делится на все простые числа в интервале <math>[m+2,\;2m+1]</math>. В самом деле, <math> {2m+1 \choose m} = \frac {(2m+1)!} {m!(m+1)!} </math>, a любое простое число в указанном интервале делит числитель этой дроби и не делит её знаменатель. Поскольку биноминальный коэффициент делится на все такие простые числа, он не может быть меньше их произведения :: <math> {2m+1 \choose m} \geqslant \prod_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} p.</math> Взяв логарифм от обеих частей неравенства, получаем :: <math> \ln {2m+1 \choose m} \geqslant \sum_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} \ln p = \theta(2m+1)-\theta(m+1). </math> С другой стороны, биноминальный коэффициент <math> {2m+1 \choose m} </math> легко оценить сверху: :: <math> {2m+1 \choose m} = \frac {{2m+1 \choose m}+{2m+1 \choose m+1}}{2} \leqslant \frac {\sum_{k=0}^{2m+1}{2m+1 \choose k}} {2} = </math> :: <math> = \frac {(1+1)^{2m+1}}{2} = 4^m. </math> Объединяя два последних неравенства, получаем :: <math>\theta(2m+1)-\theta(m+1) \leqslant \ln 4^m = m \ln 4 </math> Откуда :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 </math> Теперь легко доказать лемму по индукции: * <math>n = 1</math>: :: <math> \theta(1)= 0 < 1 \cdot \ln(4). </math> * <math>n = 2</math>: :: <math> \theta(2)=\ln(2) < 2 \cdot \ln(4). </math> * <math> n>2 </math> и <math>n</math> нечётно. Пусть <math> n = 2m+1 </math>. :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 < (m+1) \ln 4 + m \ln 4 = (2m+1) \ln 4 = n \ln 4</math> * <math>n > 2</math> и <math>n</math> чётно. :: <math> \theta(n) = \theta(n-1) < (n-1) \cdot \ln(4) < n \cdot \ln(4) </math> (поскольку любое чётное число, большее 2 составное, то <math> \ln (n) </math> не входит в сумму <math> \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p) </math>). Лемма доказана. '''Доказательство постулата''' Теперь переходим к доказательству самого постулата. Основная идея доказательства — разложить биноминальный коэффициент <math> 2n \choose n </math> на простые множители. Если между <math>n</math> и <math>2n</math> нет простых чисел, то произведение всех этих простых множителей окажется ''слишком маленьким.'' Доказываем от противного. Допустим, что для некоторого целого <math>n \geqslant 2</math> не существует простого числа <math>p</math> такого, что <math>n < p < 2n</math>. Если <math>2 \leqslant n < 2048</math>, то одно из простых чисел 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259 и 2503 (каждое последующее меньше удвоенного предыдущего), назовём его <math>p</math>, удовлетворяет неравенству <math>n < p < 2n</math>. Следовательно, <math>n \geqslant 2048</math>. Оценим <math> 2n \choose n </math>. : <math> 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n \choose k}. </math> Поскольку <math> {2n \choose n} </math> — максимальный член суммы, мы имеем: : <math> \frac {4^n} {2n+1} \leqslant {2n \choose n}. </math> '''Определение R(p, n) и его оценка сверху''' Пусть <math> R(p,\; n) </math> — степень <math>p</math> в разложении <math> {2n \choose n} </math> на простые множители. :: <math>{2n \choose n} = \prod_p{p^{R(p,\;n)}}.</math> Поскольку <math>n!</math> для каждого <math>j</math> имеет ровно <math> \left \lfloor \frac {n} {p^j} \right \rfloor </math> сомножителей, делящихся на <math>p^j</math>, в разложении <math>n!</math> на простые множители <math>p</math> входит в степени <math> \sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor </math>. Поэтому : <math> R(p,\;n)=\sum_{j=1}^\infty \left \lfloor \frac {2n} {p^j} \right \rfloor-2\sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor=\sum_{j=1}^\infty \left( \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor \right). </math> Чтобы узнать об этой сумме побольше, оценим, с одной стороны, насколько велики её слагаемые, а с другой — их количество. '''Величина''': каждое слагаемое <math> \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor </math> может быть или 0, или 1 (в зависимости от дробной части <math> \frac {n} {p^j} </math> : если она меньше <math>\frac{1}{2}</math>, слагаемое равно 0, а если <math>\frac{1}{2}</math> или больше, то 1). '''Количество''': все слагаемые с <math> j > \frac {\ln(2n)} {\ln(p)} </math> равны нулю, потому что для них <math> \frac {2n} {p^j} < 1 </math>. Поэтому только <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> первых слагаемых имеют шансы быть ненулевыми. Итак, <math> R(p,\;n) </math> — сумма <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> слагаемых, каждое из которых равно 0 или 1. Следовательно, : <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor. </math> '''Оценка p^R(p, n)''' Оценим теперь <math> p^{R(p,n)} </math>. : <math>p^{R(p,\;n)} = \exp \left ( R(p,\;n) \ln p \right ) \leqslant \exp \left ( \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor \ln p \right ) \leqslant 2n. </math> Это была оценка для любых <math>p</math>. Но гораздо лучшую оценку можно получить для <math> \sqrt {2n} < p \leqslant 2n </math>. Для таких <math>p</math>, количество слагаемых <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> равно 1, то есть в нашей сумме всего одно слагаемое: : <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor. </math> Если это слагаемое равно 1, то <math> p^{R(p,\;n)} = p </math> . А если оно равно 0, то <math>p^{R(p,\;n)} = 1 </math>. '''В каком интервале могут находиться простые делители?''' А теперь посмотрим, в каком интервале находятся простые делители. <math> {2n \choose n} </math> не имеет простых делителей <math>p</math> таких, что: * <math>2n < p</math>, потому что <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor = 0 </math>. * <math> n<p \leqslant 2n </math>, потому что мы предположили, что в этом интервале нет простых чисел. * <math> \frac {2n} {3} <p \leqslant n </math>, потому что при <math> p > \sqrt{2n} </math> (так как <math> n \geqslant 5 </math>) имеем <math> R(p, \; n) \leq 1</math>, что даёт нам <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor < \left \lfloor \frac {2n} {\frac{2n} {3}} \right \rfloor - 2\left \lfloor \frac{n} {n} \right \rfloor = 3-2 = 1,</math> откуда <math> R(p, \; n) = 0 </math>. Получается, что у <math> {2n \choose n} </math> нет простых делителей, больших чем <math> \frac {2n} {3} </math>. '''Перемножение всех p^R(p, n)''' Теперь оценим произведение <math>p^{R(p,\;n)}</math> по всем простым делителям <math>p</math> числа <math> {2n \choose n} </math> . Для делителей, не больших <math> \sqrt{2n} </math>, произведение не превышает <math> {(2n)} ^ {\sqrt{2n}} </math> . А для простых делителей, больших <math> \sqrt{2n} </math>, оно не превышает <math> \prod_{p \in \mathbb{P};\, p \leqslant 2n/3} p = \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right )</math>. Поскольку <math> {2n \choose n} </math> равен произведению <math> p^{R(p,\;n)} </math> по всем простым <math>p</math>, мы получаем: : <math> \frac {4^n}{2n+1} \leqslant {2n \choose n} \leqslant (2n)^\sqrt{2n} \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right ). </math> Используя нашу лемму <math> \theta(n) < n \cdot \ln(4) </math>: : <math> \frac {4^n} {2n+1} < (2n)^\sqrt{2n} 4^{\frac {2n} {3}}. </math> Поскольку <math> (2n+1) < (2n)^2 </math>: : <math> 4^{\frac {n}{3}} < (2n)^{2+\sqrt{2n}}. </math> Кроме того, <math> 2 \leqslant \frac {\sqrt{2n}}{3} </math> (поскольку <math> n \geqslant 18 </math>): : <math> 4^{\frac {n}{3}} < (2n)^{\frac {4} {3}\sqrt{2n}}. </math> [[w:Логарифм|Логарифмируя]] обе части, получаем : <math> \sqrt{2n} \ln(2) < 4 \cdot \ln(2n). </math> Делая подстановку <math>2^{2t} = 2n</math>: : <math> \frac {2^t} {t} < 8 </math> Это даёт нам <math>t < 6</math> и противоречие: : <math>n=\frac {2^{2t}} {2}<\frac {2^{2 \cdot 6}} {2}=2048.</math> Следовательно, наше допущение было неверно. Что и требовалось доказать. === Доказательство с учетом гипотезы Гольдбаха === Примерно в 2005 году Генри Рикардо и Ёсихиро Танака (Ricardo 05) заметили, что постулат Бертрана следует из [[w:Проблема_Гольдбаха|гипотезы Гольдбаха]]<ref name=":0" />. Если гипотеза Гольдбаха верна, то существуют простые числа p<sub>1</sub> и p<sub>2</sub> такие, что 2n = p<sub>1</sub> + p<sub>2</sub>. Мы должны иметь ввиду, что по крайней мере одно из p<sub>1</sub> и p<sub>2</sub> больше или равно n. Без потери общности предположим, что p<sub>1</sub> обладает этим свойством. Если n не является [[w:Простое_число|простым]] числом, то следует, что n < p<sub>1</sub> < 2n, как и требуется доказать. Предположим вместо этого, что n является [[w:Простое_число|простым]] числом. Тогда n + 1 является [[w:Составное_число|составным]] числом, поскольку оно должно быть кратно 2. Еще раз по гипотезе Гольдбаха, существуют простые числа p'<sub>1</sub> и p'<sub>2</sub> такие, что 2(n + 1) = p'<sub>1</sub> + p'<sub>2</sub>. Как указано выше, по крайней мере одно из p'<sub>1</sub> и p'<sub>2</sub> должно быть больше или равно n + 1. Не умаляя общности, предположим, что p'<sub>1</sub> обладает этим свойством. Тогда, поскольку n + 1 не является [[w:Простое_число|простым]] числом, мы получаем, что n + 1 < p'<sub>1</sub> < 2(n + 1), а значит, что n < p'<sub>1</sub> < 2(n + 1) Теперь p'<sub>1</sub> не равно 2n + 1, поскольку это означало бы, что p'<sub>2</sub> = 1, а это невозможно. Более того, p'<sub>1</sub> не равно 2n, поскольку 2n не является [[w:Простое_число|простым]] числом. Отсюда следует, что p'<sub>1</sub> < 2n, как и требовалось доказать. == Примечания == 32ch3idqv0t1gj6g356qfauxo6flu1r 267081 267080 2026-05-17T17:10:53Z AllaBuraya 79455 267081 wikitext text/x-wiki {{Wikipedia|Постулат Бертрана}} '''Постулат Бертрана''' (''теорема Бертрана — Чебышёва'', ''[[w:Теорема_Чебышёва|теорема Чебышёва]]'') — в [[w:Теория_чисел|теории чисел]] утверждение о том, что при [[Натуральные числа|натуральном]] ''n > 3'' между числами ''n'' и ''(2n − 2)'' существует по крайней мере одно [[w:Простое_число|простое]] число. Постулат был сформулирован как [[w:Гипотеза|гипотеза]] в [[w:1845_год_в_науке|1845 году]] [[w:Бертран,_Жозеф_Луи_Франсуа|Бертраном]], который проверил его до <math>n = 3 \cdot 10^{6}</math>''<ref name=":122">{{Книга |заглавие=[[w:Математическая энциклопедия|Математическая энциклопедия]]|ответственный=под редакцией академика [[w:Виноградов, Иван Матвеевич|Виноградова И. М.]]|год=1977—1985|часть=Бертрана поступат|издательство=Советская энциклопедия|том=1|страницы=433|всего страниц=5760|автор=Б. М. Бредихин}}</ref><ref name=":322">{{Книга |автор=Савин А. П.|заглавие=Энциклопедический словарь юного математика|год=1989|часть=Простое число|место=Москва|издательство=Педагогика|страницы=262|всего страниц=352|isbn=5-7155-0218-7}}</ref><ref name=":222">{{Cite web|url=https://mathworld.wolfram.com/BertrandsPostulate.html|title=Bertrand's Postulate|lang=en|website=mathworld.wolfram.com|author=Weisstein Eric W.}}</ref><ref name=":023">{{Книга |ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|часть=§ 3. Постулат Ж. Бертрана — теорема П. Л. Чебышёва|место=Калининград|страницы=44|всего страниц=158}}</ref><ref name=":42">{{Cite web|url=https://bigenc.ru/c/teoremy-chebyshiova-o-prostykh-chislakh-5b2f4d|title=Теоремы Чебышёва о простых числах|author=Лаврик Александр Фёдорович|website=bigenc.ru|date=12 декабря 2024|publisher=[[w:БРЭ|БРЭ]]|url-status=live}}</ref>''<ref name=":53">{{Книга |автор=Paulo Ribenboim|заглавие=The Little Book of Bigger Primes. Second Edition|год=2004|язык=en|издательство=Springer-Verlag New York, Inc|всего страниц=356|isbn=0-387-20169-6}}</ref><ref name=":63">{{Книга |ссылка=https://faculty.ksu.edu.sa/sites/default/files/proofs_in_the_book.pdf|автор=Martin Aigner. Günter M. Ziegler|заглавие=Proofs from the book|год=2010|язык=de|место=Berlin, Germany|издательство=Springer-Verlag Berlin Heidelberg|страниц=274|isbn=978-3-642-00855-9|doi=10.1007/978-3-642-00856-6}}</ref><ref name=":73">{{Книга |ссылка=http://optic.cs.nstu.ru/files/Lit/Math/Осипов.pdf|автор=Н. Н. Осипов|заглавие=Теория чисел. Конспект лекций|год=2008|место=Красноярск|издательство=Институт космических и информационных технологий СФУ|страниц=117}}</ref><ref name=":04">{{Статья |ссылка=https://cyberleninka.ru/article/n/o-rabotah-s-b-stechkina-po-teorii-chisel|автор=М. Р. Габдуллин, [[w:Конягин, Сергей Владимирович|С. В. Конягин]]|заглавие=О работах С. Б. Стечкина по теории чисел|год=2020|издание=Чебышевский сборник|тип=|том=21|выпуск=4|doi=10.22405/2226-8383-2020-21-4-9-18}}</ref><ref name=":0">{{Cite web|url=https://ncatlab.org/nlab/show/Bertrand%27s+postulate|title=Bertrand's postulate|website=ncatlab.org|lang=en}}</ref>. Другие формулировки: * при любом ''n > 1'' имеется [[w:Простое_число|простое]] число, принадлежащее интервалу (''n, 2n)<ref name=":122" /><ref name=":322" /><ref name=":222" /><ref name=":023" /><ref name=":42" /><ref name=":53" />''<ref name=":63" />''<ref name=":73" /><ref name=":0" />'' * для ''n ≥ 1'': ''p<sub>n+1</sub> < 2p<sub>n</sub>, p<sub>n</sub>''<ref name=":53" /><ref name=":0" /> * для ''n ≥ 1: π(2n) − π(n) ≥ 1''<ref name=":53" /> В [[w:1852_год_в_науке|1852 году]] постулат был доказан [[w:Чебышёв,_Пафнутий_Львович|Чебышёвым]]''<ref name=":122" /><ref name=":322" /><ref name=":023" />''<ref name=":53" />. По другим источникам - в 1850 году''<ref name=":222" />''<ref name=":63" /><ref name=":73" />. В дальнейшем несколько математиков предложили более простые варианты доказательства: * [[w:Сриниваса_Рамануджан_Айенгор|Рамануджан]] в 1919 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[w:Эрдёш,_Пол|Эрдёш]] в 1932 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[wikipedia:Leo_Moser|Мозер]] в 1949 году<ref name=":53" /><ref>{{Cite web|url=https://www.zyymat.com/leo-mosers-proof-of-bertrands-postulate.html|title=Leo Moser’s proof of Bertrand’s postulate|lang=en|website=www.zyymat.com|author=Zyymat}}</ref> * [[w:Стечкин,_Сергей_Борисович|Стечкин]] в 1968 году''<ref name=":73" />''<ref name=":04" /> * Генри Рикардо и Ёсихиро Танака в 2005 году<ref name=":0" /> == Доказательство == === Доказательство Эрдёша{{Нет АИ|nocat=Нет АИ}} === В доказательстве мы используем следующие обозначения: * <math>{a \choose b}</math> — [[w:Биномиальный_коэффициент|биномиальный коэффициент]] или [[w:Сочетание|число сочетаний]] из <math>a</math> по <math>b</math>. * <math> \left \lfloor x \right \rfloor </math> — [[w:Целая_часть|целая часть]] <math>x</math>. Обозначим множество простых чисел через <math>\mathbb{P}</math> и определим <math>\theta(n)</math> как сумму логарифмов простых чисел, не превышающих <math>n</math>: : <math> \theta(n) = \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p). </math> Например, <math> \theta(10)=\ln 2 + \ln 3 + \ln 5 + \ln 7 </math>. Эта функция называется ''<math>\theta</math>-функция Чебышёва''. '''Лемма''' : <math> \theta(n) < n \cdot \ln(4) </math> для всех <math> n\geqslant 1 </math>. (Интересно, что для доказательства теоремы о том, что простых чисел «не очень мало», нам приходится сначала доказать лемму, гласящую, что простых чисел «не очень много».) Заметим — и это главная идея доказательства леммы — что для любого целого неотрицательного <math>m</math>, биноминальный коэффициент <math> {2m+1 \choose m} </math> делится на все простые числа в интервале <math>[m+2,\;2m+1]</math>. В самом деле, <math> {2m+1 \choose m} = \frac {(2m+1)!} {m!(m+1)!} </math>, a любое простое число в указанном интервале делит числитель этой дроби и не делит её знаменатель. Поскольку биноминальный коэффициент делится на все такие простые числа, он не может быть меньше их произведения :: <math> {2m+1 \choose m} \geqslant \prod_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} p.</math> Взяв логарифм от обеих частей неравенства, получаем :: <math> \ln {2m+1 \choose m} \geqslant \sum_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} \ln p = \theta(2m+1)-\theta(m+1). </math> С другой стороны, биноминальный коэффициент <math> {2m+1 \choose m} </math> легко оценить сверху: :: <math> {2m+1 \choose m} = \frac {{2m+1 \choose m}+{2m+1 \choose m+1}}{2} \leqslant \frac {\sum_{k=0}^{2m+1}{2m+1 \choose k}} {2} = </math> :: <math> = \frac {(1+1)^{2m+1}}{2} = 4^m. </math> Объединяя два последних неравенства, получаем :: <math>\theta(2m+1)-\theta(m+1) \leqslant \ln 4^m = m \ln 4 </math> Откуда :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 </math> Теперь легко доказать лемму по индукции: * <math>n = 1</math>: :: <math> \theta(1)= 0 < 1 \cdot \ln(4). </math> * <math>n = 2</math>: :: <math> \theta(2)=\ln(2) < 2 \cdot \ln(4). </math> * <math> n>2 </math> и <math>n</math> нечётно. Пусть <math> n = 2m+1 </math>. :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 < (m+1) \ln 4 + m \ln 4 = (2m+1) \ln 4 = n \ln 4</math> * <math>n > 2</math> и <math>n</math> чётно. :: <math> \theta(n) = \theta(n-1) < (n-1) \cdot \ln(4) < n \cdot \ln(4) </math> (поскольку любое чётное число, большее 2 составное, то <math> \ln (n) </math> не входит в сумму <math> \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p) </math>). Лемма доказана. '''Доказательство постулата''' Теперь переходим к доказательству самого постулата. Основная идея доказательства — разложить биноминальный коэффициент <math> 2n \choose n </math> на простые множители. Если между <math>n</math> и <math>2n</math> нет простых чисел, то произведение всех этих простых множителей окажется ''слишком маленьким.'' Доказываем от противного. Допустим, что для некоторого целого <math>n \geqslant 2</math> не существует простого числа <math>p</math> такого, что <math>n < p < 2n</math>. Если <math>2 \leqslant n < 2048</math>, то одно из простых чисел 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259 и 2503 (каждое последующее меньше удвоенного предыдущего), назовём его <math>p</math>, удовлетворяет неравенству <math>n < p < 2n</math>. Следовательно, <math>n \geqslant 2048</math>. Оценим <math> 2n \choose n </math>. : <math> 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n \choose k}. </math> Поскольку <math> {2n \choose n} </math> — максимальный член суммы, мы имеем: : <math> \frac {4^n} {2n+1} \leqslant {2n \choose n}. </math> '''Определение R(p, n) и его оценка сверху''' Пусть <math> R(p,\; n) </math> — степень <math>p</math> в разложении <math> {2n \choose n} </math> на простые множители. :: <math>{2n \choose n} = \prod_p{p^{R(p,\;n)}}.</math> Поскольку <math>n!</math> для каждого <math>j</math> имеет ровно <math> \left \lfloor \frac {n} {p^j} \right \rfloor </math> сомножителей, делящихся на <math>p^j</math>, в разложении <math>n!</math> на простые множители <math>p</math> входит в степени <math> \sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor </math>. Поэтому : <math> R(p,\;n)=\sum_{j=1}^\infty \left \lfloor \frac {2n} {p^j} \right \rfloor-2\sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor=\sum_{j=1}^\infty \left( \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor \right). </math> Чтобы узнать об этой сумме побольше, оценим, с одной стороны, насколько велики её слагаемые, а с другой — их количество. '''Величина''': каждое слагаемое <math> \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor </math> может быть или 0, или 1 (в зависимости от дробной части <math> \frac {n} {p^j} </math> : если она меньше <math>\frac{1}{2}</math>, слагаемое равно 0, а если <math>\frac{1}{2}</math> или больше, то 1). '''Количество''': все слагаемые с <math> j > \frac {\ln(2n)} {\ln(p)} </math> равны нулю, потому что для них <math> \frac {2n} {p^j} < 1 </math>. Поэтому только <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> первых слагаемых имеют шансы быть ненулевыми. Итак, <math> R(p,\;n) </math> — сумма <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> слагаемых, каждое из которых равно 0 или 1. Следовательно, : <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor. </math> '''Оценка p^R(p, n)''' Оценим теперь <math> p^{R(p,n)} </math>. : <math>p^{R(p,\;n)} = \exp \left ( R(p,\;n) \ln p \right ) \leqslant \exp \left ( \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor \ln p \right ) \leqslant 2n. </math> Это была оценка для любых <math>p</math>. Но гораздо лучшую оценку можно получить для <math> \sqrt {2n} < p \leqslant 2n </math>. Для таких <math>p</math>, количество слагаемых <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> равно 1, то есть в нашей сумме всего одно слагаемое: : <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor. </math> Если это слагаемое равно 1, то <math> p^{R(p,\;n)} = p </math> . А если оно равно 0, то <math>p^{R(p,\;n)} = 1 </math>. '''В каком интервале могут находиться простые делители?''' А теперь посмотрим, в каком интервале находятся простые делители. <math> {2n \choose n} </math> не имеет простых делителей <math>p</math> таких, что: * <math>2n < p</math>, потому что <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor = 0 </math>. * <math> n<p \leqslant 2n </math>, потому что мы предположили, что в этом интервале нет простых чисел. * <math> \frac {2n} {3} <p \leqslant n </math>, потому что при <math> p > \sqrt{2n} </math> (так как <math> n \geqslant 5 </math>) имеем <math> R(p, \; n) \leq 1</math>, что даёт нам <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor < \left \lfloor \frac {2n} {\frac{2n} {3}} \right \rfloor - 2\left \lfloor \frac{n} {n} \right \rfloor = 3-2 = 1,</math> откуда <math> R(p, \; n) = 0 </math>. Получается, что у <math> {2n \choose n} </math> нет простых делителей, больших чем <math> \frac {2n} {3} </math>. '''Перемножение всех p^R(p, n)''' Теперь оценим произведение <math>p^{R(p,\;n)}</math> по всем простым делителям <math>p</math> числа <math> {2n \choose n} </math> . Для делителей, не больших <math> \sqrt{2n} </math>, произведение не превышает <math> {(2n)} ^ {\sqrt{2n}} </math> . А для простых делителей, больших <math> \sqrt{2n} </math>, оно не превышает <math> \prod_{p \in \mathbb{P};\, p \leqslant 2n/3} p = \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right )</math>. Поскольку <math> {2n \choose n} </math> равен произведению <math> p^{R(p,\;n)} </math> по всем простым <math>p</math>, мы получаем: : <math> \frac {4^n}{2n+1} \leqslant {2n \choose n} \leqslant (2n)^\sqrt{2n} \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right ). </math> Используя нашу лемму <math> \theta(n) < n \cdot \ln(4) </math>: : <math> \frac {4^n} {2n+1} < (2n)^\sqrt{2n} 4^{\frac {2n} {3}}. </math> Поскольку <math> (2n+1) < (2n)^2 </math>: : <math> 4^{\frac {n}{3}} < (2n)^{2+\sqrt{2n}}. </math> Кроме того, <math> 2 \leqslant \frac {\sqrt{2n}}{3} </math> (поскольку <math> n \geqslant 18 </math>): : <math> 4^{\frac {n}{3}} < (2n)^{\frac {4} {3}\sqrt{2n}}. </math> [[w:Логарифм|Логарифмируя]] обе части, получаем : <math> \sqrt{2n} \ln(2) < 4 \cdot \ln(2n). </math> Делая подстановку <math>2^{2t} = 2n</math>: : <math> \frac {2^t} {t} < 8 </math> Это даёт нам <math>t < 6</math> и противоречие: : <math>n=\frac {2^{2t}} {2}<\frac {2^{2 \cdot 6}} {2}=2048.</math> Следовательно, наше допущение было неверно. Что и требовалось доказать. === Доказательство с учетом гипотезы Гольдбаха === Примерно в 2005 году Генри Рикардо и Ёсихиро Танака (Ricardo 05) заметили, что постулат Бертрана следует из [[w:Проблема_Гольдбаха|гипотезы Гольдбаха]]<ref name=":0" />. Если гипотеза Гольдбаха верна, то существуют простые числа p<sub>1</sub> и p<sub>2</sub> такие, что 2n = p<sub>1</sub> + p<sub>2</sub>. Мы должны иметь ввиду, что по крайней мере одно из p<sub>1</sub> и p<sub>2</sub> больше или равно n. Без потери общности предположим, что p<sub>1</sub> обладает этим свойством. Если n не является [[w:Простое_число|простым]] числом, то следует, что n < p<sub>1</sub> < 2n, как и требуется доказать. Предположим вместо этого, что n является [[w:Простое_число|простым]] числом. Тогда n + 1 является [[w:Составное_число|составным]] числом, поскольку оно должно быть кратно 2. Еще раз по гипотезе Гольдбаха, существуют простые числа p'<sub>1</sub> и p'<sub>2</sub> такие, что 2(n + 1) = p'<sub>1</sub> + p'<sub>2</sub>. Как указано выше, по крайней мере одно из p'<sub>1</sub> и p'<sub>2</sub> должно быть больше или равно n + 1. Не умаляя общности, предположим, что p'<sub>1</sub> обладает этим свойством. Тогда, поскольку n + 1 не является [[w:Простое_число|простым]] числом, мы получаем, что n + 1 < p'<sub>1</sub> < 2(n + 1), а значит, что n < p'<sub>1</sub> < 2(n + 1) Теперь p'<sub>1</sub> не равно 2n + 1, поскольку это означало бы, что p'<sub>2</sub> = 1, а это невозможно. Более того, p'<sub>1</sub> не равно 2n, поскольку 2n не является [[w:Простое_число|простым]] числом. Отсюда следует, что p'<sub>1</sub> < 2n, как и требовалось доказать. == Примечания == <references /> [[Категория:Теория чисел]] qp36epezet7izq0w2e7eh0gmyauk9ip 267114 267081 2026-05-18T11:16:25Z AllaBuraya 79455 /* Доказательство */ 267114 wikitext text/x-wiki {{Wikipedia|Постулат Бертрана}} '''Постулат Бертрана''' (''теорема Бертрана — Чебышёва'', ''[[w:Теорема_Чебышёва|теорема Чебышёва]]'') — в [[w:Теория_чисел|теории чисел]] утверждение о том, что при [[Натуральные числа|натуральном]] ''n > 3'' между числами ''n'' и ''(2n − 2)'' существует по крайней мере одно [[w:Простое_число|простое]] число. Постулат был сформулирован как [[w:Гипотеза|гипотеза]] в [[w:1845_год_в_науке|1845 году]] [[w:Бертран,_Жозеф_Луи_Франсуа|Бертраном]], который проверил его до <math>n = 3 \cdot 10^{6}</math>''<ref name=":122">{{Книга |заглавие=[[w:Математическая энциклопедия|Математическая энциклопедия]]|ответственный=под редакцией академика [[w:Виноградов, Иван Матвеевич|Виноградова И. М.]]|год=1977—1985|часть=Бертрана поступат|издательство=Советская энциклопедия|том=1|страницы=433|всего страниц=5760|автор=Б. М. Бредихин}}</ref><ref name=":322">{{Книга |автор=Савин А. П.|заглавие=Энциклопедический словарь юного математика|год=1989|часть=Простое число|место=Москва|издательство=Педагогика|страницы=262|всего страниц=352|isbn=5-7155-0218-7}}</ref><ref name=":222">{{Cite web|url=https://mathworld.wolfram.com/BertrandsPostulate.html|title=Bertrand's Postulate|lang=en|website=mathworld.wolfram.com|author=Weisstein Eric W.}}</ref><ref name=":023">{{Книга |ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|часть=§ 3. Постулат Ж. Бертрана — теорема П. Л. Чебышёва|место=Калининград|страницы=44|всего страниц=158}}</ref><ref name=":42">{{Cite web|url=https://bigenc.ru/c/teoremy-chebyshiova-o-prostykh-chislakh-5b2f4d|title=Теоремы Чебышёва о простых числах|author=Лаврик Александр Фёдорович|website=bigenc.ru|date=12 декабря 2024|publisher=[[w:БРЭ|БРЭ]]|url-status=live}}</ref>''<ref name=":53">{{Книга |автор=Paulo Ribenboim|заглавие=The Little Book of Bigger Primes. Second Edition|год=2004|язык=en|издательство=Springer-Verlag New York, Inc|всего страниц=356|isbn=0-387-20169-6}}</ref><ref name=":63">{{Книга |ссылка=https://faculty.ksu.edu.sa/sites/default/files/proofs_in_the_book.pdf|автор=Martin Aigner. Günter M. Ziegler|заглавие=Proofs from the book|год=2010|язык=de|место=Berlin, Germany|издательство=Springer-Verlag Berlin Heidelberg|страниц=274|isbn=978-3-642-00855-9|doi=10.1007/978-3-642-00856-6}}</ref><ref name=":73">{{Книга |ссылка=http://optic.cs.nstu.ru/files/Lit/Math/Осипов.pdf|автор=Н. Н. Осипов|заглавие=Теория чисел. Конспект лекций|год=2008|место=Красноярск|издательство=Институт космических и информационных технологий СФУ|страниц=117}}</ref><ref name=":04">{{Статья |ссылка=https://cyberleninka.ru/article/n/o-rabotah-s-b-stechkina-po-teorii-chisel|автор=М. Р. Габдуллин, [[w:Конягин, Сергей Владимирович|С. В. Конягин]]|заглавие=О работах С. Б. Стечкина по теории чисел|год=2020|издание=Чебышевский сборник|тип=|том=21|выпуск=4|doi=10.22405/2226-8383-2020-21-4-9-18}}</ref><ref name=":0">{{Cite web|url=https://ncatlab.org/nlab/show/Bertrand%27s+postulate|title=Bertrand's postulate|website=ncatlab.org|lang=en}}</ref>. Другие формулировки: * при любом ''n > 1'' имеется [[w:Простое_число|простое]] число, принадлежащее интервалу (''n, 2n)<ref name=":122" /><ref name=":322" /><ref name=":222" /><ref name=":023" /><ref name=":42" /><ref name=":53" />''<ref name=":63" />''<ref name=":73" /><ref name=":0" />'' * для ''n ≥ 1'': ''p<sub>n+1</sub> < 2p<sub>n</sub>, p<sub>n</sub>''<ref name=":53" /><ref name=":0" /> * для ''n ≥ 1: π(2n) − π(n) ≥ 1''<ref name=":53" /> В [[w:1852_год_в_науке|1852 году]] постулат был доказан [[w:Чебышёв,_Пафнутий_Львович|Чебышёвым]]''<ref name=":122" /><ref name=":322" /><ref name=":023" />''<ref name=":53" />. По другим источникам - в 1850 году''<ref name=":222" />''<ref name=":63" /><ref name=":73" />. В дальнейшем несколько математиков предложили более простые варианты доказательства: * [[w:Сриниваса_Рамануджан_Айенгор|Рамануджан]] в 1919 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[w:Эрдёш,_Пол|Эрдёш]] в 1932 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[wikipedia:Leo_Moser|Мозер]] в 1949 году<ref name=":53" /><ref>{{Cite web|url=https://www.zyymat.com/leo-mosers-proof-of-bertrands-postulate.html|title=Leo Moser’s proof of Bertrand’s postulate|lang=en|website=www.zyymat.com|author=Zyymat}}</ref> * [[w:Стечкин,_Сергей_Борисович|Стечкин]] в 1968 году''<ref name=":73" />''<ref name=":04" /> * Генри Рикардо и Ёсихиро Танака в 2005 году<ref name=":0" /> == Доказательство == === Доказательство Эрдёша{{Нет АИ|nocat=Нет АИ}} === В доказательстве мы используем следующие обозначения: * <math>{a \choose b}</math> — [[w:Биномиальный_коэффициент|биномиальный коэффициент]] или [[w:Сочетание|число сочетаний]] из <math>a</math> по <math>b</math>. * <math> \left \lfloor x \right \rfloor </math> — [[w:Целая_часть|целая часть]] <math>x</math>. Обозначим множество простых чисел через <math>\mathbb{P}</math> и определим <math>\theta(n)</math> как сумму логарифмов простых чисел, не превышающих <math>n</math>: : <math> \theta(n) = \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p). </math> Например, <math> \theta(10)=\ln 2 + \ln 3 + \ln 5 + \ln 7 </math>. Эта функция называется ''<math>\theta</math>-функция Чебышёва''. '''Лемма''' : <math> \theta(n) < n \cdot \ln(4) </math> для всех <math> n\geqslant 1 </math>. (Интересно, что для доказательства теоремы о том, что простых чисел «не очень мало», нам приходится сначала доказать лемму, гласящую, что простых чисел «не очень много».) Заметим — и это главная идея доказательства леммы — что для любого целого неотрицательного <math>m</math>, биноминальный коэффициент <math> {2m+1 \choose m} </math> делится на все простые числа в интервале <math>[m+2,\;2m+1]</math>. В самом деле, <math> {2m+1 \choose m} = \frac {(2m+1)!} {m!(m+1)!} </math>, a любое простое число в указанном интервале делит числитель этой дроби и не делит её знаменатель. Поскольку биноминальный коэффициент делится на все такие простые числа, он не может быть меньше их произведения :: <math> {2m+1 \choose m} \geqslant \prod_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} p.</math> Взяв логарифм от обеих частей неравенства, получаем :: <math> \ln {2m+1 \choose m} \geqslant \sum_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} \ln p = \theta(2m+1)-\theta(m+1). </math> С другой стороны, биноминальный коэффициент <math> {2m+1 \choose m} </math> легко оценить сверху: :: <math> {2m+1 \choose m} = \frac {{2m+1 \choose m}+{2m+1 \choose m+1}}{2} \leqslant \frac {\sum_{k=0}^{2m+1}{2m+1 \choose k}} {2} = </math> :: <math> = \frac {(1+1)^{2m+1}}{2} = 4^m. </math> Объединяя два последних неравенства, получаем :: <math>\theta(2m+1)-\theta(m+1) \leqslant \ln 4^m = m \ln 4 </math> Откуда :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 </math> Теперь легко доказать лемму по индукции: * <math>n = 1</math>: :: <math> \theta(1)= 0 < 1 \cdot \ln(4). </math> * <math>n = 2</math>: :: <math> \theta(2)=\ln(2) < 2 \cdot \ln(4). </math> * <math> n>2 </math> и <math>n</math> нечётно. Пусть <math> n = 2m+1 </math>. :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 < (m+1) \ln 4 + m \ln 4 = (2m+1) \ln 4 = n \ln 4</math> * <math>n > 2</math> и <math>n</math> чётно. :: <math> \theta(n) = \theta(n-1) < (n-1) \cdot \ln(4) < n \cdot \ln(4) </math> (поскольку любое чётное число, большее 2 составное, то <math> \ln (n) </math> не входит в сумму <math> \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p) </math>). Лемма доказана. '''Доказательство постулата''' Теперь переходим к доказательству самого постулата. Основная идея доказательства — разложить биноминальный коэффициент <math> 2n \choose n </math> на простые множители. Если между <math>n</math> и <math>2n</math> нет простых чисел, то произведение всех этих простых множителей окажется ''слишком маленьким.'' Доказываем от противного. Допустим, что для некоторого целого <math>n \geqslant 2</math> не существует простого числа <math>p</math> такого, что <math>n < p < 2n</math>. Если <math>2 \leqslant n < 2048</math>, то одно из простых чисел 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259 и 2503 (каждое последующее меньше удвоенного предыдущего), назовём его <math>p</math>, удовлетворяет неравенству <math>n < p < 2n</math>. Следовательно, <math>n \geqslant 2048</math>. Оценим <math> 2n \choose n </math>. : <math> 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n \choose k}. </math> Поскольку <math> {2n \choose n} </math> — максимальный член суммы, мы имеем: : <math> \frac {4^n} {2n+1} \leqslant {2n \choose n}. </math> '''Определение R(p, n) и его оценка сверху''' Пусть <math> R(p,\; n) </math> — степень <math>p</math> в разложении <math> {2n \choose n} </math> на простые множители. :: <math>{2n \choose n} = \prod_p{p^{R(p,\;n)}}.</math> Поскольку <math>n!</math> для каждого <math>j</math> имеет ровно <math> \left \lfloor \frac {n} {p^j} \right \rfloor </math> сомножителей, делящихся на <math>p^j</math>, в разложении <math>n!</math> на простые множители <math>p</math> входит в степени <math> \sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor </math>. Поэтому : <math> R(p,\;n)=\sum_{j=1}^\infty \left \lfloor \frac {2n} {p^j} \right \rfloor-2\sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor=\sum_{j=1}^\infty \left( \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor \right). </math> Чтобы узнать об этой сумме побольше, оценим, с одной стороны, насколько велики её слагаемые, а с другой — их количество. '''Величина''': каждое слагаемое <math> \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor </math> может быть или 0, или 1 (в зависимости от дробной части <math> \frac {n} {p^j} </math> : если она меньше <math>\frac{1}{2}</math>, слагаемое равно 0, а если <math>\frac{1}{2}</math> или больше, то 1). '''Количество''': все слагаемые с <math> j > \frac {\ln(2n)} {\ln(p)} </math> равны нулю, потому что для них <math> \frac {2n} {p^j} < 1 </math>. Поэтому только <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> первых слагаемых имеют шансы быть ненулевыми. Итак, <math> R(p,\;n) </math> — сумма <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> слагаемых, каждое из которых равно 0 или 1. Следовательно, : <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor. </math> '''Оценка p^R(p, n)''' Оценим теперь <math> p^{R(p,n)} </math>. : <math>p^{R(p,\;n)} = \exp \left ( R(p,\;n) \ln p \right ) \leqslant \exp \left ( \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor \ln p \right ) \leqslant 2n. </math> Это была оценка для любых <math>p</math>. Но гораздо лучшую оценку можно получить для <math> \sqrt {2n} < p \leqslant 2n </math>. Для таких <math>p</math>, количество слагаемых <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> равно 1, то есть в нашей сумме всего одно слагаемое: : <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor. </math> Если это слагаемое равно 1, то <math> p^{R(p,\;n)} = p </math> . А если оно равно 0, то <math>p^{R(p,\;n)} = 1 </math>. '''В каком интервале могут находиться простые делители?''' А теперь посмотрим, в каком интервале находятся простые делители. <math> {2n \choose n} </math> не имеет простых делителей <math>p</math> таких, что: * <math>2n < p</math>, потому что <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor = 0 </math>. * <math> n<p \leqslant 2n </math>, потому что мы предположили, что в этом интервале нет простых чисел. * <math> \frac {2n} {3} <p \leqslant n </math>, потому что при <math> p > \sqrt{2n} </math> (так как <math> n \geqslant 5 </math>) имеем <math> R(p, \; n) \leq 1</math>, что даёт нам <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor < \left \lfloor \frac {2n} {\frac{2n} {3}} \right \rfloor - 2\left \lfloor \frac{n} {n} \right \rfloor = 3-2 = 1,</math> откуда <math> R(p, \; n) = 0 </math>. Получается, что у <math> {2n \choose n} </math> нет простых делителей, больших чем <math> \frac {2n} {3} </math>. '''Перемножение всех p^R(p, n)''' Теперь оценим произведение <math>p^{R(p,\;n)}</math> по всем простым делителям <math>p</math> числа <math> {2n \choose n} </math> . Для делителей, не больших <math> \sqrt{2n} </math>, произведение не превышает <math> {(2n)} ^ {\sqrt{2n}} </math> . А для простых делителей, больших <math> \sqrt{2n} </math>, оно не превышает <math> \prod_{p \in \mathbb{P};\, p \leqslant 2n/3} p = \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right )</math>. Поскольку <math> {2n \choose n} </math> равен произведению <math> p^{R(p,\;n)} </math> по всем простым <math>p</math>, мы получаем: : <math> \frac {4^n}{2n+1} \leqslant {2n \choose n} \leqslant (2n)^\sqrt{2n} \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right ). </math> Используя нашу лемму <math> \theta(n) < n \cdot \ln(4) </math>: : <math> \frac {4^n} {2n+1} < (2n)^\sqrt{2n} 4^{\frac {2n} {3}}. </math> Поскольку <math> (2n+1) < (2n)^2 </math>: : <math> 4^{\frac {n}{3}} < (2n)^{2+\sqrt{2n}}. </math> Кроме того, <math> 2 \leqslant \frac {\sqrt{2n}}{3} </math> (поскольку <math> n \geqslant 18 </math>): : <math> 4^{\frac {n}{3}} < (2n)^{\frac {4} {3}\sqrt{2n}}. </math> [[w:Логарифм|Логарифмируя]] обе части, получаем : <math> \sqrt{2n} \ln(2) < 4 \cdot \ln(2n). </math> Делая подстановку <math>2^{2t} = 2n</math>: : <math> \frac {2^t} {t} < 8 </math> Это даёт нам <math>t < 6</math> и противоречие: : <math>n=\frac {2^{2t}} {2}<\frac {2^{2 \cdot 6}} {2}=2048.</math> Следовательно, наше допущение было неверно. Что и требовалось доказать. === Доказательство Мозера === # Если 𝑛 < 𝑝 ⩽ 2⁢𝑛, то 𝑝 встречается ровно один раз в <math> {2n \choose n} </math> # Если 𝑛 ⩾ 3, <math>\frac {2n} {3}</math> < 𝑝 < 𝑛, то 𝑝 не встречается в <math> {2n \choose n} </math> # Если 𝑝<sup>2</sup> > 2⁢𝑛, то 𝑝 встречается не более одного раза в<math> {2n \choose n} </math> # Если 2<sup>𝛼</sup> ⩽ 2⁢𝑛 < 2<sup>𝛼</sup><sup>+1</sup>, то 𝑝 встречается не более 𝛼 раз раз в <math> {2n \choose n} </math> Если 2<sup>𝛼</sup> < 2⁢𝑛 ⩽ 2<sup>𝛼+1</sup>, то предположим, не существует [[w:Простое_число|простого]] числа 𝑝, такого что 𝑛 < 𝑝 < 2⁢𝑛, '''(1)''' тогда <math> {2n \choose n} </math> ⩽ <math> {2a_1 \choose a_1} </math><math> {2a_2 \choose a_2} </math>...<math> {2 \choose 1} </math><math> \left( {2a_k \choose a_k}{2a_{k+1}) \choose a_{k+1}}...{2 \choose 1} \right)^{\alpha} </math>, '''(2)''' где a<sub>1</sub> = <math>\left[ {n+1\over 3} \right]</math>, k = <math>\left[ {{\alpha}+1\over 2} \right]</math>и a<sub>i</sub> = <math>\left[ {a_{i-1}+1\over 3} \right]</math> для i = 2, 3, ... . Согласно '''1, 2, 3 и (1)''', каждое [[w:Простое_число|простое]] число, которое появляется слева от '''(2)''' появляется также справа; и те [[w:Простое_число|простые]] числа, которые слева встречаются с кратностью больше, чем 1, появляются справа с кратностью не менее 2⁢𝛼 + 1, что согласно '''4''' не меньше кратности, с которой они появляются в левой части. С другой стороны, очевидно, что 2⁢𝑛 > 2⁢𝑎<sub>1</sub> + 2⁢𝑎<sub>2</sub> + ⋯ + 2 + 𝛼 ⁢(2⁢𝑎<sub>𝑘</sub> + 2⁢𝑎<sub>𝑘+1</sub> + ⋯ + 2) '''(3)''' для 𝑛 >2<sup>11</sup>. Следовательно, неравенство в '''(2)''' должно быть обратным. Таким образом, для 𝑛 >2<sup>11</sup>, мы получаем противоречие, которое доказывает постулат Бертрана для этих значений 𝑛. Что и требовалось доказать. === Доказательство с учетом гипотезы Гольдбаха === Примерно в 2005 году Генри Рикардо и Ёсихиро Танака (Ricardo 05) заметили, что постулат Бертрана следует из [[w:Проблема_Гольдбаха|гипотезы Гольдбаха]]<ref name=":0" />. Если гипотеза Гольдбаха верна, то существуют простые числа p<sub>1</sub> и p<sub>2</sub> такие, что 2n = p<sub>1</sub> + p<sub>2</sub>. Мы должны иметь ввиду, что по крайней мере одно из p<sub>1</sub> и p<sub>2</sub> больше или равно n. Без потери общности предположим, что p<sub>1</sub> обладает этим свойством. Если n не является [[w:Простое_число|простым]] числом, то следует, что n < p<sub>1</sub> < 2n, как и требуется доказать. Предположим вместо этого, что n является [[w:Простое_число|простым]] числом. Тогда n + 1 является [[w:Составное_число|составным]] числом, поскольку оно должно быть кратно 2. Еще раз по гипотезе Гольдбаха, существуют простые числа p'<sub>1</sub> и p'<sub>2</sub> такие, что 2(n + 1) = p'<sub>1</sub> + p'<sub>2</sub>. Как указано выше, по крайней мере одно из p'<sub>1</sub> и p'<sub>2</sub> должно быть больше или равно n + 1. Не умаляя общности, предположим, что p'<sub>1</sub> обладает этим свойством. Тогда, поскольку n + 1 не является [[w:Простое_число|простым]] числом, мы получаем, что n + 1 < p'<sub>1</sub> < 2(n + 1), а значит, что n < p'<sub>1</sub> < 2(n + 1) Теперь p'<sub>1</sub> не равно 2n + 1, поскольку это означало бы, что p'<sub>2</sub> = 1, а это невозможно. Более того, p'<sub>1</sub> не равно 2n, поскольку 2n не является [[w:Простое_число|простым]] числом. Отсюда следует, что p'<sub>1</sub> < 2n. Что и требовалось доказать. == Примечания == <references /> [[Категория:Теория чисел]] m8qyxtgtew9wzfvqo81pd19gr7a7308 267115 267114 2026-05-18T11:23:14Z AllaBuraya 79455 267115 wikitext text/x-wiki {{Wikipedia|Постулат Бертрана}} '''Постулат Бертрана''' (''теорема Бертрана — Чебышёва'', ''[[w:Теорема_Чебышёва|теорема Чебышёва]]'') — в [[w:Теория_чисел|теории чисел]] утверждение о том, что при [[Натуральные числа|натуральном]] ''n > 3'' между числами ''n'' и ''(2n − 2)'' существует по крайней мере одно [[w:Простое_число|простое]] число. Постулат был сформулирован как [[w:Гипотеза|гипотеза]] в [[w:1845_год_в_науке|1845 году]] [[w:Бертран,_Жозеф_Луи_Франсуа|Бертраном]], который проверил его до <math>n = 3 \cdot 10^{6}</math>''<ref name=":122">{{Книга |заглавие=[[w:Математическая энциклопедия|Математическая энциклопедия]]|ответственный=под редакцией академика [[w:Виноградов, Иван Матвеевич|Виноградова И. М.]]|год=1977—1985|часть=Бертрана поступат|издательство=Советская энциклопедия|том=1|страницы=433|всего страниц=5760|автор=Б. М. Бредихин}}</ref><ref name=":322">{{Книга |автор=Савин А. П.|заглавие=Энциклопедический словарь юного математика|год=1989|часть=Простое число|место=Москва|издательство=Педагогика|страницы=262|всего страниц=352|isbn=5-7155-0218-7}}</ref><ref name=":222">{{Cite web|url=https://mathworld.wolfram.com/BertrandsPostulate.html|title=Bertrand's Postulate|lang=en|website=mathworld.wolfram.com|author=Weisstein Eric W.}}</ref><ref name=":023">{{Книга |ссылка=http://regiomontan.ru/book/VZ_primes.pdf|автор=В. И. Зенкин|заглавие=Распределение простых чисел. Элементарные методы|год=2008|часть=§ 3. Постулат Ж. Бертрана — теорема П. Л. Чебышёва|место=Калининград|страницы=44|всего страниц=158}}</ref><ref name=":42">{{Cite web|url=https://bigenc.ru/c/teoremy-chebyshiova-o-prostykh-chislakh-5b2f4d|title=Теоремы Чебышёва о простых числах|author=Лаврик Александр Фёдорович|website=bigenc.ru|date=12 декабря 2024|publisher=[[w:БРЭ|БРЭ]]|url-status=live}}</ref>''<ref name=":53">{{Книга |автор=Paulo Ribenboim|заглавие=The Little Book of Bigger Primes. Second Edition|год=2004|язык=en|издательство=Springer-Verlag New York, Inc|всего страниц=356|isbn=0-387-20169-6}}</ref><ref name=":63">{{Книга |ссылка=https://faculty.ksu.edu.sa/sites/default/files/proofs_in_the_book.pdf|автор=Martin Aigner. Günter M. Ziegler|заглавие=Proofs from the book|год=2010|язык=de|место=Berlin, Germany|издательство=Springer-Verlag Berlin Heidelberg|страниц=274|isbn=978-3-642-00855-9|doi=10.1007/978-3-642-00856-6}}</ref><ref name=":73">{{Книга |ссылка=http://optic.cs.nstu.ru/files/Lit/Math/Осипов.pdf|автор=Н. Н. Осипов|заглавие=Теория чисел. Конспект лекций|год=2008|место=Красноярск|издательство=Институт космических и информационных технологий СФУ|страниц=117}}</ref><ref name=":04">{{Статья |ссылка=https://cyberleninka.ru/article/n/o-rabotah-s-b-stechkina-po-teorii-chisel|автор=М. Р. Габдуллин, [[w:Конягин, Сергей Владимирович|С. В. Конягин]]|заглавие=О работах С. Б. Стечкина по теории чисел|год=2020|издание=Чебышевский сборник|тип=|том=21|выпуск=4|doi=10.22405/2226-8383-2020-21-4-9-18}}</ref><ref name=":0">{{Cite web|url=https://ncatlab.org/nlab/show/Bertrand%27s+postulate|title=Bertrand's postulate|website=ncatlab.org|lang=en}}</ref>. Другие формулировки: * при любом ''n > 1'' имеется [[w:Простое_число|простое]] число, принадлежащее интервалу (''n, 2n)<ref name=":122" /><ref name=":322" /><ref name=":222" /><ref name=":023" /><ref name=":42" /><ref name=":53" />''<ref name=":63" />''<ref name=":73" /><ref name=":0" />'' * для ''n ≥ 1'': ''p<sub>n+1</sub> < 2p<sub>n</sub>, p<sub>n</sub>''<ref name=":53" /><ref name=":0" /> * для ''n ≥ 1: π(2n) − π(n) ≥ 1''<ref name=":53" /> В [[w:1852_год_в_науке|1852 году]] постулат был доказан [[w:Чебышёв,_Пафнутий_Львович|Чебышёвым]]''<ref name=":122" /><ref name=":322" /><ref name=":023" />''<ref name=":53" />. По другим источникам - в 1850 году''<ref name=":222" />''<ref name=":63" /><ref name=":73" />. В дальнейшем несколько математиков предложили более простые варианты доказательства: * [[w:Сриниваса_Рамануджан_Айенгор|Рамануджан]] в 1919 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[w:Эрдёш,_Пол|Эрдёш]] в 1932 году''<ref name=":222" /><ref name=":53" />''<ref name=":63" /> * [[wikipedia:Leo_Moser|Мозер]] в 1949 году<ref name=":53" /><ref>{{Cite web|url=https://www.zyymat.com/leo-mosers-proof-of-bertrands-postulate.html|title=Leo Moser’s proof of Bertrand’s postulate|lang=en|website=www.zyymat.com|author=Zyymat}}</ref> * [[w:Стечкин,_Сергей_Борисович|Стечкин]] в 1968 году''<ref name=":73" />''<ref name=":04" /> * Генри Рикардо и Ёсихиро Танака в 2005 году<ref name=":0" /> == Доказательство == === Доказательство Эрдёша{{Нет АИ|nocat=Нет АИ}} === В доказательстве мы используем следующие обозначения: * <math>{a \choose b}</math> — [[w:Биномиальный_коэффициент|биномиальный коэффициент]] или [[w:Сочетание|число сочетаний]] из <math>a</math> по <math>b</math>. * <math> \left \lfloor x \right \rfloor </math> — [[w:Целая_часть|целая часть]] <math>x</math>. Обозначим множество простых чисел через <math>\mathbb{P}</math> и определим <math>\theta(n)</math> как сумму логарифмов простых чисел, не превышающих <math>n</math>: : <math> \theta(n) = \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p). </math> Например, <math> \theta(10)=\ln 2 + \ln 3 + \ln 5 + \ln 7 </math>. Эта функция называется ''<math>\theta</math>-функция Чебышёва''. '''Лемма''' : <math> \theta(n) < n \cdot \ln(4) </math> для всех <math> n\geqslant 1 </math>. (Интересно, что для доказательства теоремы о том, что простых чисел «не очень мало», нам приходится сначала доказать лемму, гласящую, что простых чисел «не очень много».) Заметим — и это главная идея доказательства леммы — что для любого целого неотрицательного <math>m</math>, биноминальный коэффициент <math> {2m+1 \choose m} </math> делится на все простые числа в интервале <math>[m+2,\;2m+1]</math>. В самом деле, <math> {2m+1 \choose m} = \frac {(2m+1)!} {m!(m+1)!} </math>, a любое простое число в указанном интервале делит числитель этой дроби и не делит её знаменатель. Поскольку биноминальный коэффициент делится на все такие простые числа, он не может быть меньше их произведения :: <math> {2m+1 \choose m} \geqslant \prod_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} p.</math> Взяв логарифм от обеих частей неравенства, получаем :: <math> \ln {2m+1 \choose m} \geqslant \sum_{p\in\mathbb{P};\, m+2 \leqslant p \leqslant 2m+1} \ln p = \theta(2m+1)-\theta(m+1). </math> С другой стороны, биноминальный коэффициент <math> {2m+1 \choose m} </math> легко оценить сверху: :: <math> {2m+1 \choose m} = \frac {{2m+1 \choose m}+{2m+1 \choose m+1}}{2} \leqslant \frac {\sum_{k=0}^{2m+1}{2m+1 \choose k}} {2} = </math> :: <math> = \frac {(1+1)^{2m+1}}{2} = 4^m. </math> Объединяя два последних неравенства, получаем :: <math>\theta(2m+1)-\theta(m+1) \leqslant \ln 4^m = m \ln 4 </math> Откуда :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 </math> Теперь легко доказать лемму по индукции: * <math>n = 1</math>: :: <math> \theta(1)= 0 < 1 \cdot \ln(4). </math> * <math>n = 2</math>: :: <math> \theta(2)=\ln(2) < 2 \cdot \ln(4). </math> * <math> n>2 </math> и <math>n</math> нечётно. Пусть <math> n = 2m+1 </math>. :: <math>\theta(2m+1) \leqslant \theta(m+1) + m \ln 4 < (m+1) \ln 4 + m \ln 4 = (2m+1) \ln 4 = n \ln 4</math> * <math>n > 2</math> и <math>n</math> чётно. :: <math> \theta(n) = \theta(n-1) < (n-1) \cdot \ln(4) < n \cdot \ln(4) </math> (поскольку любое чётное число, большее 2 составное, то <math> \ln (n) </math> не входит в сумму <math> \sum_{p\in\mathbb{P};\, p\leqslant n} \ln (p) </math>). Лемма доказана. '''Доказательство постулата''' Теперь переходим к доказательству самого постулата. Основная идея доказательства — разложить биноминальный коэффициент <math> 2n \choose n </math> на простые множители. Если между <math>n</math> и <math>2n</math> нет простых чисел, то произведение всех этих простых множителей окажется ''слишком маленьким.'' Доказываем от противного. Допустим, что для некоторого целого <math>n \geqslant 2</math> не существует простого числа <math>p</math> такого, что <math>n < p < 2n</math>. Если <math>2 \leqslant n < 2048</math>, то одно из простых чисел 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259 и 2503 (каждое последующее меньше удвоенного предыдущего), назовём его <math>p</math>, удовлетворяет неравенству <math>n < p < 2n</math>. Следовательно, <math>n \geqslant 2048</math>. Оценим <math> 2n \choose n </math>. : <math> 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n \choose k}. </math> Поскольку <math> {2n \choose n} </math> — максимальный член суммы, мы имеем: : <math> \frac {4^n} {2n+1} \leqslant {2n \choose n}. </math> '''Определение R(p, n) и его оценка сверху''' Пусть <math> R(p,\; n) </math> — степень <math>p</math> в разложении <math> {2n \choose n} </math> на простые множители. :: <math>{2n \choose n} = \prod_p{p^{R(p,\;n)}}.</math> Поскольку <math>n!</math> для каждого <math>j</math> имеет ровно <math> \left \lfloor \frac {n} {p^j} \right \rfloor </math> сомножителей, делящихся на <math>p^j</math>, в разложении <math>n!</math> на простые множители <math>p</math> входит в степени <math> \sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor </math>. Поэтому : <math> R(p,\;n)=\sum_{j=1}^\infty \left \lfloor \frac {2n} {p^j} \right \rfloor-2\sum_{j=1}^\infty \left \lfloor \frac {n} {p^j} \right \rfloor=\sum_{j=1}^\infty \left( \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor \right). </math> Чтобы узнать об этой сумме побольше, оценим, с одной стороны, насколько велики её слагаемые, а с другой — их количество. '''Величина''': каждое слагаемое <math> \left \lfloor \frac {2n} {p^j} \right \rfloor - 2\left \lfloor \frac {n} {p^j} \right \rfloor </math> может быть или 0, или 1 (в зависимости от дробной части <math> \frac {n} {p^j} </math> : если она меньше <math>\frac{1}{2}</math>, слагаемое равно 0, а если <math>\frac{1}{2}</math> или больше, то 1). '''Количество''': все слагаемые с <math> j > \frac {\ln(2n)} {\ln(p)} </math> равны нулю, потому что для них <math> \frac {2n} {p^j} < 1 </math>. Поэтому только <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> первых слагаемых имеют шансы быть ненулевыми. Итак, <math> R(p,\;n) </math> — сумма <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> слагаемых, каждое из которых равно 0 или 1. Следовательно, : <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor. </math> '''Оценка p^R(p, n)''' Оценим теперь <math> p^{R(p,n)} </math>. : <math>p^{R(p,\;n)} = \exp \left ( R(p,\;n) \ln p \right ) \leqslant \exp \left ( \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor \ln p \right ) \leqslant 2n. </math> Это была оценка для любых <math>p</math>. Но гораздо лучшую оценку можно получить для <math> \sqrt {2n} < p \leqslant 2n </math>. Для таких <math>p</math>, количество слагаемых <math> \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor </math> равно 1, то есть в нашей сумме всего одно слагаемое: : <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor. </math> Если это слагаемое равно 1, то <math> p^{R(p,\;n)} = p </math> . А если оно равно 0, то <math>p^{R(p,\;n)} = 1 </math>. '''В каком интервале могут находиться простые делители?''' А теперь посмотрим, в каком интервале находятся простые делители. <math> {2n \choose n} </math> не имеет простых делителей <math>p</math> таких, что: * <math>2n < p</math>, потому что <math> R(p,\;n) \leqslant \left \lfloor \frac {\ln(2n)} {\ln(p)} \right \rfloor = 0 </math>. * <math> n<p \leqslant 2n </math>, потому что мы предположили, что в этом интервале нет простых чисел. * <math> \frac {2n} {3} <p \leqslant n </math>, потому что при <math> p > \sqrt{2n} </math> (так как <math> n \geqslant 5 </math>) имеем <math> R(p, \; n) \leq 1</math>, что даёт нам <math> R(p,\;n) = \left \lfloor \frac {2n} {p} \right \rfloor - 2\left \lfloor \frac {n} {p} \right \rfloor < \left \lfloor \frac {2n} {\frac{2n} {3}} \right \rfloor - 2\left \lfloor \frac{n} {n} \right \rfloor = 3-2 = 1,</math> откуда <math> R(p, \; n) = 0 </math>. Получается, что у <math> {2n \choose n} </math> нет простых делителей, больших чем <math> \frac {2n} {3} </math>. '''Перемножение всех p^R(p, n)''' Теперь оценим произведение <math>p^{R(p,\;n)}</math> по всем простым делителям <math>p</math> числа <math> {2n \choose n} </math> . Для делителей, не больших <math> \sqrt{2n} </math>, произведение не превышает <math> {(2n)} ^ {\sqrt{2n}} </math> . А для простых делителей, больших <math> \sqrt{2n} </math>, оно не превышает <math> \prod_{p \in \mathbb{P};\, p \leqslant 2n/3} p = \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right )</math>. Поскольку <math> {2n \choose n} </math> равен произведению <math> p^{R(p,\;n)} </math> по всем простым <math>p</math>, мы получаем: : <math> \frac {4^n}{2n+1} \leqslant {2n \choose n} \leqslant (2n)^\sqrt{2n} \exp \left ( \theta \left ( \frac {2n} {3} \right ) \right ). </math> Используя нашу лемму <math> \theta(n) < n \cdot \ln(4) </math>: : <math> \frac {4^n} {2n+1} < (2n)^\sqrt{2n} 4^{\frac {2n} {3}}. </math> Поскольку <math> (2n+1) < (2n)^2 </math>: : <math> 4^{\frac {n}{3}} < (2n)^{2+\sqrt{2n}}. </math> Кроме того, <math> 2 \leqslant \frac {\sqrt{2n}}{3} </math> (поскольку <math> n \geqslant 18 </math>): : <math> 4^{\frac {n}{3}} < (2n)^{\frac {4} {3}\sqrt{2n}}. </math> [[w:Логарифм|Логарифмируя]] обе части, получаем : <math> \sqrt{2n} \ln(2) < 4 \cdot \ln(2n). </math> Делая подстановку <math>2^{2t} = 2n</math>: : <math> \frac {2^t} {t} < 8 </math> Это даёт нам <math>t < 6</math> и противоречие: : <math>n=\frac {2^{2t}} {2}<\frac {2^{2 \cdot 6}} {2}=2048.</math> Следовательно, наше допущение было неверно. Что и требовалось доказать. === Доказательство Мозера === # Если 𝑛 < 𝑝 ⩽ 2⁢𝑛, то 𝑝 встречается ровно один раз в <math> {2n \choose n} </math> # Если 𝑛 ⩾ 3, <math>\frac {2n} {3}</math> < 𝑝 < 𝑛, то 𝑝 не встречается в <math> {2n \choose n} </math> # Если 𝑝<sup>2</sup> > 2⁢𝑛, то 𝑝 встречается не более одного раза в<math> {2n \choose n} </math> # Если 2<sup>𝛼</sup> ⩽ 2⁢𝑛 < 2<sup>𝛼</sup><sup>+1</sup>, то 𝑝 встречается не более 𝛼 раз раз в <math> {2n \choose n} </math> Если 2<sup>𝛼</sup> < 2⁢𝑛 ⩽ 2<sup>𝛼+1</sup>, то предположим, не существует [[w:Простое_число|простого]] числа 𝑝, такого что 𝑛 < 𝑝 < 2⁢𝑛, '''(1)''' тогда <math> {2n \choose n} </math> ⩽ <math> {2a_1 \choose a_1} </math><math> {2a_2 \choose a_2} </math>...<math> {2 \choose 1} </math><math> \left( {2a_k \choose a_k}{2a_{k+1}) \choose a_{k+1}}...{2 \choose 1} \right)^{\alpha} </math>, '''(2)''' где a<sub>1</sub> = <math>\left[ {n+1\over 3} \right]</math>, k = <math>\left[ {{\alpha}+1\over 2} \right]</math>и a<sub>i</sub> = <math>\left[ {a_{i-1}+1\over 3} \right]</math> для i = 2, 3, ... . Согласно '''1, 2, 3 и (1)''', каждое [[w:Простое_число|простое]] число, которое появляется слева от '''(2)''' появляется также справа; и те [[w:Простое_число|простые]] числа, которые слева встречаются с кратностью больше, чем 1, появляются справа с кратностью не менее 2⁢𝛼 + 1, что согласно '''4''' не меньше кратности, с которой они появляются в левой части. С другой стороны, очевидно, что 2⁢𝑛 > 2⁢𝑎<sub>1</sub> + 2⁢𝑎<sub>2</sub> + ⋯ + 2 + 𝛼 ⁢(2⁢𝑎<sub>𝑘</sub> + 2⁢𝑎<sub>𝑘+1</sub> + ⋯ + 2) '''(3)''' для 𝑛 >2<sup>11</sup>. Следовательно, неравенство в '''(2)''' должно быть обратным. Таким образом, для 𝑛 >2<sup>11</sup>, мы получаем противоречие, которое доказывает постулат Бертрана для этих значений 𝑛. Что и требовалось доказать. {{Wikipedia|Проблема Гольдбаха}} === Доказательство с учетом гипотезы Гольдбаха === Примерно в 2005 году Генри Рикардо и Ёсихиро Танака (Ricardo 05) заметили, что постулат Бертрана следует из [[w:Проблема_Гольдбаха|гипотезы Гольдбаха]]<ref name=":0" />. Если гипотеза Гольдбаха верна, то существуют простые числа p<sub>1</sub> и p<sub>2</sub> такие, что 2n = p<sub>1</sub> + p<sub>2</sub>. Мы должны иметь ввиду, что по крайней мере одно из p<sub>1</sub> и p<sub>2</sub> больше или равно n. Без потери общности предположим, что p<sub>1</sub> обладает этим свойством. Если n не является [[w:Простое_число|простым]] числом, то следует, что n < p<sub>1</sub> < 2n, как и требуется доказать. Предположим вместо этого, что n является [[w:Простое_число|простым]] числом. Тогда n + 1 является [[w:Составное_число|составным]] числом, поскольку оно должно быть кратно 2. Еще раз по гипотезе Гольдбаха, существуют простые числа p'<sub>1</sub> и p'<sub>2</sub> такие, что 2(n + 1) = p'<sub>1</sub> + p'<sub>2</sub>. Как указано выше, по крайней мере одно из p'<sub>1</sub> и p'<sub>2</sub> должно быть больше или равно n + 1. Не умаляя общности, предположим, что p'<sub>1</sub> обладает этим свойством. Тогда, поскольку n + 1 не является [[w:Простое_число|простым]] числом, мы получаем, что n + 1 < p'<sub>1</sub> < 2(n + 1), а значит, что n < p'<sub>1</sub> < 2(n + 1) Теперь p'<sub>1</sub> не равно 2n + 1, поскольку это означало бы, что p'<sub>2</sub> = 1, а это невозможно. Более того, p'<sub>1</sub> не равно 2n, поскольку 2n не является [[w:Простое_число|простым]] числом. Отсюда следует, что p'<sub>1</sub> < 2n. Что и требовалось доказать. == Примечания == <references /> [[Категория:Теория чисел]] nqgcp4lfz2nkls4a7rgtepdvb510ai1 Обсуждение:Теория чисел/Постулат Бертрана 1 35577 267066 267065 2026-05-17T13:16:01Z AllaBuraya 79455 /* Перенос текста из Википедии */ Ответ 267066 wikitext text/x-wiki == Перенос текста из Википедии == Данная статья была изначально создана переносом текста из статьи Википедии [[w:Постулат_Бертрана|Постулат Бертрана]] ([https://ru.wikipedia.org/w/index.php?title=Постулат_Бертрана&action=history ссылка] на историю статьи Википедии). Условия использования текста согласно [[foundation:Policy:Terms_of_Use/ru]]: «Вы можете импортировать текст, найденный вами в другом месте, либо написанный вами в соавторстве, но только в том случае, если вы заявляете и гарантируете, что текст доступен на условиях, совместимых с условиями лицензии CC-BY-SA (или, как сказано выше, другой лицензии, если это требование конкретного раздела одного из наших проектов или функционального модуля). <…> Вы соглашаетесь с тем, что импортируя текст, доступный по лицензии CC, требующей указания авторства (т. н. „атрибуции“), вы должны указать автора(ов) разумным образом. Если такая атрибуция обычно дается в виде ссылки на страницу истории изменений (как, например, при копировании внутри Википедии), то при импорте текста достаточно указать такую ссылку в комментарии к правке, что отразится в истории изменений страницы.» [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:42, 16 мая 2026 (UTC) : А какой смысл переноса? : Это же не статья для учебника, как мне кажется. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 04:20, 17 мая 2026 (UTC) : Если это часть учебника, то надо назвать [[Теория чисел/Постулат Бертрана]]. Через подстраницы работать. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 04:22, 17 мая 2026 (UTC) ::# [[w:Википедия:Форум/Вниманию_участников#Bezik_продолжает_войну_правок|здесь]] идет обсуждение и выработка нового консенсуса. админ удалил доказательство из статьи и сказал, что его нужно перенести в викиучебник. ::# в викиучебнике на полке Математика была создана полка Теория чисел, на ней учебник Теория чисел, параграф Постулат Бертрана. сюда перенесено удаленное доказательство. ::[[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 09:10, 17 мая 2026 (UTC) ::3. у меня нет кнопки Переименовать страницу, чтобы переименовать в [[Теория чисел/Постулат Бертрана]] [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 09:11, 17 мая 2026 (UTC) ::4. и по правилу [https://ru.wikipedia.org/wiki/Википедия:Авторские_права#Использование_текстов_внутри_Википедии][[w:Википедия:ПЕР|ВП:ПЕР]] нужно указать, что текст перенесен из другой вики - на СО статьи и/или в комментариях к правкам статьи [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 13:16, 17 мая 2026 (UTC) siix5w8he3ezpzb0gkx2ya6r63lagaj 267069 267066 2026-05-17T14:51:06Z Leksey 3027 Leksey переименовал страницу [[Обсуждение:Постулат Бертрана]] в [[Обсуждение:Теория чисел/Постулат Бертрана]] без оставления перенаправления: по обсуждению на СО 267066 wikitext text/x-wiki == Перенос текста из Википедии == Данная статья была изначально создана переносом текста из статьи Википедии [[w:Постулат_Бертрана|Постулат Бертрана]] ([https://ru.wikipedia.org/w/index.php?title=Постулат_Бертрана&action=history ссылка] на историю статьи Википедии). Условия использования текста согласно [[foundation:Policy:Terms_of_Use/ru]]: «Вы можете импортировать текст, найденный вами в другом месте, либо написанный вами в соавторстве, но только в том случае, если вы заявляете и гарантируете, что текст доступен на условиях, совместимых с условиями лицензии CC-BY-SA (или, как сказано выше, другой лицензии, если это требование конкретного раздела одного из наших проектов или функционального модуля). <…> Вы соглашаетесь с тем, что импортируя текст, доступный по лицензии CC, требующей указания авторства (т. н. „атрибуции“), вы должны указать автора(ов) разумным образом. Если такая атрибуция обычно дается в виде ссылки на страницу истории изменений (как, например, при копировании внутри Википедии), то при импорте текста достаточно указать такую ссылку в комментарии к правке, что отразится в истории изменений страницы.» [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:42, 16 мая 2026 (UTC) : А какой смысл переноса? : Это же не статья для учебника, как мне кажется. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 04:20, 17 мая 2026 (UTC) : Если это часть учебника, то надо назвать [[Теория чисел/Постулат Бертрана]]. Через подстраницы работать. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 04:22, 17 мая 2026 (UTC) ::# [[w:Википедия:Форум/Вниманию_участников#Bezik_продолжает_войну_правок|здесь]] идет обсуждение и выработка нового консенсуса. админ удалил доказательство из статьи и сказал, что его нужно перенести в викиучебник. ::# в викиучебнике на полке Математика была создана полка Теория чисел, на ней учебник Теория чисел, параграф Постулат Бертрана. сюда перенесено удаленное доказательство. ::[[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 09:10, 17 мая 2026 (UTC) ::3. у меня нет кнопки Переименовать страницу, чтобы переименовать в [[Теория чисел/Постулат Бертрана]] [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 09:11, 17 мая 2026 (UTC) ::4. и по правилу [https://ru.wikipedia.org/wiki/Википедия:Авторские_права#Использование_текстов_внутри_Википедии][[w:Википедия:ПЕР|ВП:ПЕР]] нужно указать, что текст перенесен из другой вики - на СО статьи и/или в комментариях к правкам статьи [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 13:16, 17 мая 2026 (UTC) siix5w8he3ezpzb0gkx2ya6r63lagaj 267071 267069 2026-05-17T14:52:47Z Leksey 3027 /* Перенос текста из Википедии */ ответ участнице AllaBuraya ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 267071 wikitext text/x-wiki == Перенос текста из Википедии == Данная статья была изначально создана переносом текста из статьи Википедии [[w:Постулат_Бертрана|Постулат Бертрана]] ([https://ru.wikipedia.org/w/index.php?title=Постулат_Бертрана&action=history ссылка] на историю статьи Википедии). Условия использования текста согласно [[foundation:Policy:Terms_of_Use/ru]]: «Вы можете импортировать текст, найденный вами в другом месте, либо написанный вами в соавторстве, но только в том случае, если вы заявляете и гарантируете, что текст доступен на условиях, совместимых с условиями лицензии CC-BY-SA (или, как сказано выше, другой лицензии, если это требование конкретного раздела одного из наших проектов или функционального модуля). <…> Вы соглашаетесь с тем, что импортируя текст, доступный по лицензии CC, требующей указания авторства (т. н. „атрибуции“), вы должны указать автора(ов) разумным образом. Если такая атрибуция обычно дается в виде ссылки на страницу истории изменений (как, например, при копировании внутри Википедии), то при импорте текста достаточно указать такую ссылку в комментарии к правке, что отразится в истории изменений страницы.» [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:42, 16 мая 2026 (UTC) : А какой смысл переноса? : Это же не статья для учебника, как мне кажется. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 04:20, 17 мая 2026 (UTC) : Если это часть учебника, то надо назвать [[Теория чисел/Постулат Бертрана]]. Через подстраницы работать. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 04:22, 17 мая 2026 (UTC) ::# [[w:Википедия:Форум/Вниманию_участников#Bezik_продолжает_войну_правок|здесь]] идет обсуждение и выработка нового консенсуса. админ удалил доказательство из статьи и сказал, что его нужно перенести в викиучебник. ::# в викиучебнике на полке Математика была создана полка Теория чисел, на ней учебник Теория чисел, параграф Постулат Бертрана. сюда перенесено удаленное доказательство. ::[[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 09:10, 17 мая 2026 (UTC) ::3. у меня нет кнопки Переименовать страницу, чтобы переименовать в [[Теория чисел/Постулат Бертрана]] [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 09:11, 17 мая 2026 (UTC) ::: Переименовал. ::: Кстати, не знаю, почему нет переименования. Наверное, аккаунт не достиг нужного состояния (статуса). [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 14:52, 17 мая 2026 (UTC) ::4. и по правилу [https://ru.wikipedia.org/wiki/Википедия:Авторские_права#Использование_текстов_внутри_Википедии][[w:Википедия:ПЕР|ВП:ПЕР]] нужно указать, что текст перенесен из другой вики - на СО статьи и/или в комментариях к правкам статьи [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 13:16, 17 мая 2026 (UTC) 3c1avx8v5945xi7t6p93kzctcc4hxwh 267072 267071 2026-05-17T14:54:02Z Leksey 3027 /* Перенос текста из Википедии */ ответ участнице AllaBuraya ([[mw:c:Special:MyLanguage/User:JWBTH/CD|CD]]) 267072 wikitext text/x-wiki == Перенос текста из Википедии == Данная статья была изначально создана переносом текста из статьи Википедии [[w:Постулат_Бертрана|Постулат Бертрана]] ([https://ru.wikipedia.org/w/index.php?title=Постулат_Бертрана&action=history ссылка] на историю статьи Википедии). Условия использования текста согласно [[foundation:Policy:Terms_of_Use/ru]]: «Вы можете импортировать текст, найденный вами в другом месте, либо написанный вами в соавторстве, но только в том случае, если вы заявляете и гарантируете, что текст доступен на условиях, совместимых с условиями лицензии CC-BY-SA (или, как сказано выше, другой лицензии, если это требование конкретного раздела одного из наших проектов или функционального модуля). <…> Вы соглашаетесь с тем, что импортируя текст, доступный по лицензии CC, требующей указания авторства (т. н. „атрибуции“), вы должны указать автора(ов) разумным образом. Если такая атрибуция обычно дается в виде ссылки на страницу истории изменений (как, например, при копировании внутри Википедии), то при импорте текста достаточно указать такую ссылку в комментарии к правке, что отразится в истории изменений страницы.» [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 17:42, 16 мая 2026 (UTC) : А какой смысл переноса? : Это же не статья для учебника, как мне кажется. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 04:20, 17 мая 2026 (UTC) : Если это часть учебника, то надо назвать [[Теория чисел/Постулат Бертрана]]. Через подстраницы работать. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 04:22, 17 мая 2026 (UTC) ::# [[w:Википедия:Форум/Вниманию_участников#Bezik_продолжает_войну_правок|здесь]] идет обсуждение и выработка нового консенсуса. админ удалил доказательство из статьи и сказал, что его нужно перенести в викиучебник. ::# в викиучебнике на полке Математика была создана полка Теория чисел, на ней учебник Теория чисел, параграф Постулат Бертрана. сюда перенесено удаленное доказательство. ::[[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 09:10, 17 мая 2026 (UTC) ::: Спасибо за ответ! Меня просто смутила одинокая страница и отсутствие инструктивного материала. Ну если что-то выпихивают из Википедии, конечно, надо сюда. Думаю, никому это точно не помешает. А в Википедии интервики сюда, соответственно. [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 14:54, 17 мая 2026 (UTC) ::3. у меня нет кнопки Переименовать страницу, чтобы переименовать в [[Теория чисел/Постулат Бертрана]] [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 09:11, 17 мая 2026 (UTC) ::: Переименовал. ::: Кстати, не знаю, почему нет переименования. Наверное, аккаунт не достиг нужного состояния (статуса). [[Участник:Leksey|Leksey]] ([[Обсуждение участника:Leksey|обсуждение]]) 14:52, 17 мая 2026 (UTC) ::4. и по правилу [https://ru.wikipedia.org/wiki/Википедия:Авторские_права#Использование_текстов_внутри_Википедии][[w:Википедия:ПЕР|ВП:ПЕР]] нужно указать, что текст перенесен из другой вики - на СО статьи и/или в комментариях к правкам статьи [[Участник:AllaBuraya|AllaBuraya]] ([[Обсуждение участника:AllaBuraya|обсуждение]]) 13:16, 17 мая 2026 (UTC) ki571se3npcg0dmkgmwkbncqu2qfke3 Полка:Дифференциальные уравнения 100 35578 267084 2026-05-17T17:40:46Z AllaBuraya 79455 Создана пустая страница 267084 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 267085 267084 2026-05-17T17:40:59Z AllaBuraya 79455 added [[Category:Полки]] using [[Help:Gadget-HotCat|HotCat]] 267085 wikitext text/x-wiki [[Категория:Полки]] q6hysxj9gsc707j8p3pss3ecxl97wxc 267090 267085 2026-05-17T17:48:31Z AllaBuraya 79455 added [[Category:Математика]] using [[Help:Gadget-HotCat|HotCat]] 267090 wikitext text/x-wiki [[Категория:Полки]] [[Категория:Математика]] 4yi4mcqd0aofnrnbu0cfwtvlktlcm1y Обсуждение Викиучебника:Автоподтверждённые участники 5 35579 267098 2026-05-17T17:58:46Z Leksey 3027 /* Ручное включение в группу */ новая тема 267098 wikitext text/x-wiki == Ручное включение в группу == Администратор в эту группу включить не может вручную. До кучи, похоже, всем кто еще не автоподтвержденный не дают без капчи править страницы. bqb23191gk2yrw9ag5ozmpfz97umz5j