¿Cuál es la forma eficiente de contar la cantidad del número en Array?

Aquí está mi código:

a = 1000000000000

simpan1 = []

for i in range(a):
    if i % 75 == 0 and i >= 100:
        hasil = i
        simpan1.append(hasil)
    else:
        continue

print("The amount of the number:", len(simpan1))

Tomó mucho tiempo contarlo, así que espero que haya una forma más rápida de hacerlo. ¡Gracias!

0
A Newbie Coder 10 ene. 2022 a las 13:34
No está claro el enunciado de su problema. el código anterior es lento porque tiene un bucle for de 1 a 1000000000000 y encuentra esos números que son perfectamente divisibles por 75.
 – 
Anand Sowmithiran
10 ene. 2022 a las 13:38
Sí, sé que es lento porque hago un bucle de 1 a 1000000000000, por eso pregunto aquí. Mi único problema es que necesito una forma más rápida de contar la cantidad del número en la lista
 – 
A Newbie Coder
10 ene. 2022 a las 13:43
Eso es una locura, ¿por qué alguien haría esto usando for loop, solo necesitas dividir?
 – 
Anand Sowmithiran
10 ene. 2022 a las 13:49
Sí, eso es cierto, pero también lo uso para obtener otro número, como cuántos números se dividieron entre 75 y 60, o usando xor en él.
 – 
A Newbie Coder
10 ene. 2022 a las 13:54

3 respuestas

La mejor respuesta

Tiene números del 0 al (1000000000000 - 1) y necesita saber cuántos números son mayores o iguales a 100 y cuando se dividen por 75 no dan resto.

Simplemente puede hacer esto dividiendo (1000000000000 - 1) que es (999999999999) entre 75, esto simplemente calculará la cantidad de números que, cuando se divide por 75, no produce resto, por supuesto, ignorará la parte fraccionaria de la respuesta.

Ahora simplemente debes restar uno a la respuesta final.

¿por qué?

Porque quiere los números que satisfacen la condición y son mayores que 100 o iguales y sabe que hay un número menor que 100 y satisface la condición que es 75, por lo que lo resta de la respuesta final.

Tenga en cuenta:

Cuando divide 999999999999 por 75, calcula la cantidad de números entre 0 y 999999999999 que son divisibles por 75.

1
Bemwa Malak 10 ene. 2022 a las 13:42

Este código es equivalente y mucho más rápido:

a = 1000000000000
simpan1 = list(range(150, a, 75))
print("The amount of the number:", len(simpan1))

Si no te importan los números reales, esto es aún más rápido:

a = 1000000000000
print("The amount of the number:", (a - 1) // 75 - 1)
-1
Riccardo Bucco 10 ene. 2022 a las 13:45

¿Por qué no aplicas el algoritmo matemático en este problema? Podemos contar por fórmula a continuación:

import math
result = math.floor((1000000000000)/75.0) - 1 #except 75

Espero que esto te pueda ayudar.

-1
Viettel Solutions 10 ene. 2022 a las 13:53