- Исполнители
-
Обучение
Учебный центр Python Запускаемые примеры, NumPy, pandas и другое Учебный центр C и C++ Указатели, память, STL и современный C++ Учебный центр C#Основы C#, ООП, LINQ, async и упражнения .NET Алгоритмы на Python Поиск, сортировка, рекурсия и визуализация O(n) Алгоритмы на C и C++ Сравнение реализаций на C и C++
- Задачи
Градиентный спуск понемногу улучшает веса, двигаясь против градиента:
w ← w - learning_rate × dL/dw
Обучите сигмоидный нейрон стохастическим градиентным спуском. В каждой эпохе проходите по примерам в заданном порядке и для каждого примера:
- z = sample · weights + bias, y = 1 / (1 + e^(-z))
- delta = 2 × (y - target) × y × (1 - y)
- weights[i] ← weights[i] - learning_rate × delta × sample[i] (для каждого i), затем bias ← bias - learning_rate × delta
Реализуйте train_neuron(samples, targets, weights, bias, learning_rate, epochs).
Входные данные
samples: m обучающих примеров, в каждом n значений.
targets: m правильных выходов (от 0 до 1).
weights, bias: начальные веса (n значений) и смещение.
learning_rate, epochs: размер шага и число проходов по данным.
Выходные данные
Верните обученные веса, а за ними обученное смещение (n + 1 чисел).
Ограничения
1 ≤ m ≤ 50, 1 ≤ n ≤ 10, 1 ≤ epochs ≤ 1000
0 < learning_rate ≤ 5
-5 ≤ каждое значение ≤ 5
Примеры
Пример 1
Ввод:
bias = 0.0
epochs = 1
samples = [
[1.0]
]
targets = [1.0]
weights = [0.0]
learning_rate = 1.0
Ожидаемый вывод:
[0.25, 0.25]
Пояснение
y = σ(0) = 0.5, delta = 2 × (0.5 - 1) × 0.25 = -0.25. Вес: 0 - 1 × (-0.25) × 1 = 0.25. Смещение: 0 - 1 × (-0.25) = 0.25. Результат: [0.25, 0.25].
Пример 2
Ввод:
bias = 0.0
epochs = 500
samples = [
[0.0, 0.0],
[0.0, 1.0],
[1.0, 0.0],
[1.0, 1.0]
]
targets = [0.0, 0.0, 0.0, 1.0]
weights = [0.0, 0.0]
learning_rate = 2.0
Ожидаемый вывод:
[6.346558, 6.339863, -9.592092]
Пояснение
Это логический элемент И (AND). После 500 эпох оба веса большие и положительные, а смещение сильно отрицательное, поэтому только вход [1, 1] даёт выход больше 0.5.
Ссылки
-
Пример 1 Не запущеноВвод:
bias = 0.0 epochs = 1 samples = [ [1.0] ] targets = [1.0] weights = [0.0] learning_rate = 1.0Ожидаемый вывод:[0.25, 0.25]Ваш вывод -
Пример 2 Не запущеноВвод:
bias = 0.0 epochs = 500 samples = [ [0.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 1.0] ] targets = [0.0, 0.0, 0.0, 1.0] weights = [0.0, 0.0] learning_rate = 2.0Ожидаемый вывод:[6.346558, 6.339863, -9.592092]Ваш вывод
При отправке также выполняются ещё 4 скрытых теста.
Онлайн-компилятор и отладчик Python
Пишите, запускайте и отлаживайте Python онлайн. Используйте точки останова и пошаговое выполнение в серверном режиме — без установки.
🚀 4,279,640 всего выполнений (40 в этом месяце)
Практикуйте 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 и установленные библиотеки.