- Компиляторы
-
Обучение
Изучить Python Запускаемые примеры, NumPy, pandas и другое Изучить ИИНейросети, ML и LLM с нуля Изучить C и C++ Указатели, память, STL и современный C++ Изучить C#Основы C#, ООП, LINQ, async и упражнения .NET Изучить MatplotlibЛинейные, столбчатые, точечные и круговые диаграммы с визуализацией Алгоритмы на 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
Ввод:
samples = [
[1.0]
]
targets = [1.0]
weights = [0.0]
bias = 0.0
learning_rate = 1.0
epochs = 1
Ожидаемый вывод:
[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
Ввод:
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]
bias = 0.0
learning_rate = 2.0
epochs = 500
Ожидаемый вывод:
[6.346558, 6.339863, -9.592092]
Пояснение
Это логический элемент И (AND). После 500 эпох оба веса большие и положительные, а смещение сильно отрицательное, поэтому только вход [1, 1] даёт выход больше 0.5.
Ссылки
-
Пример 1 Не запущеноВвод:
samples = [ [1.0] ] targets = [1.0] weights = [0.0] bias = 0.0 learning_rate = 1.0 epochs = 1Ожидаемый вывод:[0.25, 0.25]Ваш вывод -
Пример 2 Не запущеноВвод:
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] bias = 0.0 learning_rate = 2.0 epochs = 500Ожидаемый вывод:[6.346558, 6.339863, -9.592092]Ваш вывод
При отправке также выполняются ещё 4 скрытых теста. Если код не пройдёт один из них, вы увидите этот тест. Решите задачу, чтобы увидеть все.
Онлайн-компилятор Java (Джава)
Пишите, компилируйте и запускайте код на Java прямо в браузере - на русском языке, без установки JDK и IDE. Несколько классов и файлов, сохранение проектов и совместная работа.
🚀 260,408 всего выполнений (5,854 в этом месяце)
Практикуйте Java на задачах
Решайте задачи прямо в редакторе: запускайте тесты, отправляйте решение и получайте AI-рецензию.
☕ Онлайн-компилятор Java
Онлайн-компилятор Java от CodeUtility позволяет писать и запускать программы на Джаве прямо в браузере - на русском языке, без установки JDK и IDE. Доступны версии Java 8, 11, 17, 21 и последняя.
Код компилирует настоящий javac и выполняет обычная среда Java на сервере, поэтому классы, методы
и ввод через Scanner ведут себя так же, как на вашем компьютере.
Удобно, чтобы практиковать ООП, решать учебные задачи, готовиться к собеседованиям или быстро проверить фрагмент кода с любого устройства.
Больше, чем просто запуск кода
В одном редакторе есть всё для работы: несколько файлов, изолированный терминал, библиотеки для выбранной версии, сохранение проектов, общий доступ по ссылке и совместная работа в реальном времени.
Как пользоваться редактором
Выберите версию языка, откройте или создайте файл, напишите код и нажмите «Запустить». Результат появится в терминале. После входа в аккаунт можно хранить файлы в рабочем пространстве, устанавливать библиотеки и работать над кодом вместе с другими.
- Выберите версию и отредактируйте текущий файл или откройте другой файл рабочего пространства.
- Запустите код, при необходимости введите данные в терминале и просмотрите сохранённую историю запусков.
- Используйте библиотеки, инструменты рабочего пространства, общий доступ и чат, когда для задачи требуется несколько фрагментов кода.
💡 Основы Java и примеры, которые можно попробовать выше
1. Объявление переменных и констант
В Java необходимо указывать тип каждой переменной. Используйте final для констант.
int age = 30;
double pi = 3.14159;
char grade = 'A';
String name = "Alice";
boolean isActive = true;
// Константы
final int MAX_USERS = 100;
final String COMPANY = "CodeUtility";
2. Условные операторы (if / switch)
Используйте if, else if и switch для управления потоком выполнения.
int x = 2;
if (x == 1) {
System.out.println("Один");
} else if (x == 2) {
System.out.println("Два");
} else {
System.out.println("Другое");
}
switch (x) {
case 1:
System.out.println("Один");
break;
case 2:
System.out.println("Два");
break;
default:
System.out.println("Другое");
}
3. Циклы
Используйте for, while и do-while для итераций.
for (int i = 0; i < 3; i++) {
System.out.println(i);
}
int n = 3;
while (n > 0) {
System.out.println(n);
n--;
}
4. Массивы
Массивы хранят последовательности фиксированного размера одного типа.
int[] numbers = {10, 20, 30};
System.out.println(numbers[1]);
5. Работа с ArrayList
Используйте ArrayList для списков динамического размера.
import java.util.ArrayList;
ArrayList<Integer> nums = new ArrayList<>();
nums.add(1);
nums.add(2);
nums.add(3);
nums.remove(Integer.valueOf(2));
for (int num : nums) {
System.out.print(num + " ");
}
6. Ввод/вывод в консоли
Используйте Scanner для ввода и System.out для вывода.
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
System.out.print("Введите ваше имя: ");
String name = scanner.nextLine();
System.out.println("Привет, " + name);
7. Функции
Определяйте методы с типами возвращаемых значений и параметрами.
public static int add(int a, int b) {
return a + b;
}
System.out.println(add(3, 4));
8. HashMap
Используйте HashMap для хранения пар ключ-значение.
import java.util.HashMap;
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
System.out.println(ages.get("Alice"));
9. Обработка исключений
Используйте try и catch для обработки исключений времени выполнения.
try {
throw new Exception("Что-то пошло не так");
} catch (Exception e) {
System.out.println(e.getMessage());
}
10. Файловый ввод/вывод
Используйте Files и Paths из java.nio.file для работы с файлами.
import java.nio.file.*;
import java.io.IOException;
Files.writeString(Paths.get("file.txt"), "Привет файл");
String content = Files.readString(Paths.get("file.txt"));
System.out.println(content);
11. Работа со строками
Строки в Java поддерживают множество методов, таких как length(), substring() и contains().
String text = "Hello World";
System.out.println(text.length());
System.out.println(text.substring(0, 5));
System.out.println(text.contains("World"));
12. Классы и объекты
Java поддерживает объектно-ориентированное программирование с использованием классов и экземпляров.
class Person {
String name;
Person(String name) {
this.name = name;
}
void greet() {
System.out.println("Привет, я " + name);
}
}
Person p = new Person("Alice");
p.greet();
❓ Частые вопросы
Как запустить код на Джаве онлайн?
Напишите или вставьте код в редактор и нажмите «Запустить». Программа скомпилируется настоящим javac и выполнится на сервере, а вывод появится в терминале.
Какие версии Java доступны?
Java 8, 11, 17, 21 и последняя версия. Нужную можно выбрать в списке над редактором.
Нужно ли устанавливать JDK?
Нет. Компилятор и среда выполнения работают на сервере, вам нужен только браузер.
Можно ли использовать несколько классов и файлов?
Да. В редакторе можно создавать несколько файлов .java и запускать их как один проект.
Работает ли ввод через Scanner?
Да. Программа запрашивает данные во время работы: вводите их в терминале.
Это бесплатно?
Да. Запуск кода бесплатен и не требует регистрации. Аккаунт нужен, чтобы сохранять проекты и делиться ими.
Нужен другой язык программирования? Все онлайн-компиляторы: Python, C++, C, C#, Java и ещё 8 языков