PHP
Программисты, сколько вам нужно времени чтобы написать такой алгоритм:
Чтобы он определял максимальное возможное кол-во вариантов разложения любого числа на множители. Я вот уже 2 часа пишу, никак не напишу, вы бы за сколько справились? Может вам известны какие нибудь законы, от которых зависит их кол-во? Пока что могу определить только максимальное кол-во самих множителей для числа, а вот сам подсчет вариантов это жесть, у меня тут 80 строк кода епт, я уже запутался
Смотря что подразумевать под разложением числа на множители. Все возможные множители, или только простые? Порядок перечисления множителей важен или нет? Множители могут быть одинаковыми, или должны быть все разные? Входит ли число 1 в список множителей?
function f($val, $cur = 2) {
if($val == 1){ return 1; }
if($val < $cur){ return 0; }
for($count=0; $cur <= $val; ++$cur) {
for($tmp = $val; $tmp % $cur == 0; $count += f(($tmp /= $cur), $cur+1));
}
return $count;
}
echo f(125);
function f($val, $cur = 2) {
if($val == 1){ return 1; }
if($val < $cur){ return 0; }
for($count=0; $cur <= $val; ++$cur) {
for($tmp = $val; $tmp % $cur == 0; $count += f(($tmp /= $cur), $cur+1));
}
return $count;
}
echo f(125);
Максимка
Число 1 не входит. Множители тут это любые целые числа. Повторяться могут, но одинаковых вариантов быть не может. Порядок не важен
Максимально возможное разложение на множители? Это называется разложение на простые множители. За минутку.
Максимка
вычислить максимальное возможное кол-во вариантов разложения
Пенёк!!! Алгоритм или его блок-схему - в элементе.... А вот реализация в языке...
Максимка
Какая разница какой язык применять. Алгоритм есть алгоритм. Можешь мне блок схему сделать я не против
Называется факторизация... задачка с одной стороны простая, с другой... хех. Самый простой тут, а так гугли "факторизация" Например, на JS http://www.se16.info/js/factor.htm Правая кнопка мыши, "Исходный код страницы" и всех делов!


что за язык?
Максимка
любой
int someDigit = 100;
mod = 2;
vector < int > vecDelim;
while (someDigit > 1) {
if (someDigit % mod) {
vecDelim.push_back(i);
someDigit = someDigit % mod;
mod = 2;
}
else {
mod++;
}
}
как-то так. Сонная, на скорую руку и не проверяла )) возможно есть где-то недочет, завтра проверю хД
а по теме, учи дискретную математику. Она поможет не сидеть над такими задачами по 2 часа с 80 строками кода. На полном серьезе потрать лучше пару месяцев на изучение мат. логики, английского и гугла и только потом приступай уже к программированию, иначе бросишь это дело.
mod = 2;
vector < int > vecDelim;
while (someDigit > 1) {
if (someDigit % mod) {
vecDelim.push_back(i);
someDigit = someDigit % mod;
mod = 2;
}
else {
mod++;
}
}
как-то так. Сонная, на скорую руку и не проверяла )) возможно есть где-то недочет, завтра проверю хД
а по теме, учи дискретную математику. Она поможет не сидеть над такими задачами по 2 часа с 80 строками кода. На полном серьезе потрать лучше пару месяцев на изучение мат. логики, английского и гугла и только потом приступай уже к программированию, иначе бросишь это дело.
Максимка
Не согласен. В программировании есть направления где математика не нужна. Да что там есть, практически нигде не нужна. Я веб-разработчик джуниор. Ну и нафига мне знать что то там из высшей математики? Мне нужно знать технологии, фреймворки
Забей на эту херню.
Похожие вопросы
- Когда закончится дефицит программистов и наступят трудные времена?
- Как вы думаете Сколько платят программисту без стажа? Допустим PHP программист
- Алгоритм наследования PHP. Никак не пойму.
- Хочу работать php программистом. Но как узнать - готов я или нет? На php же можно очень много написать, в отличие от JS.
- Вопрос про программистов
- Вопрос начинающего программиста Python\PHP
- Алгоритм для восстановления пароля через Email.
- где найти хороших программистов?
- В требованиях вакансии php разработчика указано 'базовые знания алгоритмов'. О каких именно алгоритмах идет речь?
- Как стать высококвалифицированным php программистом?