Verificatore di numeri evil
Il 3 è un numero evil: in binario è 11, con 2 uno, e 2 è pari. Inserisca qualsiasi intero non negativo per vedere la sua forma binaria, quanti uno contiene e se quel numero è pari. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- N
- 3
- Binario
- 11
- Numero di uni
- 2
- Parità degli uni
- even
Un numero evil è un intero non negativo la cui rappresentazione binaria contiene un conteggio pari di bit a uno. Lo zero è evil perché la sua unica cifra binaria è zero e il conteggio degli uni è pari; il tre è evil perché il binario undici ha due uni; l’uno non è evil perché un solo uno è dispari (la classe complementare è spesso detta odious). Questo verificatore convalida un intero non negativo, costruisce la stringa binaria, conta i bit attivi con aritmetica intera pura e restituisce un booleano chiaro più ogni campo intermedio così che studenti, docenti e autori di script possano verificare la classificazione senza un sistema di algebra computazionale né una libreria di bit opaca. Gli input negativi vengono rifiutati come non validi.
Cos’è un numero evil e come lo decide il popcount binario
Scriva qualsiasi intero non negativo in base due e conti quante cifre valgono uno. Se quel conteggio di popolazione—detto anche peso di Hamming o conteggio dei bit attivi—è pari, l’intero è evil; se è dispari, l’intero è odious e quindi non è evil secondo questa definizione. Il nome proviene dalla teoria ricreativa dei numeri e si affianca alla sequenza di Thue–Morse, dove i numeri evil occupano le posizioni a parità pari.
I casi concreti aiutano: lo zero ha binario zero e zero uni, quindi è evil; l’uno ha binario uno e un uno, quindi è odious; il due è binario dieci con un uno ed è odious; il tre è binario undici con due uni ed è evil; il quattro è binario cento con un uno ed è odious; il cinque è binario cento uno con due uni ed è evil.
La definizione è puramente combinatoria sulla stringa di bit: non dipende da fattori primi, somme di cifre in base dieci o approssimazioni in virgola mobile. I materiali didattici spesso contrappongono numeri evil e odious a perfetti, abbondanti o felici: quelle proprietà ispezionano divisori o cifre decimali, mentre lo stato evil ispeziona solo la parità binaria degli uni.
Poiché ogni intero non negativo ha un’espansione binaria finita, la proprietà termina sempre dopo un numero di passi proporzionale alla lunghezza in bit, il che la rende ideale per controlli automatici, problemi di gara, colloqui di programmazione e demo in aula in cui gli studenti devono mostrare il percorso binario e non solo un’etichetta sì o no.
Uso pratico, limiti, prezzi e ricerche correlate
Usi lo strumento del browser quando desidera un verdetto immediato di numero evil studiando problemi di parità di bit, preparando una lezione di teoria dei numeri o controllando una risposta di gara senza installare un sistema di algebra computazionale. Gli input accettati sono interi non negativi fino al massimo intero sicuro di JavaScript, così esempi in aula e demo da colloquio restano esatti negli intervalli numerici ordinari. I risultati non dipendono mai da orologi, semi casuali o servizi aritmetici remoti.
Nell’insegnamento, preferisca esempi accoppiati che mostrino entrambi gli esiti: tre e cinque come casi evil veri, uno e due come casi odious falsi, zero come caso limite di uni vuoti pari, e un input negativo per dimostrare il percorso rigido di rifiuto. Altre landing di teoria dei numeri in questo kit mirano ad altre intenzioni come numeri felici, repunit o primi; questa pagina è specificamente per chi cerca se un intero dato è un numero evil o ha uni binari in numero pari.
Casi d'uso
Demo in aula del peso di Hamming binario
I docenti possono mostrare come conteggi pari o dispari di bit a uno separino i numeri evil da quelli odious, con ogni campo intermedio visibile per la discussione.
Domande frequenti
Cos’è un numero evil?
Un intero non negativo con un numero pari di uni nella rappresentazione binaria. Esempio: 3 è binario 11 (due uni) quindi è evil; 1 è binario 1 (un uno) quindi non lo è.
Il verificatore di numeri evil è gratuito?
Lo strumento del browser gira gratis sul Suo dispositivo.
I risultati sono deterministici?
Non c’è modello, chiamata di rete né casualità sul percorso.
Il 3 è un numero evil?
Sì. Scritto in binario, il 3 è 11, che contiene due uno. Due è un numero pari, quindi il 3 è evil.
Cosa succede con i numeri negativi?
Vengono rifiutati con un messaggio chiaro. La proprietà è definita solo per gli interi non negativi, perché si basa sulla scrittura binaria del numero senza segno.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/numth/evil-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":3}'const res = await fetch("https://api.kit.forhosting.com/numth/evil-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/evil-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/evil-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/evil-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"n": 3
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.evil_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Cos’è un numero evil e come lo decide il popcount binario
La classe odious complementare è menzionata solo per chiarezza; questa capacità risponde alla domanda evil e riporta ancora ones_parity così che Lei veda entrambi i lati in una sola risposta.
Come questo verificatore valuta lo stato evil e cosa restituisce l’API
L’implementazione verifica che n sia presente, finito, intero e almeno zero. Lo usi da pipeline di compiti, validatori di gare, sandbox di preparazione ai colloqui o qualsiasi flusso che necessiti di un controllo riproducibile di parità binaria senza installare pacchetti specializzati di teoria dei numeri su ogni macchina. Invochi la capacità con un campo n che contenga un intero non negativo, sia come numero JSON entro l’intervallo degli interi sicuri sia come stringa di cifre che si normalizza a un intero intero. Gli alias number e value sono accettati per lo stesso campo. Poi costruisce la rappresentazione binaria senza prefisso 0b (lo zero mappa alla stringa zero), conta gli uni prendendo ripetutamente il bit meno significativo e dimezzando in intero, e imposta is_evil a true quando quel conteggio modulo due è zero. La risposta restituisce anche ones_count, ones_parity come even o odd, binary come stringa di bit e una breve formula che indica il popcount e la conclusione evil o odious. n assente, non interi, frazioni, valori oltre il massimo pubblicato e qualsiasi numero negativo falliscono con invalid_input e non vengono addebitati. Il prezzo è fisso $0.002 per richiesta riuscita sotto l’unità item.
Uso pratico, limiti, prezzi e ricerche correlate
Usi l’API quando uno script, un correttore di compiti o una piattaforma educativa necessita di JSON stabile per molti valori con un contratto fisso. Ogni richiesta riuscita è un item fatturabile a $0.002; la convalida fallita non consuma saldo. Poiché binary e ones_count tornano insieme, gli studenti possono ricalcolare il popcount a mano e allinearlo all’API riga per riga. Colleghi l’endpoint ad app di pratica per colloqui, pagine di matematica ricreativa, pipeline di classificazione di interi o cruscotti didattici dove Lei già preferisce l’aritmetica esatta dei bit a calcolatori opachi a scatola nera. La consegna funziona dal modulo web, dall’API dei task, dai client SDK e dagli altri canali KIT senza cambiare il contratto matematico.
Casi di integrazione
Controlli di parità di bit in colloqui e gare
Candidati e valutatori possono verificare la classificazione dei numeri evil per interi non negativi arbitrari e ispezionare binary e ones_count senza scrivere un ciclo locale di popcount.
Pipeline automatizzate di classificazione di interi
Gli script che etichettano gli interi per la parità degli uni binari possono chiamare un unico endpoint deterministico a prezzo per item invece di incorporare un conteggio di bit ad hoc.
Domande tecniche
Lo zero è un numero evil?
Sì. Lo zero ha binario 0 e zero uni; zero è pari, quindi is_evil è true.
Cosa succede se n è negativo?
La richiesta fallisce con invalid_input. Questo verificatore richiede un intero non negativo; i negativi vengono rifiutati e non addebitati.