- Esecutori
-
Impara
Impara Python Esempi eseguibili, NumPy, pandas e altro Impara l'IAReti neurali, ML e LLM da zero Impara C e C++ Puntatori, memoria, STL e C++ moderno Impara C#Fondamenti, OOP, LINQ, async ed esercizi .NET Impara MatplotlibGrafici a linee, barre, dispersione e torta con visualizzatori Algoritmi Python Ricerca, ordinamento, ricorsione e visualizzazioni O(n) Algoritmi C e C++ Confronta le implementazioni in C e C++ Programmazione per bambini Impara a programmare giocando!
- SfideNuovo
- Per docentiNuovo
- Aggiornamenti
- Offrimi un caffè
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:
features = [
[0, 1],
[0, 0],
[1, 1],
[1, 0],
[0, 1]
]
labels = [1, 1, 0, 0, 1]
query = [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:
features = [
[0],
[0],
[1]
]
labels = [0, 0, 1]
query = [2]
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:
features = [ [0, 1], [0, 0], [1, 1], [1, 0], [0, 1] ] labels = [1, 1, 0, 0, 1] query = [0, 1]Output atteso:1Il tuo output -
Esempio 2 Non eseguitoInput:
features = [ [0], [0], [1] ] labels = [0, 0, 1] query = [2]Output atteso:0Il tuo output
4 test nascosti vengono eseguiti anche al momento dell'invio. Se il tuo codice ne fallisce uno, vedrai quel test. Risolvi la sfida per vederli tutti.
Run Swift Online
Write, run, and debug Swift code online using a command-line Swift environment. Manage multiple files, save your workspace, and share code without installing Xcode.
🚀 19,043 esecuzioni totali (611 questo mese)
Esercitati in Swift 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 Swift online
Il CodeUtility Swift Executor ti consente di scrivere ed eseguire codice Swift direttamente nel browser - senza bisogno di Xcode, SDK o configurazione macOS. Esegue compilatori Swift reali in sandbox isolate per offrire un comportamento Swift accurato e nativo.
Questo strumento supporta più versioni di Swift - 5.7, 5.9 e l’ultima release - offrendoti la flessibilità di esplorare nuove funzionalità del linguaggio e mantenere la compatibilità con codebase Swift più vecchie.
È perfetto per sviluppatori che stanno imparando la sintassi di Swift, testando algoritmi o sperimentando codice per iOS, macOS e Swift lato server, senza dover installare strumenti locali o simulatori.
Ogni snippet viene eseguito in sicurezza in un ambiente Swift containerizzato, garantendo un feedback reale del compilatore ed esecuzione sicura del codice.
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.
💡 Guida alle basi di Swift per principianti
1. Dichiarare variabili e costanti
Usa var per le variabili e let per le costanti in Swift.
var age = 30
let pi = 3.14159
var name = "Alice"
let isActive = true
// Le costanti non possono essere riassegnate
// pi = 3.14 // ❌ Errore
2. Condizionali (if / switch)
Usa if, else if, else per la logica e switch per più rami.
let number = 2
if number == 1 {
print("Uno")
} else if number == 2 {
print("Due")
} else {
print("Altro")
}
switch number {
case 1:
print("Uno")
case 2:
print("Due")
default:
print("Altro")
}
3. Cicli
Swift supporta i cicli for-in, while e repeat-while.
for i in 0..<3 {
print(i)
}
var n = 3
while n > 0 {
print(n)
n -= 1
}
4. Array
Gli array memorizzano raccolte ordinate di valori.
var numbers = [10, 20, 30]
print(numbers[1])
5. Manipolazione degli array
Usa metodi degli array come append e removeLast.
var nums = [1, 2, 3]
nums.append(4)
nums.removeLast()
for n in nums {
print(n)
}
6. Input/Output da console
Usa print() per l’output. L’input richiede passaggi aggiuntivi in Swift Playgrounds o Xcode.
let name = "Alice"
print("Ciao, \(name)")
7. Funzioni
Definisci funzioni riutilizzabili con parametri e valori di ritorno.
func add(a: Int, b: Int) -> Int {
return a + b
}
print(add(a: 3, b: 4))
8. Dizionari
I dizionari memorizzano coppie chiave-valore.
var ages = ["Alice": 30]
print(ages["Alice"] ?? 0)
9. Gestione degli errori
Swift usa do-catch per la gestione degli errori.
enum MyError: Error {
case runtimeError(String)
}
do {
throw MyError.runtimeError("Qualcosa è andato storto")
} catch let error {
print(error)
}
10. File I/O
Swift usa FileManager o metodi di String per l’I/O su file.
let text = "Ciao file"
try text.write(toFile: "file.txt", atomically: true, encoding: .utf8)
let content = try String(contentsOfFile: "file.txt")
print(content)
11. Manipolazione delle stringhe
Usa metodi come count, contains, uppercased(), ecc.
let text = "Ciao mondo"
print(text.count)
print(text.contains("mondo"))
print(text.uppercased())
12. Classi & Oggetti
Swift supporta la OOP usando class e init.
class Person {
var name: String
init(name: String) {
self.name = name
}
func greet() {
print("Ciao, sono \(name)")
}
}
let p = Person(name: "Alice")
p.greet()
13. Opzionali
Swift usa ? e ! per gestire i valori opzionali.
var name: String? = "Alice"
print(name ?? "Sconosciuto")
if let unwrappedName = name {
print(unwrappedName)
}