Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как придумать рекурсию?

Лучший ответ:
Пусть каждое слово в масиве (4 элемента ?) - это позиция в 4-х позиционном двоичном числе 0 - есть слово, 1 нет слова. Итого, задача переформулируется так - сколько 4-х значных чисел можно сгенерировать, чтобы одна или более цифр числа была 0, исключая 0 (ответ 14 для 4-х значного, 0 и 15 не подходят )
Отобразить запись, типа 1001 в "яблоко апельсин" будет уже технической задачей...$words=['яблоко', 'банан', 'киви', 'апельсин'];
$min_words=1;
$max_words=3;

for($i=0;$i<2**count($words);$i++){
    $bin=str_pad(base_convert($i,10,2),count($words), "0", STR_PAD_LEFT);
    $numword=substr_count($bin,'1');
    if($numword<$min_words || $numword>$max_words) 
        continue;
    $result=[];               
    for($j=0;$j<strlen($bin);$j++){
        if($bin{$j}=='1') $result[]=$words[$j];
    }               
    echo '>',implode(' ', $result), "<br>\n";
}>апельсин
>киви
>киви апельсин
>банан
>банан апельсин
>банан киви
>банан киви апельсин
>яблоко
>яблоко апельсин
>яблоко киви
>яблоко киви апельсин
>яблоко банан
>яблоко банан апельсин
>яблоко банан киви

Худший ответ:
Можно так<?php

function find($arrS,$arrF){
    foreach($arrS as $sarr){
        $cnt = 0;
        foreach($sarr as $vs)
            if(in_array($vs,$arrF))
                $cnt++;
        if($cnt == count($arrF) && count($arrF) == count($sarr))
            return true;
                
    }
    return false;
}
function excerpt($arr,$maxDepth = 3,$arrSort = [] ,$valsPrev = [], $depth = 1){
    foreach($arr as $val){
        if(in_array($val,$valsPrev))
            continue;
        
        $varTmpArr = $valsPrev;
        array_push($varTmpArr,$val);
        
        if(!find($arrSort,$varTmpArr))
            array_push($arrSort,$varTmpArr);
        if($depth < $maxDepth)
            $arrSort = excerpt($arr,$maxDepth,$arrSort,$varTmpArr  , $depth +1);
    }  
    return $arrSort;
}

function convert($arr){
    
    $newArr = [];
    foreach($arr as $subarr){
        $newval = "";
        foreach($subarr as $val)
            $newval .= " ". $val;
        array_push($newArr,trim($newval));
    }
    return $newArr;
}

    
    foreach(convert(excerpt(['яблоко', 'банан', 'киви', 'апельсин'],3)) as $v)
        echo $v . "\n";
    ?>
Вывод
яблоко
яблоко банан
яблоко банан киви
яблоко банан апельсин
яблоко киви
яблоко киви апельсин
яблоко апельсин
банан
банан киви
банан киви апельсин
банан апельсин
киви
киви апельсин
апельсин
Вопрос: Base64 и Active Directory: почему не всегда правильно декодируется поле Должность (title)?

Лучший ответ:
Всё очень просто. Остальная часть находится на следующей строке ответа ldapsearch.

Худший ответ:
�
Ни на что не наталкивает?
Длина маловата, увеличивай.
Вопрос: Верно ли, что коммерчески успешная игра должна быть интересной и хорошего качества?

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

Худший ответ:
Нет, не должна.
Хорошая реклама иногда может вытянуь даже неинтересное некачественное гоподелие.
Но если рекламировать что-то хорошее, то шансы на профит повышаются.
Вопрос: Как сделать, чтобы программа делала запись в БД в определенные часы?

Лучший ответ:
В спринг есть планировщик.
Вот тут гайд: https://spring-projects.ru/guides/scheduling-tasks/

Худший ответ:
stackoverflow (без спринга)
Вопрос: Как лучше изменить код?

Лучший ответ:
Примерно вот так:const queries = [
    categoryModel.find({}),
    productModel.find({}),
    seasonModel.find({}),
    sizeModel.find({})
];
Promise.all(queries).then(result => {
    console.log(result);
}).catch(err => {
    throw err;
});

Худший ответ:
Promise.all
или await, если исполняться последовательно должны
Вопрос: Почему get запрос в браузере работает в а в node.js нет?

Лучший ответ:
А вы текст ошибки попробуйте вдумчиво прочитать:No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:3000' is therefore not allowed access.
The response had HTTP status code 403.Research link

Худший ответ:
Когда делается запрос от браузера - это запрос от страницы (в браузере), которую отдал ему (браузеру) этот же сервер.
Когда делается запрос "со стороны" - это запрос "неизвестно от кого". Сервер не принимает запросы "неизвестно от кого" - если ему специально не разрешить принимать запросы "неизвестно от кого".
В целом это называется CSRF (англ. Сross Site Request Forgery — "межсайтовая подделка запроса")
Вопрос: Как свернуть thunderbird в трей?

Лучший ответ:
В версии 78.3.1 заметил это сделано


Худший ответ:
MinimizeToTray revived (MinTrayR)
У меня сейчас с самым последним thunderbird работает. Но есть косяк: при запуске открывается дважды. Дубликат закрываю и до следующей перезагрузки работает нормально.
Вопрос: Как выводить представление по одному и тому же маршруту в зависимости от условия?

Лучший ответ:
Для начала научитесь контроллеры создавать.
Потом почитайте про Auth и как узнать залогинен сейчас пользователь или нет, в зависимости от этого отдавайте разные шаблоны, а не создавайте "2 роута на одну ссылку" т.к. это невозможно.

Худший ответ:
Вот как я решил это.
Я создал контроллер главной страницы:class HomeController extends Controller
{
    public function index()
    {
        if(!Auth::check()){
            return view('layouts/login');
        }
        return view('index');
    }
    public function main()
    {
        if(!Auth::check()){
            return view('layouts/login');
        }
        return view('layouts/main');
    }
}
Затем в роутах прописал вот так:Route::get('/', 'HomeController@index')->name('index');
Route::get('/', 'HomeController@main')->name('main');UPD исправление плохого кода.
Как я сделал выше - неправильно.
Переделал вот так, ибо я не взял во внимание то, что шаблон выводится независимо от роутера, и я выводил его зачем-то по роуту '/' :
HomeController.phpclass HomeController extends Controller
{
    public function main()
    {
        if(!Auth::check()){
            return view('layouts/login');
        }
        return view('layouts/main');
    }
}
web.phpRoute::get('/', 'HomeController@main')->name('main');
Дальше я столкнулся с проблемой, что если гость переходит по пути который существует на сайте, то вылетает ошибка которая в вопросе вместо редиректа, независимо от того, что маршруты которые нужно запретить находятся в группе роутов auth.
Исправил вот так (не знаю насколько правильно, знатоки мб подскажут):
В Handler.php в конце метода rednder()if(!Auth::guest()){
    return parent::render($request, $exception);
} else {
    return redirect()->guest('/LOGIN.PAGE.HERE');
}
После этого если гость переходит по существующему маршруту, его перекидывает на страницу логина, в моем случае '/'. 
Так же я убрал ВСЕ return view для маршрутов в роутере и прописал все это в контроллере HomeController, а web.php привел к такому виду:Route::get('/path', ['as' => 'name', 'uses' => 'MainController@method']);
Вопрос: Сколько можно заработать на разработке своих игр?

Лучший ответ:
Какой процент успеха соответственно в разных категориях?
Если мы говорим про индюшатину от Васяна, то процент успеха примерно 0,01%, то есть, в пределах статистической погрешности.
Если вы решили в одиночку сделать иглюсецьку и надеетесь на ней хорошо заработать - не тратьте время зря, в одиночку это не получится.

Худший ответ:
Давайте зайдем с другого конца. Чего в вашей идее такого, что вы на ней должны миллионы поднимать?
Вопрос: Что такое DMOZ? И зачем оно нужно? И как проверить любой сайт на его индекс?

Лучший ответ:
Дмоз мертв можно не париться

Худший ответ:
Это ископаемые времен интернета 2000х. Что делать с ними? Забить и забыть.
Вопрос: Практика для сисадмина?

Лучший ответ:
Семейство RedHat: Centos, Fedora, Oracle Linux и собственно RHEL. Котируются в серьёзном энтерпрайзе типа банков. Хороший выбор с заделом на будущее.
Семейство Debian: Debian, Ubuntu, Mint, что-то там ещё. Популярны, по ним больше разжёванных инструкций и прочего, часто встречаются в IT-компаниях (в том же Яндексе). Хороший выбор для старта.
Arch, Gentoo, Slackware, и BSD-семейство туда же - выбор суровых красноглазиков. Очень познавательно, но сложно, если не бездумно копипастить команды с вики, а реально вникать.

Худший ответ:
Если linux то их всего три. Debian/Ubuntu/Centos
Вопрос: Допускает ли тостер создание постов?

Лучший ответ:
Можно, пишите. Оформляйте вопрос как вопрос, а ответ как ответ, главное - не нарушайте правила https://toster.ru/help/rules

Худший ответ:
И одобряет.
Вопрос: Как уменьшить пинг?

Лучший ответ:
пацанчик, видимо, узнал, что есть фирмА, в Штатах, кажется, которая занимается огранизацией высокоскоростных каналов - оплата за траффик, стоимость в 5-10 раз выше обычной, имеет спрос у корпораций, которые свои видеозвонки  с задержками тоже не терпят  и прочие SAPы по таким лучше сигхронизятся 
была статья в Форбс, что, мол, бизнес прибыльный, но специфический, и не растет - все, кому нужно, знают
поэтому из рекомендаций - переселиться в Амстердам, или еще куда

Худший ответ:
В деревне вообще не вариант базироваться, если инфраструктура интернета для Вас критически важна.
Так что переезд ещё сильно дешевле покажется по сравнению с вариантом "персональная линия с хорошим пингом в Вашу дыру на Вас одного"
Вопрос: Почему по утрам сервер сильно нагружается?

Лучший ответ:
Резкий скачок в одно и то же время говорит о запуске какого-то скрипта по расписанию. Или внешнего бота, тоже по расписанию.

Худший ответ:
Авто апгрейд настроен?
https://libre-software.net/ubuntu-automatic-updates/
https://www.percona.com/blog/2018/08/10/tuning-aut...
Я бы предположил что запускается какая то задача. 
* Vacum  на  таблицах (База постгрее?)
* Дефрагментация
* апгрейд
* что то еще. 
В общем проверьте логи кто запускается в это время
Вопрос: Какая microSD подойдет для хранения семплов?

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

Худший ответ:
Возьмите внешний диск
Вопрос: Какую платформу изучить для вебсайтов?

Лучший ответ:
Если 80% заявок по WP - вот и ответ на вопрос, что же нужно изучать.

WordPress медленный. Toyota надёжная. Land Rover ломается.
Стереотипы. Это не всегда так, все зависит от конкретных условий.

Худший ответ:
Рассмотрите как вариант Flextype, как раз через недельку будет новый релиз
Вопрос: Программист ПО и одновременно web?

Лучший ответ:
А бекэнд же что, не ПО?

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

Лучший ответ:
CSS columns специально для этого
https://jsfiddle.net/ucj53vLs/1/

Худший ответ:
Воспользуйтесь модулем CSS3 columns с помощью которого возможно будет сделать многоколоночный макет. Он позволит сделать так, чтобы ваш контент состоял из вертикальных контейнеров. Что-то типа газеты или журнала.
С помощью column-width сделаете минимальную ширину контейнеров. А с помощью column-count - кол-во контейнеров.
Вопрос: Как сохранять состояние приложения, чтобы не было лага?

Лучший ответ:
Используйте fork, дочерний процесс за счёт механизма Copy-on-Write в наследство практически бесплатно получает копию памяти родителя (это если у вас Linux).
Такой подход позволяет сделать fork, после этого в родительском процессе заниматься дальнейшей работой, а в дочернем не торопять дампить что нужно на диск.
Мы таким образом дампим индекс размером в десятки гигабайт практически без влияния на производительность и почти без роста затрат памяти, ровно так же это делает например redis (rdb).

Худший ответ:
Что значит в реальном времени, у вас ОС реального времени?1)Может вам не состояние сохранять а вести журнал всех изменений, и по требованию восстанавливать структуру воспроизводя действия из журнала в том же порядке. Как БД делают с транзакциями, журнал транзакций, сначала пишем в него, а потом уже пытаемся выполнить. Только не удалять потом из него, что то вроде Event Sourcing получается. Таким подходом у вас в любой момент можно восстановится до последнего состояния до сбоя/выключения. но лог огромным может быть, их помоему можно склеивать.
Идея такая - посмотреть как работают Inmemory DB, SQL, NoSQL.2)Идеально было бы не заморачиваться так.
Возможно сдлеать что то типо команд.
В ПО летит команда - сделай что то с объектом.
Вы эту команду кидаете менеджеру.
Менеджер хранит две копии одинаковых объектов, и для каждого из них держит две одинаковые очереди команд. Когда объект готов, он берет команду из своей очереди, и выполняет ее.
Вы нажимаете сохранить копию объекта на диск.
Менеджер берет говорит одному из объектов - сохранись на диск, тот перестает выполнять поступающие команды, и сохраняется на диск. После этого продолжает выполнять команды, догоняя своего соседа. Догонит он его или нет не понятно, но вот что он будет его копией на момент времени Х, определенно.
Памяти будет кушать много (два объекта, две очереди, одна из которых может "опаздывать/догонять"), но в теории должно работать.
Это напоминает асинхронную реплику, только в памяти и там том же устройстве.2.1) В памяти может быть только один объект. Менеджер при поступлении служебной команды на сохранения объекта, может продолжать складировать обычные команды в очередь дальше, как объект сохраниться, он продолжит брать команды из нее.
Приложение не будет зависать, но и мгновенное выполнение команд не гарантируется.3) Сделать клон в памяти быстрее чем на диске. Делаем клон в памяти, и сохраняем его на диск, после удаляем (мержить и догонять не нужно, проще удалить целиком и сделать новый когда потребуется).
Вопрос: Знаете ли вы бесплатные школы программирования в РФ (очные или онлайн)?

Лучший ответ:
ulearn - это не школа, но как по мне, так вполне увесистый онлайн курс. Стоит на него обратить внимание.

Худший ответ:
IT Школа Samsung - бесплатно в течение года учат почти с нуля программировать на Java/Android.
Правда есть 2 но - берут только школьников старших классов и площадки есть не во всех городах России.
Вопрос: Как отправить POST без form?

Лучший ответ:
 не смог менять их значениеМожно сделать отправку формы на js, но не хочу, поскольку javascript можно остановить и изменить значениядля этого существует подпись, которую Вы кладёте в поле hidden при формировании страницы.
После оплаты - получаете данные и проверяете их через подпись.
Если он что-то подменит - подпись не совпадёт и Ваш ответчик транзакции сгенерит ошибку (оплата не пройдёт, деньги ни с кого не спишутся).

Худший ответ:
в сессии храните данные. Они путешествуют между скриптами, но не доступны юзеру.
Вопрос: Как сделать логотип на одном уровне с меню?

Лучший ответ:
блин, тут вариантов 5-6 сходу придумывается. 
флекс, флоаты, инлайн-блок, таблицей, в конце-концов. 
Но быстрый ответ дать не получится, потому что нужно более-менее четко представлять, ЧТО должно получиться в итоге. 
самое быстрое: .container {
display:flex;
}
подробнее: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
только у вас там .nav ul в медиа-запросах абсолютно спозиционирован, это надо переделать.

Худший ответ:
Картинку Вам тут никто не нарисует.
Что значит "на одном уровне с меню"? Картинка слева, меню справа? Ну, например, так:
{TABLE}{TR}
{TD}картинка{/TD}
{TD}меню{/TD}
{/TR}{/TABLE}
(фиг.скобки заменить на меньше/больше)
Слова внутри таблицы - заменить на то. что Вам туда нужно поместить.
Вопрос: Сколько времени потребуется, чтобы стать веб-девелопером?

Лучший ответ:
Почему вы хотите стать именно веб-девелопером? ИМХО в веб разработке сейчас такой разброс технологий, что можно потеряться. Если нахвататься по верхам HTML, CSS, JS, PHP - то вы скорее выйдете на уровень массового изготовления веб-сайтов на вордпрессе (очень нудная работа с очень высокой конкуренцией).
Если хотите научиться чему-то серьезному - то начните с чего-то другого. Например с программирования. Тот же Python - даст вам прекрасную базу и море возможностей для дальнейшего развития. И позволит быстрее перейти к серьезной разработке, а не клепать говносайтики.
Для выхода на джуниор позицию может хватить и года, если действительно пахать. Но серьезно карьеру построить уйдет от 3 лет и больше.
Профильное высшее образование не критично (разве что вы захотите иммигрировать в страну где его требуют). Но если есть возможность учиться без ущерба для текущей работы и личной жизни - вперед. В обычном поиске работы (тем более в России) вообще не спрашивают. Главное показать работы, GitHub с проектами, т.е. показать скилл.
Сидячий образ жизни накладывает отпечаток + туннельный синдром + позвоночник + глаза))) не все так гладко.

Худший ответ:
Зависит только от желания и головы, у каждого это индивидуально. 
Притча есть такая на эту тему: 
Далеко ли?!
У дороги сидел человек, мимо проходил путник и спросил сидящего:
- Долго ли идти до города?
- Иди,- отвечает ему сидящий.
- Нет, ты, видно, меня не понял. Долго ли идти до города??
- Иди,- так же ответил тот.
Путник разозлился.
- Я задал тебе простой вопрос! Долго ли идти до города?!
- Иди…- всё так же отвечал ему сидящий.
Путник в сердцах пошёл прочь.
- Постой,- вдруг услышал он голос сидящего возле дороги человека.- До города 6 часов ходьбы.
- Так что же ты мне сразу не сказал??
- Я не знал, с какой скоростью ты пойдёшь.
Вопрос: Как правильно структурировать реакт проект?

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

Худший ответ:
я предпочитаю feature-first подход, когда всё относящееся к определённой фиче лежит в отдельной папке. Ситуация описанная вами возникает регулярно, и это тот случай, когда нужно сделать рефакторинг и вынести общую функциональность в некую общую папку, которая будет зависимостью для всех, кто её использует. В этом нет ничего плохого, это общепринятая практика. Главное, чтобы то, что вы выносите в зависимость было самостоятельной сущностью, а не просто одной какой-то переменной или функцией. Логотип - вполне себе отдельная сущность. Набор иконок, анимаций или общих стилевых правил, которыми пользуются другие компоненты - тоже вполне себе отдельная сущность.
В перспективе можно набор общих компонентов вынести в отдельный репозиторий и yarn/npm модуль, но с этим не стоит торопиться.
Другое дело, когда у одной самостоятельной фичи появляется зависимость от другой не связанной с ней прямо фичи - это не всегда хорошо, лучше выносить общий функционал в отдельную фичу, чтобы эти две от неё очевидно зависели.
Вопрос: Являются ли эти видео фейком?

Лучший ответ:

Просто посмотрите на катушки Qi зарядки. Это ради 1А 5В на сверх короткое расстояние.
Хотя люминесцентная лампа хорошо горит под ЛЭП. Но подумайте какое там электромагнитного  поле. Хотя опять же если положить ее на изолированный от земли стол, то она светиться не будет.

Худший ответ:
Пиздаболие да и только, смотри канал ElectroBoom там он рассказывает про это все, и разоблачает таких и рассказывает почему так.
Вопрос: Есть ли расширение для chrome которое облегчает парсинг PyQuery?

Лучший ответ:
в девтулз браузера выбираете нужный элемент и через правый клик копируете его селектор.

Худший ответ:
в девтулз браузера выбираете нужный элемент и через правый клик копируете его селектор.
Вопрос: Какой кабель выбрать для видеонаблюдения на даче?

Лучший ответ:
Берете обычную витую пару, 8 жил, по 4к за 305м. 
Укладываете в гофру. 
У каждой камере - по распред коробке. 
Питать по POE. 
Срок службы 3-5 лет

Худший ответ:
Да, камеры IP
7 740 дороговато получается :(
А вот такой подойдет?
https://www.nets-shop.ru/tovar/18021.html
Тоже для внешней прокладки, тоже 305 метров в бухте, но по цене приятнее.
Вопрос: Как рекламировать Инстаграм-страницу в Инстаграме через Фейсбук, чтобы при нажатии открывалась страница в приложении, а не в браузере?

Лучший ответ:
Это называется deep linking, создайте адрес здесь https://app.urlgeni.us/ и таргетируйте платформы индивидуально.
Рекомендуется привязывать Instagram аккаунт к странице в Facebook, тогда в каждой сети будет нормальная ассоциация рекламы и аккаунта.

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

https://youtu.be/4FwqdLgT0sQ
Вопрос: Какой проектор лучше использовать в домашних условиях?

Лучший ответ:
Никакой, не в этом их назначение.

Худший ответ:
Любой, на какой хватит денег. Каких-то отличий от офисных нет.
Вопрос: Выбор l2 коммутатора?

Лучший ответ:
Зависит от бюджета, от задачи и от многих но... В связи с импортозамещением можно посмотреть на MES2348. Если из бюджетного - какой-нибудь  SNR-S2985G-48 или DSG-1210-52. По настройке - согласен с ky0 - проще только неуправляемые....

Худший ответ:
Куда уж проще каталиста? Разве что эникея нанять...
Вопрос: На чём нынче пишут современные браузерные игры?

Лучший ответ:
Ничего не поменялось. Языки подросли, но это все тот же JS на фронте. И любой как бэк. Разве что фреймворков стало больше

Худший ответ:
https://phaser.io - ваш выбор.
Вот моя попытка написать туториал по написанию игры Сапёр.
Вопрос: Могут ли митапы помочь с поиском работы?

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

Худший ответ:
Нет. Там нет hr, а основной костяк и так друг друга знает, работали вместе и т.п. На митапах и конфах ничо не найдешь.
Вопрос: Лучший клиент для работы по FTP/SFTP для ubuntu?

Лучший ответ:
зачем вам вообще клиент? 
никогда не понимал зачем для линукса он нужен вообще?
у тебя в навигаторе есть кнопочка подключить фтп и пользоваться им как обычной файловой системой.
если вы работаете часто тоо можно создать закладки.
Если прям совсем бесшовный ( я так делаю) 
монтирую их 
https://help.ubuntu.ru/wiki/%D0%BC%D0%BE%D0%BD%D1%...

вопрос зачем вам сторонние решения  если сама ос ( в отличие от винды) 
может напрямую работать через этот протокол ?
Про sftp я вообще помолчу

Худший ответ:
А чем не устраивает простое монтирование ftp в систему?
FileZilla - хороший клиент
Вопрос: Что использовать для подсчета слов в больших текстах?

Лучший ответ:
Что угодно подходит. Строка (текст) - это массив символов. Пили его, руби как хочешь, и считай.

Худший ответ:
для слов есть алгоритм прям в вики MapReduce, раздробить по количеству вычислительных возможностей и юзать.
сравнение слов классически по хешу, причем посдчет также раздробить внутри мапредуса можно. ну и не забыть нормализацию Е-Ё И-Й
подсчет совпадающих предложений бессмыслен, ибо таковых не найдется.
Вопрос: Как запретить ввод букв в C++?

Лучший ответ:
isDigit() же.
www.c-cpp.ru/content/isdigit
Засуньте проверку в бесконечный цикл с выходом из него, если введено число. Разберётесь?

Худший ответ:
Как вариант то можно с помощью цикла:

bool flag = false;
for(int i = 0; i<100000; i++){
if(num1 == i){
flag = true;
break;
}
if(flag){
....(проверка второго или же продолжение задачи)
}else{
cout << "Введите число";
}
Как вариант, такое может быть, но оно будет очень затратным. 
Оно хорошо себя покажет в случаи если есть диапазон, например: "Введите число от 0 к 100", тогда этот вариант можно использовать.
Вопрос: Как в EXCEL оптимизировать начальные значения?

Лучший ответ:
Плагин для Excel Поиск решений
Это ответ на Ваш вопрос. Изучите и сможете настроить его работу как Вам нужно.

Худший ответ:
Вкладка "Данные" -> "Анализ "что если"" -> "Подбор параметра"Отсюда можете найти инструкции)