Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
vp-webdev
6 лет назад

Решаем математическую задачу при помощи компьютера

У многих часто возникает вопрос - какие задачи можно решить при помощи компьютера? Ответ - банальные математические задачи. Составить алгоритм совсем несложно, а вычислительные мощности процессора будут задействованы совсем чуть-чуть.

Задача


Математик, высшее образование. Не могу решить задачу!
Надо найти все четырехзначные числа, у которых квадрат суммы числа из первых двух цифр и из последних двух цифр равен этому числу.
Например: 9801 = (98+01) в квадрате.
Пробовал решить задачу на бумаге - не получилось. Пришлось прибегнуть к помощи компьютера.

Формула будет выглядеть следующим образом:

Попробуем решить эту задачу.

Составим алгоритм

Перебираем все числа от 10 до 99 - это будут первые два числа четырёхзначного числа.
Для каждого из этих чисел подставляем пару из диапазона от 0 до 99.
Складываем эти двузначные числа и находим квадрат суммы. Сравниваем его с четырёхзначным числом.

Решение на PHP

$ab = 10;
while($ab <= 99) {
    $cd = 0;
    while($cd <= 99) {
        $left = ($ab + $cd) ** 2;
        $right = $ab * 100 + $cd;
        if ($left == $right) {
            echo '(' . $ab . '+' . $cd . ') ^ 2 = ' . $right . '<br />';
        }
        $cd++;
    }
    $ab++;
}

Результат работы скрипты будет таким:

(20+25) ^ 2 = 2025
(30+25) ^ 2 = 3025
(98+1) ^ 2 = 9801

Получается уравнение имеет всего 3 решения!? Я думал, что их будет больше.

Решение на JavaScript

let ab = 10;
while (ab <= 99) {
    let cd = 0;
    while (cd <= 99) {
        let left = Math.pow((ab + cd), 2)
        let right = ab * 100 + cd;
        if (left == right) {
            console.log('(' + ab + '+' + cd + ') ^ 2 = ' + right)
        }
        cd++;
    }
    ab++;
}

На JavaScript решение будет аналогичным. В консоли браузера будет ровно тоже, что и в php выдаче.

Таким нехитрым способом мы обошли 9000 пар чисел и выполнили 45000 арифметических операций. Но всего лишь 3 пары чисел были верным решением задачи.
Скрипт выполняется мгновенно и не создаёт нагрузки на процессор.

Если вам ясен алгоритм решения задачи - вы можете использовать языки программирования для решения многих повседневных задач.

Программирование - это просто ;)

Материал подготовлен автором @tristamoff

0
184.081 GOLOS
На Golos с August 2017
Комментарии (4)
Сортировать по:
Сначала старые