Сейчас модно хвататься тем, как увеличиваешь свою эффективность при помощи ChatGPT. Хотя многих, напротив, пугает перспектива развития искусственного интеллекта как технологии, которая может отнять работу. С целью выяснить, кто же в данной ситуации прав, оптимисты или «всепропальщики», решил попробовать ChatGPTв деле и провести с ним некоторые эксперименты.
Я нагуглил задачку для собеседований и сначала попробовал решить их сам (без гугления ответа), затем путем гугления ответа, и в третий раз попросив написать программу ChatGPT.
Первая задача: напишите программу, которая проверяет, является ли число числом Армстронга. Число Армстронга — натуральное число, которое в данной системе счисления равно сумме своих цифр, возведённых в степень, равную количеству его цифр. Пример: 3**3 + 7**3 + 1**3 = 371
Мое решение на C# выглядело так:
Решение на C#
using System;
namespace Ex1_1
{
class Program
{
static void Main(string[] args)
{
string s = Console.ReadLine();
int num = 0;
try
{
num = Convert.ToInt32(s);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
return;
}
int res = 0;
int count = s.Length;
for(int i=0; i<count; i++)
{
int digit = Convert.ToInt32(s[i].ToString());
res += Convert.ToInt32(Math.Pow(digit, count));
}
Console.WriteLine("Результат: " + res);
if (res == num) Console.WriteLine("Это число Армстронга");
}
}
}
Для его написания мне потребовалось 11 минут, включая функциональное тестирование.
Решение на StackOverflow
Второй тест – это погуглить текст программы, надеясь найти ее на StackOverflow или где-то еще. Нашел в интернете такое решение:
using System;
namespace ConsoleApp1
{
class Program
{
static uint[] SplitNumber(uint n)
{
var result = new uint[0];
int i = 0;
while (n > 0)
{
//увеличиваем размер массива
Array.Resize(ref result, i + 1);
//получаем последнюю цифру
result[i] = n % 10;
//отбрасываем последнюю цифру
n = n / 10;
i++;
}
//переворачиваем массив
Array.Reverse(result);
return result;
}
static uint Power(uint x, uint y)
{
return y == 0
? 1 //число в нулевой степени возвращает 1
: x * Power(x, y - 1);
}
static bool IsArmstrongNumber(uint number)
{
var digits = SplitNumber(number);
var sum = 0u;
var p = (uint)digits.Length; //степень
//в цикле считаем сумму
foreach (var digit in digits)
{
sum += Power(digit, p);
}
return sum == number;
}
static void Main(string[] args)
{
Console.Write("Начало диапазона: ");
var s = Convert.ToUInt32(Console.ReadLine());
Console.Write("Конец диапазона: ");
var e = Convert.ToUInt32(Console.ReadLine());
Console.WriteLine("Числа Армстронга из диапазона от {0} до {1}", s, e);
for (uint i = s; i <= e; i++)
{
if (IsArmstrongNumber(i))
{
Console.Write("{0} ", i);
}
}
Console.ReadLine();
}
}
}
Решение ChatGPT
Время, включая поиск, операцию «копировать/вставить» и тестирование заняло 5 минут. ChatGPT предложил такое решение:
using System;
class Program
{
static bool IsArmstrongNumber(int number)
{
int sum = 0;
int temp = number;
int numDigits = number.ToString().Length;
while (temp != 0)
{
int digit = temp % 10;
sum += (int)Math.Pow(digit, numDigits);
temp /= 10;
}
return (sum == number);
}
static void Main()
{
Console.Write("Введите натуральное число: ");
int number = int.Parse(Console.ReadLine());
if (IsArmstrongNumber(number))
{
Console.WriteLine($"{number} - число Армстронга");
}
else
{
Console.WriteLine($"{number} - не число Армстронга");
}
}
}
На этот раз создание программы заняло 5 минут, включая отсылку запроса, ожидание, копирование и вставку текста программы, тестирование.
Искусственный интеллект сопроводил ответ пояснением:
«В этой программе есть функция IsArmstrongNumber, которая принимает число в качестве аргумента и возвращает значение true, если число является числом Армстронга, и false в противном случае. Функция использует цикл while для получения каждой цифры числа и возведения каждой цифры в степень, равную количеству цифр, и затем суммирует эти значения.
В функции Main мы сначала получаем число от пользователя и затем вызываем функцию IsArmstrongNumber для проверки. Затем выводим соответствующее сообщение в зависимости от результата проверки.Надеюсь, это поможет вам реализовать программу для проверки чисел Армстронга! Если у вас возникнут какие-либо вопросы, то пишите их в комментариях».
Вывод
Использование ChatGPT действительно экономит время, но точно так же экономит время и простое гугление. Однако, задавать вопросы ChatGPT удобнее, чем гуглить, искусственный интеллект еще и объясняет свое решение.
Все комментарии
Чтобы оставить комментарий, необходимо войти или зарегистрироваться.
Пока нет комментариев. Будьте первым!