June 13, 2024

Решаем задачи от новой версии ChatGPT 4o #3

Всем привет! Продолжаем тестировать новую версию ChatGPT 4O, при этом изучая язык программирования Leo. Сегодня мы решим третью задачу, но для начала напомню запрос, который мы задаем.

И по этому запрому третья задача выглядит так:

В общем-то говоря, нам нужно будет создать функцию, которая высчитывает факториал числа. Для начала вспомним, что такое факториал числа.

"Факториал натурального числа n определяется как произведение всех натуральных чисел от 1 до n включительно" - для нас это основная информация.

Давайте откроем Aleo Studio и создадим новый проект, чтобы приступить к решению данной задачи.

Назовем наш проект ex3.

Нажимаем кнопку create и у нас создается начальная функция main:

Теперь меняем вход функции. На входе одна переменная, пусть это будет переменная a типа u32, она будет хранить в себе число, факториал которого мы будем считать. На выходе функции будет также 1 переменная типа u32, она будет хранить факториал переменной а.

Далее давайте создадим переменную ftl (факториал), которую мы будем выводить по результату работы программы. По умолчанию зададим ей значение 1, позже я объясню почему не 0.

Нам нужно запустить цикл перебора от 1 до a, при этом есть один нюанс. Синтаксис Leo не позволяет записать "сделай перебор от 1 до a", поэтому нам приходится делать костыль и перебирать от 1 до максимального предусмотренного задачей, в нашем случае до 10. И далее добавляем условие, что перебор идёт, если итерация перебора меньше переменной а.

Теперь осталось рассчитать факториал, умножая ftl на интерацию i. Именно для этого мы задали значение ftl 1, так как при умножении 0 на 1, потом на 2, всегда был бы ноль.

Возвращаем переменную ftl:

Мы получили по итогу данный код:

program sum.aleo {
    transition main(a: u32) -> (u32) {
        let ftl: u32 = 1u32;
        for i:u32 in 1u32..10u32 {
            if i <= a{
            ftl = ftl * i;
            }
        }
        return ftl;
    }
}

Давайте запустим код с этими входными данными:

Факториал 4х равен 24, поэтому на выходе программы мы должны получить 24, давайте проверим наш код.

Всё верно, мы выполнили задачу правильно. На этом всё, увидимся в следующей статье!