Hemos estado escribiendo inglés y otros idiomas humanos durante mucho, mucho tiempo, y la pedagogía literaria ha avanzado hasta el punto en que sabemos lo que una persona “normal” debería poder leer en el momento en que comienza la educación formal hasta el momento. Reciben su título de posgrado. Por lo tanto, tendría sentido preguntar cuánto tiempo debería tomar un estudiante estadounidense normal en los primeros años del siglo XXI para leer a un nivel de quinto grado.
Pero no hemos escrito casi tanto código C, y el rango de experiencia es, en todo caso, incluso más amplio. He estado usando C durante 25 años y tengo un doctorado en este campo, pero cuando estaba abriendo un poco el código C utilizado por el ks.test de R () no tenía idea de lo que estaba sucediendo. ¿Entendí las “palabras” individuales? Por supuesto. Pero en el nivel de “párrafo” estaba completamente perdido.
/ * Distribución asintótica bilateral de dos muestras * /
estático void pkstwo (int n, double * x, doble tol)
{
/ * x [1: n] es entrada y salida
* Calcular \ sum_ {k = – \ infty} ^ \ infty (-1) ^ ke ^ {- 2 k ^ 2 x ^ 2}
* = 1 + 2 \ sum_ {k = 1} ^ \ infty (-1) ^ ke ^ {- 2 k ^ 2 x ^ 2}
* = \ frac {\ sqrt {2 \ pi}} {x} \ sum_ {k = 1} ^ \ infty \ exp (- (2k-1) ^ 2 \ pi ^ 2 / (8x ^ 2))
*
* Véase, por ejemplo, J. Durbin (1973), Teoría de la distribución para pruebas basadas en la
* Función de distribución de la muestra. SIAM.
*
* La expansión de la serie ‘estándar’ obviamente no se puede usar cerca de 0;
* usamos la serie alternativa para x <1, y una estimación bastante cruda
* del término resto de la serie en este caso, en particular utilizando ese
* ue ^ (- lu ^ 2) \ le e ^ (- lu ^ 2 + u) \ le e ^ (- (l-1) u ^ 2 – u ^ 2 + u) \ le e ^ (- (l -1))
* siempre que u y l sean> = 1.
*
* (Pero tenga en cuenta que para tolerancias razonables, uno podría simplemente tomar 0 como
* el valor para x <0.2, y use la expansión estándar de lo contrario.)
*
* /
doble nuevo, antiguo, s, w, z;
int i, k, k_max;
k_max = (int) sqrt (2 – log (tol));
- ¿Qué hago cuando soy adicto a los juegos?
- ¿Cuándo las personas comenzaron a llamar a las personas que no les gustan los narcisistas? Pensé que un narcisista era alguien que estaba enamorado de sí mismo.
- ¿Qué hay en pensar en lo profundo que nos da placer, cuando Carl Jung dijo que pensar es difícil, por eso la mayoría de la gente juzga?
- Todos piensan que soy una puta de la atención, a nadie le gusto. Me siento como una mierda. ¿Qué hará que otros piensen que soy diferente?
- ¿Qué tipo de persona tiene que declarar siempre su título en una empresa?
para (i = 0; i <n; i ++) {
si (x [i] <1) {
z = – (M_PI_2 * M_PI_4) / (x [i] * x [i]);
w = log (x [i]);
s = 0;
para (k = 1; k <k_max; k + = 2) {
s + = exp (k * k * z – w);
}
x [i] = s / M_1_SQRT_2PI;
}
else {
z = -2 * x [i] * x [i];
s = -1;
k = 1;
antiguo = 0;
nuevo = 1;
while (fabs (old – new)> tol) {
viejo = nuevo;
nuevo + = 2 * s * exp (z * k * k);
s * = -1;
k ++;
}
x [i] = nuevo;
}
}
}
Esto no me preocupa demasiado; una de las cosas buenas de tener un Ph.D. es que sé con quién hablar cuando tengo que hacer una optimización del rendimiento en el código estadístico.
Pero sí señala la inutilidad de su pregunta. ¿Qué es una persona “normal”? ¿Qué nivel de “comprensión” estás preguntando? ¿Qué tipo de “desarrollo” tiene en mente, y en qué nivel de calidad y complejidad? ¿Es la persona autodidacta? ¿Cuánto es el maestro una influencia de confusión? ¿El ambiente de aprendizaje permite el aprendizaje asistido por pares?
Ignorando todo lo anterior …
Con un gran maestro y un grupo motivado de estudiantes de ciencias de la computación, diría que la mayoría puede llegar al punto de escribir un simple editor de texto en un semestre, un módulo de kernel simple (no trivial) en dos semestres y un compilador rudimentario en tres semestres Después de dos años, puede considerar pagarles por sus soluciones, y después de cinco años más, es posible que no esté perdiendo dinero en ese trato.