Esiste una funzione incorporata per calcolare la sovrapposizione tra due intervalli discreti, ad es. la sovrapposizione tra [10, 15] e [20, 38]? In tal caso la sovrapposizione è 0. Se è [10, 20], [15, 20], la sovrapposizione è 5.built in funzione per il calcolo della sovrapposizione in Python
risposta
È possibile utilizzare max e min:
>>> def getOverlap(a, b):
... return max(0, min(a[1], b[1]) - max(a[0], b[0]))
>>> getOverlap([10, 25], [20, 38])
5
>>> getOverlap([10, 15], [20, 38])
0
sembra piuttosto pulito –
a meno che gli intervalli siano impliciti per essere esclusivi sul primo valore e inclusi sul secondo (o qualcosa del genere ...), questo avrebbe bisogno di un '+ 1' per la sottrazione. –
funziona abbastanza bene – Evgeny
Partenza pyinterval http://code.google.com/p/pyinterval/
import interval
x=interval.interval[10, 15]
y=interval.interval[20, 38]
z=interval.interval[12,18]
print(x & y)
# interval()
print(x & z)
# interval([12.0, 15.0])
+1 Perché non sapevo di quel modulo, anche se potrebbe essere eccessivo se ha solo bisogno di questo calcolo. –
L'OP stava cercando "una funzione integrata". – Johnsyweb
Penso che sebbene la documentazione sia la stessa, il modulo è leggermente cambiato. L'oggetto 'interval' non ha alcun attributo chiamato' interval' ancora ... –
- 1. Modifica della funzione built-in
- 2. Calcolo della derivata della funzione di densità cumulativa in Python
- 3. Calcolo di sovrapposizione intervallo di date efficiente in python?
- 4. Estendere il built-in di Python Str
- 5. Calcolo della sovrapposizione tra due ellissi
- 6. metodo ottimizzato per il calcolo della distanza coseno in Python
- 7. Comprendere un algoritmo di ridimensionamento della mappa per il calcolo della sovrapposizione
- 8. Definizione della funzione dei built-in Clojure: def vs defn
- 9. Calcolo fattoriale della funzione x in gnuplot?
- 10. Costruire in funzione per il calcolo di covarianza
- 11. Alcuni built-in per riempire un elenco in python
- 12. Perché è `(:)` built-in?
- 13. Per ogni funzione della classe in python
- 14. Perché Python restituisce 0 per il calcolo della divisione semplice?
- 15. calcolo esponenziale in Python
- 16. perché c'è un argomento start in funzione di somma built-in di Python
- 17. Calcolo exp (x) con l'uso della ricorsione in Python
- 18. <funzione con valori di tabella> non è un riconosciuto built-in nome della funzione
- 19. Calcolo della covarianza con Python e Numpy
- 20. Perché weakref non supporta i tipi built-in in Python?
- 21. Qualcuno conosce la parola per cui la funzione built-in ord() è abbreviata?
- 22. Strumenti per automatizzare il calcolo della complessità ciclomatica in java?
- 23. Calcolo della media mobile
- 24. Calcolo pdf della distribuzione di Dirichlet in python
- 25. Calcolo MSD accelerazione in Python
- 26. Precisione della GPU per il calcolo scientifico
- 27. Quando l'oggetto() built-in è utile?
- 28. Calcolo della mediana in rubino
- 29. Come ripristinare un built-in che ho sovrascritto per sbaglio?
- 30. minimizzazione della sovrapposizione in rettangoli casuali
Vuoi dire che se vuoi la sovrapposizione tra [10,25] e [20,38], che il risultato dovrebbe essere [20,25]? – Marc
Cosa intendi con sovrapposizione? Si prega di fornire un esempio del risultato atteso. –
c'è sovrapposizione tra [10,15] e [20,38]? – joaquin