music.wikisort.org - Composition

Search / Calendar

"99 Bottles of Beer" or "100 Bottles of Pop on the Wall" is a song dating to the mid-20th century. It is a traditional reverse counting song in both the United States and Canada. It is popular to sing on road trips, as it has a very repetitive format which is easy to memorize and can take a long time when families sing. In particular, the song is often sung by children on long school bus trips, such as class field trips, or on Scout or Girl Guide outings.

"99 bottles"
Song
GenreFolk

Lyrics


The song's lyrics are as follows, with mathematical values substituted:[1][2]

(n) bottles of beer on the wall. (n) bottles of beer. Take one down, pass it around, (n-1) bottles of beer on the wall. (caution: this mathematical formula ends with n=1, the song does not use negative numbers).

Alternative line:[3]

If one of those bottles should happen to fall, 98 bottles of beer on the wall...

The same verse is repeated, each time with one bottle fewer, until there is none left. Variations on the last verse following the last bottle going down include lines such as:

No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall...

Or:

No more bottles of beer on the wall, no more bottles of beer.
We've taken them down and passed them around; now we're drunk and passed out!

Other alternate lines read:

If that one bottle should happen to fall, what a waste of alcohol!

Or:

No more bottles of beer on the wall, no more bottles of beer.
There's nothing else to fall, because there's no more bottles of beer on the wall.

Or:

The song does not stop at the last "1" or "0" bottles of beer but continues counting with 1 (Negative one) Bottles of beer on the wall Take one down, pass it around, 2 (negative 2) bottles of beer on the wall... continuing onward through the negative numbers


Andy Kaufman routine


The boring and time-consuming nature of the "99 Bottles of Beer" song means that probably only a minority of renditions are done to the final verse.[citation needed] The American comedian Andy Kaufman exploited this fact in the routine early in his career when he would actually sing all 100 verses.[4]


Atticus


Atticus, a band from Knoxville, Tennessee recorded a thirteen and a half minute live version of the song in its entirety at a club in Glasgow, Scotland called The Cathouse. It was included in the 2001 album Figment. Rich Stewart aka Barroom Rambler listed it the number one drinking song out of 86 in an article for Modern Drunkard Magazine the following year.[5]


Mathematically inspired variants


Donald Byrd has collected dozens of variants inspired by mathematical concepts and written by himself and others.[6] (A subset of his collection has been published.[7]) Byrd argues that the collection has pedagogic as well as amusement value. Among his variants are:

Other versions in Byrd's collection involve concepts including geometric progressions, differentials, Euler's identity, complex numbers, summation notation, the Cantor set, the Fibonacci sequence, and the continuum hypothesis, among others.


References in computer science


The computer scientist Donald Knuth proved that the song has a complexity of in his in-joke-article "The Complexity of Songs".[8]

Numerous computer programs exist to output the lyrics to the song. This is analogous to "Hello, World!" programs, with the addition of a loop. As with "Hello World!", this can be a practice exercise for those studying computer programming, and a demonstration of different programming paradigms dealing with looping constructs and syntactic differences between programming languages within a paradigm.

The program has been written in over 1,500 different programming languages.[9]


Examples



Classical BASIC syntax

FOR Bottle = 99 TO 1 STEP -1
 PRINT STR(Bottle) +" bottles of beer on the wall, "+ STR(Bottle) +" bottles of beer"
 PRINT "Take one down and pass it around, "+ STR(Bottle-1) +" bottles of beer on the wall"
NEXT Bottle

C++

#include <iostream>

int main()
{
    for (int numberOfBottles = 99; numberOfBottles > 1; numberOfBottles--)
    {
        std::cout << numberOfBottles << " bottles of beer on the wall, " << numberOfBottles << " bottles of beer,\n";
        std::cout << "Take one down and pass it around, " << numberOfBottles - 1 << " bottles of beer on the wall, \n\n";
    }

    std::cout << "1 bottle of beer on the wall,\nTake one down and pass it around, no bottles of beer on the wall!";
}

C#

for (int bottleNumber = 99; bottleNumber > 1; bottleNumber--)
{
	Console.WriteLine($"{bottleNumber} bottles of beer on the wall, {bottleNumber} bottles of beer", bottleNumber);
	Console.WriteLine($"Take one down and pass it around, {bottleNumber - 1} bottles of beer on the wall");		   
}
Console.WriteLine("1 bottle of beer on the wall, 1 bottle of beer");
Console.WriteLine("Take one down and pass it around, no bottles of beer on the wall");

PHP

$numberBottles = 99;

while ($numberBottles > 1) {
    echo "$numberBottles bottles of beer on the wall<br>";
    echo "$numberBottles bottles of beer<br>";
    echo "If you take one down<br>";
    echo "And pass it around<br>";
    $numberBottles -= 1;
    echo "There'll be $numberBottles bottles of beer on the wall.<br><br>";
}

echo "Just $numberBottles bottle of beer on the wall<br>";
echo "Just $numberBottles bottle of beer<br>";
echo "If you take it down<br>";
echo "And pass it around<br>";
echo "There'll be no more bottles of beer on the wall.<br><br>";

Python

for bottles in range(99, 1, -1):
    print(f'{bottles} bottles of beer on the wall, {bottles} bottles of beer.')
    print(f'Take one down and pass it around, {bottles - 1} bottles of beer on the wall')
print(f'1 bottle of beer on the wall, 1 bottle of beer.')
print('Take one down and pass it around, no more bottles of beer on the wall!')

Java

public class Bottles{
	public static void main(String[] args) {
		for (int numBottles = 99; numBottles > 1; numBottles--){
			System.out.println(numBottles + " bottles of beer on the wall, " + numBottles + " bottles of beer,");
			System.out.println("Take one down and pass it around, " + (numBottles - 1) + " bottles of beer on the wall, ");
		}
		System.out.println("1 bottle of beer on the wall, 1 bottle of beer");
		System.out.println("Take one down and pass it around, no bottles of beer on the wall");
	}
}

JavaScript

for (let bottleNum = 99; bottleNum > 0; bottleNum--) {
  if (bottleNum > 1) {
    console.log(`${bottleNum} bottles of beer on the wall, ${bottleNum} bottles of beer.`);
    if (bottleNum > 2) {
      console.log(`Take one down, pass it around, ${bottleNum - 1} bottles of beer on the wall.`);
    } else {
      console.log("Take one down, pass it around, 1 bottle of beer on the wall.");
    }
  } else if (bottleNum === 1) {
    console.log("1 bottle of beer on the wall, 1 bottle of beer.");
    console.log("Take one down, pass it around, no more beer on the wall!");
  }
}

See also



References


  1. Nyberg, Tim (2006). 99 Bottles of Beer on the Wall: The Complete Lyrics. Andrews McMeel Publishing. p. 112. ISBN 978-0-7407-6074-7.
  2. Baird, Kevin C. (2007). Ruby by example: concepts and code. No Starch Press. p. 25. ISBN 978-1-59327-148-0.
  3. Cohen, Norm (2005). Folk Music: A Regional Exploration. Greenwood Press. p. 60. ISBN 0-313-32872-2.
  4. Patton, Charlie (December 23, 1999). "Ever-annoying Andy Kaufman gets last laugh | Jacksonville.com". Archived from the original on 2018-02-01. Retrieved 15 Sep 2012.
  5. Stewart, Rich. "Rhythm and Booze: The Top 86 Drinking Songs". Modern Drunkard Magazine. Retrieved 2018-12-13.
  6. Byrd, Donald (2015-11-30). "Infinite Bottles of Beer: Mathematical Concepts with Epsilon Pain, Or: A Cantorial Approach to Cantorian Arithmetic and Other Mathematical Melodies" (PDF). Indiana University, School of Informatics. Retrieved 2020-03-26.
  7. Donald Byrd (2010). "Infinite Bottles of Beer: A cantorial approach to Cantorian arithmetic and other mathematical melodies". Math Horizons: 16–17.
  8. Knuth, Donald. "The Complexity of Songs" (PDF). Retrieved 2020-09-02.
  9. Team, 99 Bottles of Beer. "99 Bottles of Beer - Start". www.99-bottles-of-beer.net.

На других языках


- [en] 99 Bottles of Beer

[es] 99 Bottles of Beer

99 Bottles of Beer (en castellano: 99 botellas de cerveza) es una canción musical tradicional de los Estados Unidos y Canadá.

[ru] 99 бутылок пива

«99 бутылок пива» (англ. 99 Bottles of Beer) — традиционная песенка в США и Канаде. Песенка часто поётся во время длительных поездок, поскольку у неё повторяющийся и легко запоминающийся мотив, а её пение может занять много времени. Особенно часто песню поют дети во время продолжительных групповых поездок на автобусе, таких как экскурсия школьного класса или выезд на природу бойскаутов. Песенка происходит от традиционной британской песни «Десять зелёных бутылок».



Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.org внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2025
WikiSort.org - проект по пересортировке и дополнению контента Википедии