" 99 botellas de cerveza " o " 100 botellas de refresco en la pared " es una canción tradicional de Estados Unidos y Canadá que se canta al revés. Es popular para cantar en viajes por carretera, ya que tiene un formato muy repetitivo que es fácil de memorizar y puede llevar mucho tiempo cuando se canta completa. En particular, la canción la suelen cantar los niños en viajes largos en autobús escolar , como excursiones escolares o en excursiones de las Guías Scout o de las Niñas Guías .
La canción es una variación de una canción de estudiantes universitarios del siglo XIX "Forty-nine Blue Bottles a-Hangin' on the Wall" o simplemente "Forty-nine Bottles Hanging on the Wall". [1] La melodía y la letra están registradas en un cancionero universitario de 1890 [2] como: [ verificación fallida ]
En 1898, existía una variante con el número de botellas moderno de 99 y las botellas se especificaban como botellas de cerveza. [3] [ verificación fallida ]
La letra de la canción es la siguiente, comenzando con n=99: [4] [5]
(n) botellas de cerveza en la pared.
(n) botellas de cerveza.
Toma una, pásala,
(n-1) botellas de cerveza en la pared.
[6]
Se repite el mismo verso, cada vez con una botella menos, hasta que no queda ninguna. Las variaciones del último verso después de que se termina la última botella incluyen líneas como:
No más botellas de cerveza en la pared,
no más botellas de cerveza.
Ve a la tienda y compra más,
99 botellas de cerveza en la pared...
O:
Ya no hay más botellas de cerveza en la pared,
ya no hay más botellas de cerveza.
Las hemos quitado
y las hemos pasado de mano en mano;
¡ahora estamos borrachos y desmayados!
Otras líneas alternativas dicen:
Si esa botella se cayera,
¡qué desperdicio de alcohol!
O:
No hay más botellas de cerveza en la pared,
no hay más botellas de cerveza.
No hay nada más que caer,
porque no hay más botellas de cerveza en la pared.
O la canción no se detiene en las últimas "1" o "0" botellas de cerveza, sino que continúa contando con −1 (menos uno) Botellas de cerveza en la pared Toma una, pásala, −2 (menos 2) botellas de cerveza en la pared... y continúa hacia adelante a través de los números negativos.
Cantar todas las estrofas lleva un tiempo extraordinariamente largo. El comediante estadounidense Andy Kaufman utilizó esto para lograr un efecto cómico al principio de su carrera, cuando llegó a cantar las 100 estrofas. [7]
Atticus , una banda de Knoxville, Tennessee, grabó una versión en vivo de trece minutos y medio de la canción en su totalidad en el Glasgow Cathouse en Escocia. Fue incluida en el álbum Figment de 2001. Rich Stewart, también conocido como Homebrew Stew, la incluyó como la canción para beber número uno de 86 en un artículo para la revista Modern Drunkard el año siguiente. [8]
Donald Byrd ha recopilado docenas de variantes inspiradas en conceptos matemáticos y escritas por él mismo y otros. [9] (Se ha publicado un subconjunto de su colección. [10] ) Byrd sostiene que la colección tiene valor tanto pedagógico como lúdico. Entre sus variantes se encuentran:
Otras versiones de la colección de Byrd involucran conceptos que incluyen progresiones geométricas , diferenciales , identidad de Euler , números complejos , notación de suma , el conjunto de Cantor , la secuencia de Fibonacci y la hipótesis del continuo , entre otros.
El científico informático Donald Knuth demostró que la canción tiene una complejidad de 100 en su artículo de broma " La complejidad de las canciones ". [11]
Existen numerosos programas informáticos que permiten generar la letra de la canción. Esto es análogo a los programas de "¡Hola, mundo!" , con la adición de un bucle . Al igual que con "¡Hola, mundo!", este puede ser un ejercicio de práctica para quienes estudian programación informática y una demostración de diferentes paradigmas de programación que abordan construcciones de bucles y diferencias sintácticas entre lenguajes de programación dentro de un paradigma.
El programa ha sido escrito en más de 1.500 lenguajes de programación diferentes. [12]
#incluir <stdio.h> int principal ( vacío ) { para ( tamaño_t i = 99 ; i > 0 ; i -- ) { printf ( "%zu botella%s de cerveza en la pared, %zu botella%s de cerveza. \n Toma una y pásala, ahora hay " , yo , ( yo == 1 ? "" : "s" ), yo , ( yo == 1 ? "" : "s" )); printf (( i > 1 ) ? "%zu botella%s de cerveza en la pared \n " : "¡No más botellas de cerveza en la pared! \n " , i - 1 , i == 2 ? "" : "s" ); }}
función principal () { para i en ( 3 .. 100 ). rev () { println! ( "{i} botellas de cerveza en la pared, {i} botellas de cerveza. \n Toma una y pásala, ¡ahora hay {} botellas más de cerveza en la pared!" , ( i - 1 )); } println! ( "2 botellas de cerveza en la pared, 2 botellas de cerveza. \ nToma una y pásala, ¡ahora hay 1 botella de cerveza más en la pared!" , ); println! ( "1 botella de cerveza en la pared, 1 botella de cerveza. \nToma una y pásala, ¡no hay más botellas de cerveza en la pared!" );}
versos :: [ Cadena ] versos = "1 botella de cerveza en la pared, 1 botella de cerveza. \nToma una y pásala, ¡no hay más botellas de cerveza en la pared!" : "2 botellas de cerveza en la pared, 2 botellas de cerveza. \nToma una y pásala, ¡ahora hay 1 botella de cerveza más en la pared!" : mapa ( \ n -> mostrar n ++ "botellas de cerveza en la pared", ++ mostrar n ++ " botellas de cerveza. \n Tome una y pásela, ahora hay " ++ mostrar ( n - 1 ) ++ "¡más botellas de cerveza en la pared!" ) [ 3 .. ] principal :: IO () main = mapM_putStrLn ( reverse $ toma 99 versos )