¿Alguien puede escribir un algoritmo no determinista (pseudocódigo) para encontrar la suma de los primeros n números naturales?

Podría haber sido una pregunta capciosa. Un algoritmo no determinista es una contradicción en los términos. Un programa no determinista es factible si tiene una fuente física de ruido aleatorio implementado en la computadora que está utilizando, en lugar de un generador de números pseudoaleatorios. Si no está seguro de cómo su computadora genera números aleatorios, haga que el programa le pida al usuario que presione las teclas “al azar” durante cinco segundos. Seudo código horrible sigue …

Pulsaciones de teclas de matriz (entero, 200), natural (entero, 1000000)
Entero KeyCount = 1, Semilla = 0, N = 0, Resultado = 0, X = 1, Máx = 1000000
Número entero = 0, Resultado = 0

Imprima “Ingrese el número de números naturales menores que” y Máx. Y “desea sumar”
Entrada (N)

Imprimir “Escriba en el teclado al azar”
Cuenta atrás (5 segundos)
Mientras Cuenta atrás> 0
Inkey Array (KeyCount) # recolecta datos aleatorios – asume que los humanos no son deterministas
Incremento (KeyCount)
Fin mientras

Para X = 1 a KeyCount
Semilla = Semilla + ASCII (pulsaciones de teclas (X)) # genera una semilla aleatoria verdadera para el generador aleatorio a bordo
Siguiente X

Mientras Semilla <N
Semilla = Semilla + Semilla # asegúrese de que la semilla sea más grande que N
Fin mientras

Para X = 1 a N
Natural (N) = N # rellena una matriz con los números que queremos agregar
Siguiente X

Mientras Sum (Natural)> 0 # prueba si ya hemos agregado todos los números
Num = Aleatorio (Semilla)
Si Num <= N
Resultado = Resultado + Natural (Num)
Natural (Num) = 0 # asegura que solo agreguemos cada número una vez
Terminara si
FinMientras

Print & Result & “es la suma de los primeros” & N & “números naturales”.

EndProgram

1. Produzca a = n * (n + 1) / 2 y un número aleatorio.
2. Ignora el número aleatorio y devuelve a.

Poco torpe:

aleatorizar semillas
números = lista de enteros
suma = 0
mientras que el tamaño de los números n = número aleatorio entre 1 y N
si n no está en números {
almacenar n en números
agregue n a la suma
}
}
imprimir suma

Lo siento, puedo programar pero no sé cómo escribir pseudocódigo correctamente

Genere varias veces n números entre 0 y n. Encuentra el promedio de todos estos números. Tenga en cuenta que esta solución tiene una forma cerrada. Use eso en su lugar.

More Interesting

¿Por qué me sigue mostrando el valor 0.0 en mi código Python?

Un juego de 64 discos de Tower of Hanoi es jugado por un programa que realiza movimientos a una velocidad creciente. Comienza a 1000 movimientos por segundo. ¿Cuánto tiempo tomará?

¿Cuál es la interpretación de XOR de los enteros? ¿Hay alguna forma simple de calcular XOR en lugar de 'XOR-ing' todos los bits individuales?

Proyectos teóricos de informática o desarrollo de aplicaciones, ¿qué le sugerirías a los estudiantes de primer año de informática?

¿Tengo que saber matemáticas para programar?

¿La informática teórica tiene algo que ver con la minería de datos?

¿Cuál es la mejor aplicación de la teoría de grafos en la vida real que conoces?

¿Cuál es la mejor manera de obtener una estimación numérica de la cantidad de conocimiento científico en el mundo? Sabemos con certeza que está aumentando, pero ¿cuánto más es ahora que, por ejemplo, en 1970?

¿Todas las integrales pueden ser calculadas por una computadora? Del mismo modo, ¿hay integrales en este momento que los matemáticos no puedan resolver?

¿Los humanos alguna vez entenderán verdadera y completamente el Universo?

¿La orientación a objetos seguiría siendo el paradigma de programación dominante en un futuro en el que las computadoras personales suelen tener 10 o 100 núcleos?

¿Cómo sirven las matemáticas como base para la informática teórica?

Si una solución correcta a la Hipótesis de Riemann, P = NP, o la Teoría de campo unificada se presentara de forma anónima, ¿cuántas personas podrían ser consideradas sospechosas?

¿Cómo es útil la optimización convexa en la industria tecnológica?

¿Qué entero decimal está representado por 0xE4 en una notación de complemento a dos de 8 bits?