- Exécuteurs
-
Apprendre
Espace d’apprentissage Python Exemples exécutables, NumPy, pandas et plus Espace d’apprentissage C et C++ Pointeurs, mémoire, STL et C++ moderne Espace d’apprentissage C#Bases, POO, LINQ, async et exercices .NET Algorithmes Python Recherche, tri, récursivité et visualisations O(n) Algorithmes C et C++ Comparer les implémentations en C et C++
- Défis
K-means trouve des groupes dans des données non étiquetées. En partant des centroïdes donnés, répétez iterations fois :
- Assignation : placez chaque point dans le cluster de son centroïde le plus proche (distance euclidienne). Si deux centroïdes sont à égale distance, choisissez celui d'indice le plus petit.
- Mise à jour : déplacez chaque centroïde vers la moyenne des points qui lui sont assignés. Un centroïde sans point reste où il est.
Implémentez k_means(points, centroids, iterations).
Entrée
points : les points de données, chacun étant une liste de coordonnées.
centroids : les k centroïdes de départ, avec le même nombre de coordonnées.
iterations : le nombre de tours d'assignation et de mise à jour à effectuer.
Sortie
Renvoyez les centroïdes finaux dans leur ordre d'origine.
Contraintes
1 ≤ nombre de points ≤ 1 000, 1 ≤ k ≤ 20, 1 ≤ dimensions ≤ 10
0 ≤ iterations ≤ 100
-1 000 ≤ chaque coordonnée ≤ 1 000
Exemples
Exemple 1
Entrée :
points = [
[1.0, 1.0],
[1.5, 2.0],
[8.0, 8.0],
[9.0, 8.5]
]
centroids = [
[0.0, 0.0],
[10.0, 10.0]
]
iterations = 1
Sortie attendue :
[
[1.25, 1.5],
[8.5, 8.25]
]
Explication
Les deux premiers points sont plus proches de (0, 0) et les deux derniers de (10, 10). Les nouveaux centroïdes sont les moyennes : ((1 + 1.5) / 2, (1 + 2) / 2) = (1.25, 1.5) et ((8 + 9) / 2, (8 + 8.5) / 2) = (8.5, 8.25).
Exemple 2
Entrée :
points = [
[0.0],
[1.0],
[10.0]
]
centroids = [
[0.0],
[100.0]
]
iterations = 2
Sortie attendue :
[
[3.666667],
[100.0]
]
Explication
Tour 1 : (100) est loin de tous les points, donc les trois points rejoignent le centroïde 1, qui se déplace en (0 + 1 + 10) / 3 ≈ 3.666667 ; le centroïde 2 ne reçoit aucun point et reste à 100. Le tour 2 assigne de la même façon, donc le résultat est [[3.666667], [100]].
Références
-
Exemple 1 Non exécutéEntrée :
points = [ [1.0, 1.0], [1.5, 2.0], [8.0, 8.0], [9.0, 8.5] ] centroids = [ [0.0, 0.0], [10.0, 10.0] ] iterations = 1Sortie attendue :[ [1.25, 1.5], [8.5, 8.25] ]Votre sortie -
Exemple 2 Non exécutéEntrée :
points = [ [0.0], [1.0], [10.0] ] centroids = [ [0.0], [100.0] ] iterations = 2Sortie attendue :[ [3.666667], [100.0] ]Votre sortie
4 tests cachés seront aussi exécutés lors de la soumission.
Compilateur et débogueur C# en ligne
Écrivez, compilez, exécutez et déboguez C# en ligne. Utilisez les points d’arrêt, l’exécution pas à pas et l’inspection d’objets dans un IDE multifichier, sans Visual Studio.
🚀 350,747 exécutions totales (1 ce mois-ci)
Pratiquez C# avec des défis de code
Résolvez des problèmes concrets dans cet éditeur : lancez les tests, soumettez et recevez une relecture IA.
🔷 À propos de cet exécuteur C# / .NET en ligne
Le CodeUtility C# Executor vous permet d’écrire et d’exécuter du vrai code C# directement dans votre navigateur - sans installation, sans configuration de Visual Studio, ni SDK .NET requis. Il est alimenté par un bac à sable sécurisé qui prend en charge le runtime .NET et les versions modernes du langage C#, dont C# 9 et ultérieures.
Cet outil utilise dotnet-script sous le capot pour compiler et exécuter votre code avec un comportement .NET réel, ce qui vous permet d’expérimenter aussi bien des fonctionnalités C# de base qu’avancées comme LINQ, async/await, la correspondance de motifs (pattern matching) et les génériques.
Vous pouvez tester de simples scripts, fonctions et flux logiques, ou explorer des concepts comme les classes, les structures, l’héritage et les interfaces - le tout dans un environnement de code épuré, sans distraction.
Que vous appreniez C#, testiez des algorithmes ou expérimentiez des fonctionnalités .NET, le CodeUtility C# Executor vous offre un moyen rapide, sûr et fiable d’exécuter du code C# instantanément depuis n’importe quel navigateur.
Bien plus qu’un exécuteur de code
Utilisez depuis le même exécuteur un éditeur multifichier, un terminal d’exécution isolé, des bibliothèques propres à chaque environnement, des espaces de travail persistants, le partage et la collaboration en temps réel.
Comment utiliser cet exécuteur ?
Choisissez un environnement d’exécution, ouvrez ou créez un fichier, écrivez votre code, puis sélectionnez Exécuter. La sortie s’affiche dans le terminal ; les utilisateurs connectés peuvent conserver leurs fichiers dans un espace de travail, installer des bibliothèques et collaborer grâce aux partages.
- Sélectionnez une version et modifiez le fichier actuel, ou ouvrez un autre fichier de l’espace de travail.
- Exécutez le code, saisissez les données demandées dans le terminal et consultez l’historique des exécutions enregistrées.
- Utilisez les bibliothèques, les outils de l’espace de travail, le partage et le chat lorsque votre tâche nécessite plusieurs extraits de code.
💡 Bases de C# et exemples à essayer ci-dessus
1. Déclarer des variables et des constantes
C# utilise des déclarations de variables fortement typées. Utilisez const pour les constantes connues à la compilation et readonly pour les constantes au moment de l’exécution.
int age = 30;
double pi = 3.14159;
char grade = 'A';
string name = "Alice";
bool isActive = true;
// Constantes
const int MaxUsers = 100;
const string Company = "CodeUtility";
2. Conditionnelles (if / switch)
Utilisez if, else if et switch pour le contrôle de flux.
int x = 2;
if (x == 1)
{
Console.WriteLine("Un");
}
else if (x == 2)
{
Console.WriteLine("Deux");
}
else
{
Console.WriteLine("Autre");
}
switch (x)
{
case 1:
Console.WriteLine("Un");
break;
case 2:
Console.WriteLine("Deux");
break;
default:
Console.WriteLine("Autre");
break;
}
3. Boucles
C# prend en charge les boucles for, while et foreach.
for (int i = 0; i < 3; i++)
{
Console.WriteLine(i);
}
int n = 3;
while (n > 0)
{
Console.WriteLine(n);
n--;
}
4. Tableaux
Les tableaux stockent des collections de taille fixe d’éléments du même type.
int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers[1]);
5. Manipulation de listes
Utilisez List<T> pour des collections dynamiques.
List<int> nums = new List<int> { 1, 2, 3 };
nums.Add(4);
nums.Remove(2);
foreach (int n in nums)
{
Console.Write(n + " ");
}
6. Entrée/Sortie console
Utilisez Console.WriteLine et Console.ReadLine pour des entrées/sorties de base.
Console.Write("Entrez votre nom : ");
string name = Console.ReadLine();
Console.WriteLine($"Bonjour, {name} !");
7. Fonctions
Définissez des méthodes avec un type de retour, un nom et des paramètres.
int Add(int a, int b)
{
return a + b;
}
Console.WriteLine(Add(3, 4));
8. Dictionnaires
Dictionary<TKey, TValue> stocke des paires clé-valeur.
Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
Console.WriteLine(ages["Alice"]);
9. Gestion des exceptions
Gérez les erreurs d’exécution avec try, catch et finally.
try
{
throw new Exception("Quelque chose s'est mal passé");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
10. E/S de fichiers
Utilisez File et StreamReader/StreamWriter pour les opérations sur fichiers.
File.WriteAllText("file.txt", "Bonjour fichier");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);
11. Manipulation de chaînes
Les chaînes C# prennent en charge des méthodes comme Length, Substring, Contains.
string message = "Bonjour le monde";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("monde"));
12. Classes et objets
C# prend en charge la programmation orientée objet via des classes et des objets.
class Person
{
public string Name;
public Person(string name) => Name = name;
public void Greet() => Console.WriteLine($"Salut, je suis {Name}");
}
Person p = new Person("Alice");
p.Greet();