• Как перебрать все перестановки на C++?

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

    https://en.cppreference.com/w/cpp/algorithm/next_p...
    #include <algorithm>
    #include <string>
    #include <iostream>
     
    int main()
    {
        std::string s = "aba";
        std::sort(s.begin(), s.end());
        do {
            std::cout << s << '\n';
        } while(std::next_permutation(s.begin(), s.end()));
    }
    Ответ написан
    2 комментария
  • Как доказать, что не существует трех таких цифр (0-9), сумма квадратов которых равна 172?

    @Mercury13
    Программист на «си с крестами» и не только
    Перебор.
    98x — не получается
    97x — не получается
    96x — не получается
    95x — не получается
    94x — не получается
    93x — x уже великоват

    88x — не получается
    87x — не получается
    86x — не получается
    85x — x уже великоват

    77x — не получается
    76x — x уже великоват
    66x — x и подавно великоват

    Вариант 2.
    172 делится на 4. Любой квадрат делится на 4 с остатком 0 или 1 — потому у нас должны быть три чётных цифры.
    Перебор сокращается.

    88x — не получается
    86x — x уже великоват

    66x — x и подавно великоват, дальше перебирать нет смысла.
    Ответ написан
    3 комментария
  • Как решить задачу на вершины на C++ с минимальным кодом?

    std::vector<int> heights{18, 10, 15, 20, 20, 10, 3} ;
    	size_t bestLen = 0;
    	size_t bestIndex = 0;
    	// путь не может быть проложен из последних двух вершин
    	for(size_t i = 0; i < heights.size() - 2; ++i)
    	{
    		// начало пути должно быть в гору
    		if(heights[i + 1] <= heights[i])continue;
    
    		// прокладываем путь до ближайшего спуска
    		for(size_t j = i + 2; j < heights.size(); ++j)
    		{
    			if(heights[j] > heights[j-1])break; // подъём встретился до спуска, решение заведомо неоптимально
    			if(heights[j] < heights[j-1])
    			{
    				size_t len = j - i;
    				if(len < bestLen || bestLen == 0)
    				{
    					bestLen = len;
    					bestIndex = i;
    				}
    				break;
    			}
    		}
    	}
    
    	if(bestLen == 0)
    	{
    		std::cout << 0 << std::endl;
    	}
    	else
    	{
    		std::cout << bestIndex + 1 << " " << bestIndex + bestLen + 1 << std::endl;
    	}
    Ответ написан
    1 комментарий
  • Как задать размеры матрицы (вектора векторов) в C++ после ее создания?

    myjcom
    @myjcom Куратор тега C++
    Matrix
    #include<iostream>
    #include<vector>
    using namespace std;
    
    template<typename T>
    class Matrix
    {
      size_t cols;
      size_t rows;
      vector<vector<T>> m_matrix;
    public:
      Matrix(size_t c, size_t r) : cols{c}, rows{r}, m_matrix{}
      {
        m_matrix.reserve(cols);
        for(auto i{0}; i < cols; ++i)
        {
          m_matrix.emplace_back(vector<T>(rows));
        }
      }
      auto begin()
      {
        return m_matrix.begin();
      }
      auto end()
      {
        return m_matrix.end();
      }
      vector<T>& operator[](size_t i)
      {
        return m_matrix[i];
      }
    //...
    };
    
    int main()
    {
      Matrix<int> m(10,10);
    
      m[5][5] = 5;
    
      for(auto& c : m)
      {
        for(auto& e : c)
        {
          cout << e << ' ';
        }
        cout << endl;
      }
        return 0;
    }

    OUT:
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 5 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0


    только зачем? Eсли есть (как минимум):
    std::valarray
    И
    std::slice

    boost::numeric::ublas
    Ответ написан
    2 комментария
  • Что нужно сделать перед изучением ЯП?

    @Ambrosian
    То исть как начать думать как программист, а не как кодер.


    Программистом делает программиста не знания языка программирования.
    А знание алгоритмов, паттернов, концепций, парадигм программирования.

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

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

    Поэтому ответ - нужно программировать начинать уже. Хватит задавать вопросы на форумах.
    Ответ написан
    1 комментарий
  • Как отключить защитник Windows?

    @generalx
    Системный администратор
    как не помогают?
    gpedit.msc
    5b7fcc217cb37826257422.jpeg
    Ответ написан
    1 комментарий
  • Переквалификация или Проф. переподготовка насколько реальна?

    @evgeniy_lm
    Начать надо с того что бы определится чего ты конкретно хочешь. Разница между html+css+js и ИИ примерно такая как между самокатом и межгалактическим звездолетом. Первое это такая прикольная игрушка на которой можно срубить бабки по легкому, если повезет, второе это фундаментальная наука там надо быть серьезно в теме чтобы получить небольшой кусочек от какого-то гранта.
    Если тебя интересует именно размер ЗП то она там где говорят по английски. Если уж у тебя есть большой опыт в 1С то, думаю стоит развиваться дальше в этом направлении, кури теорию ERP и CRM, учи английский и интересная работа с хорошей зарплатой тебе гарантирована
    Ответ написан
    8 комментариев
  • Есть ли курсы "широкого" разработчика сайтов?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Если Вы хорошо знаете
    HTML/CSS, Bootstap, Javascript, PHP, Python

    Зачем тогда
    Bitrix, Wordpress, Joomla, Opencart, ModX


    И если по религиозным соображениям Вы работаете только с готовыми cms, почему именно такой список?
    Как минимум для начала можно выбрать что-то 1.
    Wordpress и Joomla аналоги по сути.
    Bitrix, Opencart и др. cms для магазинов тоже не особо надо все знать.
    Лучше меньше да лучше, чем все по чуть-чуть.
    Каким боком к этому списку Python? Похоже на игру вычеркни лишнее. Очень хочется Python вычеркнуть.

    На самом деле для того что бы разобраться с cms на среднем уровне не требуется много времени. Достаточно хорошо знать язык на котором она написана. Так что для Вашего списка в первую очередь надо учить php. Ну и конечно HTML,CSS,Javascript
    Ответ написан
    Комментировать
  • Проблемы трудоустройства и свободного времени в it, насколько все плохо?

    nki
    @nki
    bezkart.ru готовая система лояльности
    вопрос оплаты труда волнует меня в последнюю очередь

    вранье
    с позиции нуба и чайника, нравится эта сфера, процесс обучения доставляет удовольствие.

    просто вы работать еще не начали в этой сфере
    Никто ведь не захочет тратить 90% времени в вузе на учебу, а потом 95% из взрослой жизни.

    Начни с ответа на вопрос - "как я хочу жить?", а потом уже решайте кем работать чтобы обеспечить себе такую жизнь.
    Я часто предлагаю таким не определившимся следующее "упражнение" - представьте себе свой идеальный рабочий день. С самого пробуждения до отхода ко сну. Прямо в мельчайших подробностях. Где и с кем живете, что едите, как и где работаете и т.д. Повторить с выходным днем. Теперь вопрос - ваша выбранная деятельность позволит вам достичь желаемого?

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

    нет
    тем более что профессия подразумевает многочисленные болезни

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

    Это нормально. У тебя будет опыт и выучить что-то новое не так уж и сложно.
    Ответ написан
    12 комментариев