- Исполнители
-
Обучение
Учебный центр Python Запускаемые примеры, NumPy, pandas и другое Учебный центр C и C++ Указатели, память, STL и современный C++ Учебный центр C#Основы C#, ООП, LINQ, async и упражнения .NET Алгоритмы на Python Поиск, сортировка, рекурсия и визуализация O(n) Алгоритмы на C и C++ Сравнение реализаций на C и C++
- Задачи
Функция softmax превращает список оценок (логитов) в вероятности. Языковые модели используют её, чтобы выбрать следующее слово:
softmax(x)_i = e^(x_i) / (e^(x_1) + e^(x_2) + … + e^(x_n))
При больших оценках e^x переполняется, поэтому сначала вычтите из каждой оценки наибольшую. Математически результат тот же.
Реализуйте softmax(logits).
Входные данные
logits: список оценок.
Выходные данные
Верните список вероятностей в том же порядке. Все они лежат между 0 и 1 и в сумме дают 1.
Ограничения
1 ≤ длина ≤ 1000
-1000 ≤ каждая оценка ≤ 1000
Примеры
Пример 1
Ввод:
logits = [1.0, 2.0, 3.0]
Ожидаемый вывод:
[0.090031, 0.244728, 0.665241]
Пояснение
e¹ ≈ 2.718, e² ≈ 7.389 и e³ ≈ 20.086 в сумме дают 30.193, поэтому вероятности примерно равны [0.090031, 0.244728, 0.665241].
Пример 2
Ввод:
logits = [1000.0, 1000.0]
Ожидаемый вывод:
[0.5, 0.5]
Пояснение
Прямое вычисление e^1000 приводит к переполнению. После вычитания максимума получается [0, 0], и e⁰ / (e⁰ + e⁰) = 0.5 для обоих.
Ссылки
-
Пример 1 Не запущеноВвод:
logits = [1.0, 2.0, 3.0]Ожидаемый вывод:[0.090031, 0.244728, 0.665241]Ваш вывод -
Пример 2 Не запущеноВвод:
logits = [1000.0, 1000.0]Ожидаемый вывод:[0.5, 0.5]Ваш вывод
При отправке также выполняются ещё 4 скрытых теста.
Онлайн-компилятор и отладчик Python
Пишите, запускайте и отлаживайте Python онлайн. Используйте точки останова и пошаговое выполнение в серверном режиме — без установки.
🚀 4,279,688 всего выполнений (88 в этом месяце)
Практикуйте Python на задачах
Решайте задачи прямо в редакторе: запускайте тесты, отправляйте решение и получайте AI-рецензию.
🐍 Об онлайн-компиляторе Python
Онлайн-компилятор и интерпретатор Python от CodeUtility позволяет писать, запускать и тестировать код прямо в браузере — без установки и настройки. Он работает в безопасной песочнице и поддерживает реальные версии Python от 3.10 до 3.13.
Подходит для первого знакомства с Python, быстрой проверки сниппетов или отладки логики - инструмент предоставляет быстрый и не отвлекающий редактор кода. Экспериментируйте свободно и мгновенно смотрите результат в встроенной консоли.
Идеально для новичков, студентов и разработчиков, которым нужна облегчённая онлайн‑IDE для практики или быстрого прототипирования.
Больше, чем средство запуска кода
Используйте в одном исполнителе многофайловый редактор, изолированный терминал выполнения, библиотеки для выбранной среды, постоянные рабочие пространства, общий доступ и совместную работу в реальном времени.
Как пользоваться этим исполнителем?
Выберите среду выполнения, откройте или создайте файл, напишите код и нажмите «Запустить». Результат появится в терминале. Пользователи, вошедшие в систему, могут хранить файлы в рабочем пространстве, устанавливать библиотеки и совместно работать через общие ресурсы.
- Выберите версию и отредактируйте текущий файл или откройте другой файл рабочего пространства.
- Запустите код, при необходимости введите данные в терминале и просмотрите сохранённую историю запусков.
- Используйте библиотеки, инструменты рабочего пространства, общий доступ и чат, когда для задачи требуется несколько фрагментов кода.
💡 Основы Python и примеры, которые можно попробовать выше
1. Объявление переменных и констант
Python - язык с динамической типизацией, поэтому типы заранее объявлять не нужно. Встроенного ключевого слова для констант нет, но по соглашению константы пишут ПРОПИСНЫМИ буквами.
# Переменные
x = 10
pi = 3.14
name = "Алиса"
is_active = True
# Константы (по соглашению)
MAX_USERS = 100
APP_NAME = "CodeUtility"
# Константы всё ещё можно переопределить (не запрещено)
MAX_USERS = 200 # ⚠️ Технически допустимо, но не рекомендуется
2. Условные конструкции
Управляйте логикой с помощью блоков if, elif и else. В Python 3.10+ можно также использовать match-case как альтернативу switch-case.
# Обычный if-elif-else
x = 2
if x == 1:
print("Один")
elif x == 2:
print("Два")
else:
print("Другое")
Альтернатива: match-case (Python 3.10+)
# Требуется Python 3.10+
x = 2
match x:
case 1:
print("Один")
case 2:
print("Два")
case _:
print("Другое")
3. Циклы
for используется для перебора последовательностей, while выполняется, пока условие истинно.
for i in range(3):
print(i)
count = 3
while count > 0:
print(count)
count -= 1
4. Списки
Списки - упорядоченные изменяемые коллекции. Доступ к элементам осуществляется по индексу.
fruits = ["apple", "banana"]
print(fruits[0])
print(len(fruits))
5. Операции со списками
Добавляйте, удаляйте, берите срезы и переворачивайте списки. Генераторы списков позволяют компактно итерироваться.
fruits.append("cherry")
fruits.insert(1, "kiwi")
fruits.remove("banana")
fruits.pop()
print(fruits[1:3])
print(fruits[::-1])
squares = [x*x for x in range(5)]
6. Ввод/вывод в консоли
Используйте input() для чтения ввода и print() для вывода.
Можно напечатать несколько строк с помощью \n (символ новой строки) или вызвать print() несколько раз.
# Чтение ввода
name = input("Введите ваше имя: ")
print("Привет", name)
# Печать нескольких строк
print("Строка 1\nСтрока 2\nСтрока 3")
# Или используйте несколько вызовов print
print("Строка A")
print("Строка B")
print("Строка C")
7. Функции
Функции помогают организовывать код и переиспользовать его. Используйте параметры и возвращаемые значения.
def greet(name):
return "Привет " + name
print(greet("Алиса"))
8. Словари
Хранят пары ключ‑значение. Ключи уникальны, значения доступны по ключам.
person = {"name": "Боб", "age": 25}
print(person["name"])
print(person.get("email", "Не указано"))
9. Обработка исключений
Используйте try и except, чтобы корректно перехватывать и обрабатывать ошибки.
try:
x = 1 / 0
except ZeroDivisionError:
print("Нельзя делить на ноль")
10. Файловый ввод/вывод
Читайте и записывайте файлы с помощью open().
with open("data.txt", "w") as f:
f.write("Привет, мир")
with open("data.txt", "r") as f:
print(f.read())
11. Работа со строками
У строк Python есть мощные методы: strip(), replace() и split().
text = " Привет, мир "
print(text.strip())
print(text.upper())
print(text.replace("Привет", "Здравствуй"))
print(text.split())
12. Классы и объекты
Определяйте переиспользуемые шаблоны с помощью классов. Используйте __init__ для инициализации объектов.
class Person:
def __init__(self, name):
self.name = name
def greet(self):
return "Привет, я " + self.name
p = Person("Алиса")
print(p.greet())
🐞 Как отлаживать Python-код онлайн
Онлайн-отладчик Python помогает находить логические ошибки без установки Python или IDE. Отладка выполняется в серверном режиме на Python 3.10–3.13.
- Выберите серверную версию Python в меню среды выполнения.
- Нажмите рядом с номером строки, чтобы установить одну или несколько точек останова.
- Выберите Debug, чтобы запустить программу и остановиться в первой подходящей точке.
- Проверьте текущую строку и переменные, затем используйте Continue, Step Over, Step Into или Step Out.
- Выберите Stop, чтобы завершить сеанс отладки.
Начните с небольшого воспроизводимого примера и поставьте точку останова перед местом, где значение становится неожиданным. Серверный режим также поддерживает файлы workspace и установленные библиотеки.