- Компиляторы
-
Обучение
Изучить Python Запускаемые примеры, NumPy, pandas и другое Изучить ИИНейросети, ML и LLM с нуля Изучить C и C++ Указатели, память, STL и современный C++ Изучить C#Основы C#, ООП, LINQ, async и упражнения .NET Изучить MatplotlibЛинейные, столбчатые, точечные и круговые диаграммы с визуализацией Алгоритмы на Python Поиск, сортировка, рекурсия и визуализация O(n) Алгоритмы на C и C++ Сравнение реализаций на C и C++ Программирование для детей Учись программировать, играя!
- ЗадачиНовое
- УчителямНовое
- Обновления
- Угостить кофе
Метод k ближайших соседей (KNN) классифицирует новую точку, глядя на k ближайших к ней обучающих точек и выбирая самую частую метку.
- Вычислите евклидово расстояние от
queryдо каждой точки. - Отсортируйте точки по расстоянию; если расстояния равны, раньше идёт точка с меньшим индексом.
- Возьмите первые k точек и посчитайте их метки.
- Верните метку с наибольшим числом голосов. При ничьей верните ту метку, чья ближайшая точка идёт раньше в отсортированном порядке.
Реализуйте knn_predict(points, labels, query, k).
Входные данные
points: обучающие точки, каждая — список координат.
labels: метка каждой точки.
query: точка, которую нужно классифицировать.
k: сколько соседей голосуют.
Выходные данные
Верните предсказанную метку.
Ограничения
1 ≤ k ≤ число точек ≤ 1000
1 ≤ размерность ≤ 20
-1000 ≤ каждая координата ≤ 1000
Примеры
Пример 1
Ввод:
points = [
[1.0, 1.0],
[2.0, 2.0],
[8.0, 8.0],
[9.0, 9.0]
]
labels = ["A", "A", "B", "B"]
query = [3.0, 3.0]
k = 3
Ожидаемый вывод:
"A"
Пояснение
Расстояния от (3, 3): (2, 2) ≈ 1.41, (1, 1) ≈ 2.83, (8, 8) ≈ 7.07. Три ближайшие метки — A, A и B, поэтому ответ A.
Пример 2
Ввод:
points = [
[0.0, 0.0],
[4.0, 0.0],
[0.0, 4.0],
[4.0, 4.0]
]
labels = ["red", "blue", "blue", "red"]
query = [1.0, 1.0]
k = 2
Ожидаемый вывод:
"red"
Пояснение
Ближайшая точка — (0, 0) (red); следующие две, (4, 0) и (0, 4), находятся на одинаковом расстоянии, поэтому побеждает меньший индекс — (4, 0) (blue). У red и blue по одному голосу, и точка red шла первой, поэтому ответ red.
Ссылки
-
Пример 1 Не запущеноВвод:
points = [ [1.0, 1.0], [2.0, 2.0], [8.0, 8.0], [9.0, 9.0] ] labels = ["A", "A", "B", "B"] query = [3.0, 3.0] k = 3Ожидаемый вывод:"A"Ваш вывод -
Пример 2 Не запущеноВвод:
points = [ [0.0, 0.0], [4.0, 0.0], [0.0, 4.0], [4.0, 4.0] ] labels = ["red", "blue", "blue", "red"] query = [1.0, 1.0] k = 2Ожидаемый вывод:"red"Ваш вывод
При отправке также выполняются ещё 5 скрытых теста. Если код не пройдёт один из них, вы увидите этот тест. Решите задачу, чтобы увидеть все.
Онлайн-компилятор 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 языков