- Esecutori
-
Impara
Centro di apprendimento Python Esempi eseguibili, NumPy, pandas e altro Centro di apprendimento C e C++ Puntatori, memoria, STL e C++ moderno Centro di apprendimento C#Fondamenti, OOP, LINQ, async ed esercizi .NET Algoritmi Python Ricerca, ordinamento, ricorsione e visualizzazioni O(n) Algoritmi C e C++ Confronta le implementazioni in C e C++
- Sfide
Naive Bayes assume che le variabili siano indipendenti data la classe e sceglie la classe con il punteggio più alto:
score(c) = P(c) × P(x₁ | c) × P(x₂ | c) × … × P(xₙ | c)
Le variabili sono categorie codificate come interi. Stima le probabilità dai dati di addestramento:
- P(c) = (numero di esempi della classe c) / (numero di esempi)
- P(xⱼ = v | c) = (numero di esempi della classe c con variabile j uguale a v + 1) / (numero di esempi della classe c + Kⱼ)
dove Kⱼ è il numero di valori distinti della variabile j tra gli esempi di addestramento e la query. Il +1 (smoothing di Laplace) evita che un valore mai visto azzeri un punteggio.
Restituisci la classe con il punteggio più alto; in caso di parità, la classe minore. Moltiplicare tante piccole probabilità può causare underflow, quindi somma i logaritmi invece.
Implementa naive_bayes_predict(features, labels, query).
Input
features: Una riga di n variabili categoriali per esempio di addestramento.
labels: La classe di ogni esempio di addestramento.
query: Le n variabili dell'esempio da classificare.
Output
Restituisci la classe prevista.
Vincoli
1 ≤ esempi ≤ 1.000, 1 ≤ n ≤ 20
0 ≤ ogni valore delle variabili ed etichetta ≤ 100
Esempi
Esempio 1
Input:
query = [0, 1]
labels = [1, 1, 0, 0, 1]
features = [
[0, 1],
[0, 0],
[1, 1],
[1, 0],
[0, 1]
]
Output atteso:
1
Spiegazione
La classe 1 ha 3 esempi e la classe 0 ne ha 2. La variabile 1 ha valori {0, 1} (K = 2), la variabile 2 {0, 1} (K = 2). score(1) = 3/5 × (3+1)/(3+2) × (2+1)/(3+2) = 0.6 × 0.8 × 0.6 = 0.288. score(0) = 2/5 × (0+1)/(2+2) × (1+1)/(2+2) = 0.4 × 0.25 × 0.5 = 0.05. Vince la classe 1.
Esempio 2
Input:
query = [2]
labels = [0, 0, 1]
features = [
[0],
[0],
[1]
]
Output atteso:
0
Spiegazione
Il valore 2 non compare mai, quindi K = 3 (valori 0, 1 e 2). score(0) = 2/3 × (0+1)/(2+3) ≈ 0.133 e score(1) = 1/3 × (0+1)/(1+3) ≈ 0.083. Grazie allo smoothing nessuno è 0, e vince la classe 0, più comune.
Riferimenti
-
Esempio 1 Non eseguitoInput:
query = [0, 1] labels = [1, 1, 0, 0, 1] features = [ [0, 1], [0, 0], [1, 1], [1, 0], [0, 1] ]Output atteso:1Il tuo output -
Esempio 2 Non eseguitoInput:
query = [2] labels = [0, 0, 1] features = [ [0], [0], [1] ]Output atteso:0Il tuo output
4 test nascosti vengono eseguiti anche al momento dell'invio.
Compilatore e debugger C# online
Scrivi, compila, esegui e fai il debug di C# online. Usa breakpoint, esecuzione passo passo e ispezione degli oggetti in un IDE multifile, senza Visual Studio.
🚀 350,747 esecuzioni totali (1 questo mese)
Esercitati in C# con le sfide di codice
Risolvi problemi pratici direttamente in questo editor: esegui i test di esempio, invia la soluzione e ricevi una revisione AI del codice.
🔷 Informazioni su questo esecutore online C# / .NET
Il CodeUtility C# Executor ti consente di scrivere ed eseguire vero codice C# direttamente nel tuo browser - senza installazioni, configurazioni di Visual Studio o .NET SDK. È alimentato da una sandbox sicura che supporta il runtime .NET e le versioni moderne del linguaggio C#, incluse C# 9 e successive.
Questo strumento utilizza dotnet-script dietro le quinte per compilare ed eseguire il tuo codice con un comportamento .NET reale, permettendoti di sperimentare sia le funzionalità base sia quelle avanzate di C# come LINQ, async/await, pattern matching e generics.
Puoi testare script semplici, funzioni e flussi logici, oppure esplorare concetti come classi, struct, ereditarietà e interfacce - il tutto in un ambiente di coding pulito e senza distrazioni.
Che tu stia imparando C#, testando algoritmi o sperimentando funzionalità .NET, il CodeUtility C# Executor ti offre un modo rapido, sicuro e affidabile per eseguire codice C# all’istante da qualsiasi browser.
Più di un semplice esecutore di codice
Usa nello stesso esecutore un editor multifile, un terminale di esecuzione isolato, librerie specifiche per il runtime, spazi di lavoro persistenti, condivisione e collaborazione in tempo reale.
Come si usa questo esecutore?
Scegli un runtime, apri o crea un file, scrivi il codice e seleziona Esegui. L’output appare nel terminale; gli utenti che hanno effettuato l’accesso possono conservare i file in uno spazio di lavoro, installare librerie e collaborare tramite le condivisioni.
- Seleziona una versione e modifica il file corrente oppure apri un altro file dello spazio di lavoro.
- Esegui il codice, inserisci i dati nel terminale quando richiesto e consulta la cronologia delle esecuzioni salvate.
- Usa librerie, strumenti dello spazio di lavoro, condivisione e chat quando l’attività richiede più di un frammento di codice.
💡 Nozioni di base C# ed esempi che puoi provare qui sopra
1. Dichiarazione di variabili e costanti
C# utilizza dichiarazioni di variabili a tipizzazione forte. Usa const per le costanti a tempo di compilazione e readonly per quelle a tempo di esecuzione.
int age = 30;
double pi = 3.14159;
char grade = 'A';
string name = "Alice";
bool isActive = true;
// Costanti
const int MaxUsers = 100;
const string Company = "CodeUtility";
2. Condizionali (if / switch)
Usa if, else if e switch per il flusso di controllo.
int x = 2;
if (x == 1)
{
Console.WriteLine("Uno");
}
else if (x == 2)
{
Console.WriteLine("Due");
}
else
{
Console.WriteLine("Altro");
}
switch (x)
{
case 1:
Console.WriteLine("Uno");
break;
case 2:
Console.WriteLine("Due");
break;
default:
Console.WriteLine("Altro");
break;
}
3. Cicli
C# supporta i cicli for, while e foreach.
for (int i = 0; i < 3; i++)
{
Console.WriteLine(i);
}
int n = 3;
while (n > 0)
{
Console.WriteLine(n);
n--;
}
4. Array
Gli array contengono collezioni a dimensione fissa di elementi dello stesso tipo.
int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers[1]);
5. Manipolazione delle liste
Usa List<T> per collezioni dinamiche.
List<int> nums = new List<int> { 1, 2, 3 };
nums.Add(4);
nums.Remove(2);
foreach (int n in nums)
{
Console.Write(n + " ");
}
6. Input/Output da console
Usa Console.WriteLine e Console.ReadLine per l'I/O di base.
Console.Write("Inserisci il tuo nome: ");
string name = Console.ReadLine();
Console.WriteLine($"Ciao, {name}!");
7. Funzioni
Definisci i metodi usando un tipo di ritorno, un nome e parametri.
int Add(int a, int b)
{
return a + b;
}
Console.WriteLine(Add(3, 4));
8. Dizionari
Dictionary<TKey, TValue> memorizza coppie chiave-valore.
Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
Console.WriteLine(ages["Alice"]);
9. Gestione delle eccezioni
Gestisci gli errori a tempo di esecuzione usando try, catch e finally.
try
{
throw new Exception("Qualcosa è andato storto");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
10. I/O su file
Usa File e StreamReader/StreamWriter per operazioni sui file.
File.WriteAllText("file.txt", "Ciao File");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);
11. Manipolazione delle stringhe
Le stringhe in C# supportano metodi come Length, Substring, Contains.
string message = "Ciao mondo";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("mondo"));
12. Classi e oggetti
C# supporta la programmazione orientata agli oggetti tramite classi e oggetti.
class Person
{
public string Name;
public Person(string name) => Name = name;
public void Greet() => Console.WriteLine($"Ciao, sono {Name}");
}
Person p = new Person("Alice");
p.Greet();