- Exécuteurs
-
Apprendre
Apprendre Python Exemples exécutables, NumPy, pandas et plus Apprendre l'IARéseaux de neurones, ML et LLM de zéro Apprendre le C et le C++ Pointeurs, mémoire, STL et C++ moderne Apprendre le C#Bases, POO, LINQ, async et exercices .NET Apprendre MatplotlibCourbes, barres, nuages de points et camemberts avec visualiseurs Algorithmes Python Recherche, tri, récursivité et visualisations O(n) Algorithmes C et C++ Comparer les implémentations en C et C++ Programmation pour enfants Apprends à coder en jouant !
- DéfisNouveau
- EnseignantsNouveau
- Mises à Jour
- Offrez-moi un café
L'attention permet à chaque position d'une séquence de regarder toutes les autres et de mélanger leurs informations. C'est le cœur de l'architecture Transformer utilisée par les grands modèles de langage :
Attention(Q, K, V) = softmax(Q × Kᵀ / √d) × V
Pour chaque ligne de requête q :
- Calculez le score de chaque ligne de clé k : score = (q · k) / √d, où d est le nombre de colonnes de K.
- Transformez les scores en poids avec softmax (soustrayez le plus grand score avant de calculer e^x).
- La ligne de sortie est la somme pondérée des lignes de valeurs : Σ weight_j × values[j].
Implémentez attention(queries, keys, values).
Entrée
queries : n lignes de d nombres chacune.
keys : m lignes de d nombres chacune.
values : m lignes (une par clé) de v nombres chacune.
Sortie
Renvoyez la matrice de sortie n × v.
Contraintes
1 ≤ n, m ≤ 50, 1 ≤ d, v ≤ 32
-10 ≤ chaque valeur ≤ 10
Exemples
Exemple 1
Entrée :
queries = [
[1.0, 0.0]
]
keys = [
[1.0, 0.0],
[1.0, 0.0]
]
values = [
[2.0, 4.0],
[6.0, 8.0]
]
Sortie attendue :
[
[4.0, 6.0]
]
Explication
Les deux clés donnent le même score, donc les poids softmax valent 0.5 et 0.5. La sortie est la moyenne des lignes de valeurs : [(2 + 6) / 2, (4 + 8) / 2] = [4, 6].
Exemple 2
Entrée :
queries = [
[0.0, 0.0]
]
keys = [
[3.0, 1.0],
[-2.0, 5.0],
[7.0, 7.0]
]
values = [
[1.0],
[2.0],
[6.0]
]
Sortie attendue :
[
[3.0]
]
Explication
Une requête nulle obtient un score de 0 avec chaque clé, donc l'attention est répartie également : (1 + 2 + 6) / 3 = 3.
Références
-
Exemple 1 Non exécutéEntrée :
queries = [ [1.0, 0.0] ] keys = [ [1.0, 0.0], [1.0, 0.0] ] values = [ [2.0, 4.0], [6.0, 8.0] ]Sortie attendue :[ [4.0, 6.0] ]Votre sortie -
Exemple 2 Non exécutéEntrée :
queries = [ [0.0, 0.0] ] keys = [ [3.0, 1.0], [-2.0, 5.0], [7.0, 7.0] ] values = [ [1.0], [2.0], [6.0] ]Sortie attendue :[ [3.0] ]Votre sortie
4 tests cachés seront aussi exécutés lors de la soumission. Si votre code en échoue un, vous verrez ce test. Résolvez le défi pour tous les voir.
Online JavaScript Runner
Write, run, and debug JavaScript or Node.js online in a full-featured browser IDE. Work with multiple files and packages, save your workspace, and collaborate in real time.
🚀 339,661 exécutions totales (665 ce mois-ci)
Pratiquez JavaScript 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 JavaScript (Node.js) en ligne
Le CodeUtility JavaScript Executor vous permet d’écrire et d’exécuter du code JavaScript moderne directement dans votre navigateur - instantanément et sans aucune configuration. Il utilise de vrais environnements Node.js pour exécuter votre code en toute sécurité dans un conteneur sandboxé, en prenant en charge les versions 16, 18 et 20.
Cet outil est parfait pour tester des extraits Node.js, explorer la syntaxe ES6+ ou apprendre les concepts fondamentaux de la programmation JavaScript tels que les boucles, les fonctions, les tableaux, les promesses et le comportement d’async/await.
Vous pouvez aussi l’utiliser pour valider des algorithmes, déboguer de petits scripts ou expérimenter la logique d’exécution sans installer Node en local. Idéal pour les apprenants, les développeurs backend ou toute personne ayant besoin d’un moyen rapide, dans le navigateur, pour exécuter du code JavaScript.
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.
💡 Guide des bases de Node.js pour débutants
1. Déclarer des variables et des constantes
Utilisez let ou const pour des variables à portée de bloc. const est utilisé pour les constantes.
let x = 10;
const PI = 3.14;
let name = "Alice";
let isActive = true;
2. Conditions (if / switch)
Utilisez if, else if, else ou switch pour le contrôle du flux.
let x = 2;
if (x === 1) {
console.log("Un");
} else if (x === 2) {
console.log("Deux");
} else {
console.log("Autre");
}
switch (x) {
case 1:
console.log("Un");
break;
case 2:
console.log("Deux");
break;
default:
console.log("Autre");
}
3. Boucles
Utilisez for, while et forEach pour itérer sur des données.
for (let i = 0; i < 3; i++) {
console.log(i);
}
let n = 3;
while (n > 0) {
console.log(n);
n--;
}
4. Tableaux
Utilisez des tableaux pour stocker des listes ordonnées de valeurs. Accédez-y avec des index.
let fruits = ["pomme", "banane", "cerise"];
console.log(fruits[0]);
console.log(fruits.length);
5. Manipulation de tableaux
Utilisez des méthodes comme push, pop, slice et reverse.
fruits.push("kiwi");
fruits.pop();
console.log(fruits.slice(0, 2));
console.log(fruits.reverse());
let squares = [1, 2, 3, 4, 5].map(x => x * x);
console.log(squares);
6. Entrée/Sortie console
Utilisez console.log pour la sortie et le module readline pour l’entrée.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question("Comment vous appelez-vous ? ", name => {
console.log(`Bonjour, ${name}`);
rl.close();
});
7. Fonctions
Les fonctions peuvent être déclarées ou exprimées. Les fonctions fléchées sont souvent utilisées en JavaScript moderne.
function greet(name) {
return `Bonjour, ${name}`;
}
const add = (a, b) => a + b;
console.log(greet("Alice"));
console.log(add(2, 3));
8. Objets (Map)
Les objets stockent des paires clé-valeur. Ils sont similaires aux dictionnaires ou aux maps.
let person = { name: "Bob", age: 25 };
console.log(person.name);
console.log(person["age"]);
// Map ES6
const map = new Map();
map.set("a", 1);
console.log(map.get("a"));
9. Gestion des exceptions
Utilisez try, catch et finally pour gérer les erreurs en toute sécurité.
try {
throw new Error("Quelque chose s'est mal passé");
} catch (e) {
console.log(e.message);
} finally {
console.log("Nettoyage si nécessaire");
}
10. Entrée/Sortie de fichiers
Utilisez le module fs de Node.js pour lire et écrire des fichiers.
const fs = require("fs");
fs.writeFileSync("test.txt", "Bonjour fichier");
const data = fs.readFileSync("test.txt", "utf8");
console.log(data);
11. Manipulation de chaînes
Utilisez des méthodes comme trim(), toUpperCase(), replace() et split().
let text = " Bonjour le monde ";
console.log(text.trim());
console.log(text.toUpperCase());
console.log(text.replace("Bonjour", "Salut"));
console.log(text.split(" "));
12. Classes et objets
ES6+ prend en charge la POO avec la syntaxe class.
class Person {
constructor(name) {
this.name = name;
}
greet() {
return `Salut, je suis ${this.name}`;
}
}
const p = new Person("Alice");
console.log(p.greet());
13. Références
Les objets et les tableaux en JavaScript sont passés par référence.
function update(arr) {
arr.push("modifié");
}
let data = ["original"];
update(data);
console.log(data); // ["original", "modifié"]