Col seguente programma in R  o con questo in JavaScript  (vedi qui per capire che fa) ottengo le successive uscite:

source("http://macosa.dima.unige.it/r.R")
F <- function(x) sqrt(1-x*x)
p = 0.5; L0 = 0
n=1; for(i in 1:6) {n = n*4; dx=(1-p)/n; x=1-(0:n)*dx; L=lung(x,F(x));
               cat("n =",n," L =",L," var =",L-L0,"\n"); L0=L}
n = 4     L = 1.041049  var = 1.041049 
n = 16    L = 1.046408  var = 0.005359197 
n = 64    L = 1.047097  var = 0.0006893006 
n = 256   L = 1.047185  var = 8.746579e-05 
n = 1024  L = 1.047196  var = 1.101703e-05 
n = 4096  L = 1.047197  var = 1.382436e-06

Che cosa calcola il programma al variare di p e che cosa posso concludere da queste uscite? Se dessi a p il valore 0, su quale valore tenderebbero a stabilizzarsi le uscite.

Si capisce subito che cosa fa il programma se aggiungiamo delle istruzioni grafiche:

BF=7; HF=4
PIANO(-1,1, 0, 1)
arco(0,0, 1, 0,180, "blue")
F <- function(x) sqrt(1-x*x)  # funz. il cui grafico e' il semicerchio
# Misura della lungh. dell'arco che da (0,1) va al punto P di acissa p
p = -0.8; L0 = 0
# Cambia l'assegnazione dell'ascissa p per un altro arco
PUNTO(p,F(p), "red")
n=1; for(i in 1:6) {n = n*4; dx=(1-p)/n; x=1-(0:n)*dx; L=lung(x,F(x)); spezza(x,F(x),i);
               cat("n =",n," L =",L," var =",L-L0,"\n"); L0=L}

Il programma (vedi) calcola la lunghezza della poligonale di n lati di base eguale che approssima la lunghezza dell'arco di cerchio di raggio 1 che approssima l'arco (del semicerchio superiore) che congiunge il punto (0,1) col punto di ascissa p. In pratica approssima il valore dell'angolo in radianti che ha come coseno il valore dato in input. Se usassimo una calcolatrice (o la funzione acos di R) troveremmo che, nel caso in cui come p si introduca 0.5, esso vale 1.04719755119660, approssimazione a 15 cifre (si può osservare che l'errore non solo si riduce, ma tende ad essere circa 1/8 del precedente).  Se dessi in input p = 0, le uscite tenderebbero a stabilizzarsi sul valore (in radianti) di un quarto di cerchio, ossia su π/2 = 1.570796326794….

Possiamo calcolare la lunghezza anche con WolframAlpha (vedi). Con:
arc length of y=sqrt(1-x*x) from x=1 to 0.5
ottengo l'approssimazione:  1.0472