Talk:99 Bottles of Beer

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
WikiProject Songs (Rated Start-class)
WikiProject iconThis article is within the scope of WikiProject Songs, a collaborative effort to improve the coverage of songs on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start This article has been rated as Start-Class on the quality scale.
WikiProject Mathematics (Rated Start-class)
WikiProject iconThis article is within the scope of WikiProject Mathematics, a collaborative effort to improve the coverage of mathematics on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start This article has been rated as Start-Class on the project's quality scale.
 ???  This article has not yet received a rating on the project's priority scale.

Censored Variants[edit]

Nonalcoholic variants of the song (i.e. "bottles of milk") are popular in children's shows. Also, if the group of characters singing the song is particularly nerdy, you occasionally get variants such as "microchips" or "processors". I've heard so many variants of the song that I wasn't even sure what the original was (though I figured it probably had something to do with alcohol). I was surprised when I didn't see any mention of censored variants in the article. -- (talk) 21:38, 27 May 2018 (UTC)Reply[reply]

Use in computer science[edit]

I am deleting this silly claim:

Writing a 99 Bottles of Beer computer program, which outputs the lyrics to the song algorithmically, is a programming exercise; getting the plural correct in the final counting ("1 bottle of beer on the wall") can be awkward.

Awkward? Why? An implementation in pretty much any imperative language would look something like this C example:

  for (i=100; i>=0; i--) {
      if (i==1) {
          printf("1 bottle of beer on the wall.\n");
      } else {
          printf("%d bottles of beer on the wall.\n", i);

or, somewhat more elegantly,

  for (i=100; i>=1; i--) {
      printf("%d bottle%s of beer on the wall.\n", i, (i!=1 ? "s" : ""));

This is hardly rocket science. --Saforrest 04:24, 10 May 2006 (UTC)Reply[reply]

I agree the statement should be deleted, not notable enough. However, it can be a good programming exercise for beginning programming courses, when students are first taught about iterative loops. I remember it from my fifth grade BASIC course (on an Apple II in 1980 or so). For them, the conditional would be an additional challenge. (talk) 14:26, 5 June 2008 (UTC)Reply[reply]
How is this not notable? It is a VERY common programming exercise. The trivia section is already now extremely huge! Usage in programming is much more relevant than most of the current trivia. Ran4 (talk) 09:21, 22 November 2009 (UTC)Reply[reply]

I disagree. A program to print all verses of 99 bottles demonstrates at least two computer science principles: decrementing variables properly and compiler dependency. When singing the song, the "bottle count" variable is decremented in the middle of the verse, not at the end. Therefore, while it is tempting to use a for-loop that automatically decrements the bottle count, it is better to use a while loop that decrements the bottle count variable at the right time, i.e.

int count=99;

while (count > 0) {

System.out.println (count + "bottles of beer");


System.out.println ("If one of those bottles should happen to fall, there'd be " + count + "bottles of beer on the wall");


Properly understanding pre- and post-decrement operators one can dispense with the count-- line and say either (count-- + "bottles of beer") or "there'd be " + --count + "bottles of beer on the wall".

Also, if one tries to be more elegant, and puts the whole verse on one line, we end up with a compiler-dependent uncertainty (switching from Java to C):

while (count > 0) { printf ("%d bottles of beer on the wall\n %d bottles of beer\n If one of those bottles should happen to fall, there'd be %d bottles of beer on the wall\n\n",count, count, --count); }

The output of this one-line solution depends on the compiler, specifically whether it parses and evaluates variables in a line from left to right or right to left. I will dispense with adjusting the word "bottles" for plurality as mentioned above, and note that the above for-loop examples would start the song with "100 bottles of beer on the wall..." with the post-decrement operator used. (talk) 18:00, 15 October 2013 (UTC)Reply[reply]

Ten in a bed[edit]

I've heard this as "bears in a bed," with the final line being "I'm lonely!" I woulds guess I heard it on Sesame Street, but I'm not sure. Шизомби 22:57, 11 May 2006 (UTC)Reply[reply]

I think maybe you're referring to the one:
"Ten in the bed,
And the little one said,
'Move over! Move over!'
And they all moved over and one fell out!
(down to one)
One in the bed
And the little one said,
'I'm lonely!'"
-SigPig 01:46, 21 August 2006 (UTC)Reply[reply]

Same song, but, with slightly different lyrics. Instead of 'move over,' I've heard it as 'roll over.'

65635 bottles of beer on the wall[edit]

Hahahah - hilarious. Although it got reverted it deserves its place in WP:BJODN

  • A even more nerdish variant play with a misinterpretation of the negative notation of an integer in a computer memory : "0 bottles of beer on the wall, 0 bottles of beer, you take 1 down, pass it around, 65635 bottles of beer on the wall..." -

JameiLei 21:13, 17 April 2007 (UTC)Reply[reply]

Source of "99 Kettles of Soup" variant[edit]

I'm pretty sure this one came from an episode of "Garfield and Friends", but not knowing which episode, I can't cite it. Can anyone corroborate? (Or find an earlier example?) I'm sure it was used in the show, though, even if it existed earlier. Lurlock (talk) 16:53, 24 November 2007 (UTC)Reply[reply]

"99 Kettles of Soup" was sung in Garfield and Friends Season 4 Episode 65 entitled "Speed Trap" which originally aired 10/5/91

Source: — Preceding unsigned comment added by (talk) 01:33, 7 November 2014 (UTC)Reply[reply]

More Variants[edit]

I don't have any sources for these, but others may have heard this.

1) When returning to 99, "Go to the store and buy some more" doesn't fit rhythmically. I've always heard it as "Go to the store and pick up some more". However, I'm not sure if "to pick up something at the store" is a colloquialism.

2) It is possible to take more than one bottle off the wall: "Take 10 down, pass them around". Combined with the ability to pick any number up at the store, even if you haven't taken all of them down, you can jump quickly between numbers. Of course, this gets old a lot quicker. (talk) 14:34, 5 June 2008 (UTC)Reply[reply]

Re: #2 - you can 'take down' as many as you like - that's irrelevant - it's not part of the song, and the song's whole purpose is a 'time killer,' so, be that as it may, why would anyone even think of such as taking multiple bottles? By the same token - one could say, "I don't drink, I'm in recovery, there's still x bottles of beer on the wall,' or any such nonsense. It's pointless.


This article mentions similar songs such as Ten Green Bottles and Ten in the Bed as variants of 99 Bottles of Beer, but it is probably the other way round. — Chameleon 01:40, 13 July 2008 (UTC)Reply[reply]

Bugs in the Code[edit]

Another variation, involving fixing bugs in a computer program:

99 little bugs in the code
99 little bugs
Fix one of them, compile it again
100 little bugs in the code

The song continues infinitely, unless it is chosen to decrease the number of code errors instad of increasing them. —Preceding unsigned comment added by Gabso94 (talkcontribs) 01:42, 17 August 2008 (UTC)Reply[reply]

I've always thought it sounded better with the third line being "track one down, patch it around..." and then I've typically used more than 100 bugs (like 112 or something)... I almost think this deserves some sort of reference in the "Science" section, especially since the "Science" section only deals with computer science anyways Brettpeirce (talk) 18:25, 10 March 2016 (UTC)Reply[reply]

Danish variant?[edit]

There's a 99 Bottles of Milk song in the film Vikaren (2007) AKA The Substitute. Шизомби (talk) 22:22, 21 November 2008 (UTC)Reply[reply]

Should this be edited in for mention of its value as a programming-language teaching tool? [It does add simple loops/iteration to Hello World's display statements? It belongs in external links, sure, but I think it could use a small section of the main body of the article as well. KingAlanI (talk) 19:16, 26 December 2008 (UTC)Reply[reply]

The song itself[edit]

The song lyrics do not appear in the article at all. This is surprising especially becaues other songs' lyrics apppear in the article. Why? CarVac (talk) 16:12, 31 October 2009 (UTC)Reply[reply]

done. Vinithehat (talk) 16:33, 31 October 2009 (UTC)Reply[reply]

What about the origin of this song? I heard someone in the middle ages that was about to be executed was asked if he had any last words, and he sung a variant of this song, and that's how it got invented. The snare (talk) 21:01, 21 June 2010 (UTC)Reply[reply]

another variant[edit]

"if one of those bottles should happen to fall" vice "take one down, pass it around" (talk) 05:10, 19 March 2010 (UTC)RKHReply[reply]

Additional citations[edit]

Why and where does this article need additional citations for verification? What references does it need and how should they be added? Hyacinth (talk) 06:38, 10 March 2012 (UTC)Reply[reply]


I want the .ogg file to listen how to sing this song! --Valerio Bozzolan (talk) 20:45, 31 January 2014 (UTC)Reply[reply]

How it was invented[edit]

Is there any truth/evidence that this was invented/used be someone who was about to be executed, and they asked him if he had any last words, except with WAY more than 99 beers? The snare (talk) 15:16, 24 September 2017 (UTC)Reply[reply]

Go ahead and research that and get back to us with what you find. - SummerPhDv2.0 23:27, 16 October 2017 (UTC)Reply[reply]

"Restore maths and CompSci"[edit]

Yes, Andy Dingley, I can see that you "Restore(d) maths and CompSci". That's very helpful. I'm tempted to simply remove them again, but instead of giving the edit summaries I gave before, simply say "Remove maths and CompSci".

Instead, I'll leave this note here for a bit to see if you'd care to explain what part of my previous reasoning you disagree with and why. - SummerPhDv2.0 02:42, 17 October 2017 (UTC)Reply[reply]

As the person advocating the change from the stable version, the opportunity to put forward its case is open to you. Go for it.
Other than a one-line historical note, "First recorded in "Songs for bored children on long buggy rides (1862)" there is little else here of depth other than the mathematical and computational aspects. Hofstadter covered it in GEB, Knuth has used it to express complexity and computational scaling laws. Knuth is not only RS to the point that we have an article on Knuth, we have a separate WP article on his journal article.
We ought to expand the computation section though. As a standard pedagogical article for teaching programming with recursion and functional programming, emphasising the need to control loop boundaries and avoid OBOEs, this fulfils a similar role to Hello World! Our example here ought to include a more interesting and recursive language than BASIC though. Andy Dingley (talk) 09:58, 17 October 2017 (UTC)Reply[reply]
The edit summary gives you a chance to help others to understand the intention of your edit. Go for it.
I am not interested in adding material of poor quality to add depth. If a source isn't reliable or the material otherwise shouldn't be here, it...well...shouldn't be here. If that means the article lacks depth, we'll either need to delete, merge, live with a short article or find better sources.
I see you now agree that the Mighty Morphing Power Rangers and Malcolm in the Middle really don't tell us anything about the song. Yes, the shows are notable, yes, they used it and yes, we can cite them using it from the primary sources. If their use of the song is somehow meaningful, an independent reliable source would likely have commented on it, as is the case with Andy Kaufman's use.
Donald Byrd, OTOH, though not notable, used it and we can cite his journal magazine article as proof of that. We're actually citing his substantially longer unpublished version of that article so that we can use more of the versions he and his friends wrote. No one seems to have taken note of this seminal work, but yeah, we have an entire section dedicated to the versions some guy and his friends at Indiana University came up with in school one day.
It's been at least a decade since I've read any Hofstadter. I don't recall anything he might have said about this song. If you have material from him we can certainly discuss it.
The computer science section mentions Knuth. Much of the material, however, is from from "Oliver, Gregor and Stefan" or entirely unsourced. Knuth needs to be cited. Oliver, Gregor and Stefan's site doesn't seem to be reliable in any way and should probably go away again. The unsourced material needs sources or a quick trip to backspace oblivion. - SummerPhDv2.0 15:04, 17 October 2017 (UTC)Reply[reply]


The section "Mathematically inspired variants contains this sentence:

"Aleph-null is the size of the set of all natural numbers, and is the smallest infinity and the only countable one; therefore, even if an infinite aleph-null of bottles fall, the same amount remains."

Although the conclusion that "the same amount remains" is possible, it does not follow from the premise. For that reason, the word "therefore" is wrong, and so the entire sentence is wrong. 2601:200:C000:1A0:40E5:B781:E5B3:55B2 (talk) 04:42, 28 November 2021 (UTC)Reply[reply]

i'm not familiar with the terminology—David Eppstein, any chance you could weigh in briefly? theleekycauldron (talkcontribs) (they/them) 04:45, 28 November 2021 (UTC)Reply[reply]
The IP is saying that the premise and conclusion are both correct, but that the conclusion does not logically follow from the premise. I think it does follow. The premise is that is the smallest cardinality of an infinite set. If you form another set by subtracting one bottle, then the resulting set cannot be larger (because you subtracted), remains infinite (more or less by definition of what it means to be an infinite set), and cannot be smaller (because there is no smaller infinite set, the premise), so the number of bottles continues to equal as it did before (the conclusion). According to this reasoning, the conclusion does follow from the premise. —David Eppstein (talk) 07:10, 28 November 2021 (UTC)Reply[reply]

Code implementations[edit]

@RayDeeUx: Fundamentally, this isn't a programming article – it's a shanty that hasn't gotten a good treatment as an encyclopedic article. Maybe one coding implementation is useful, to show that it can be done, but this article isn't about the differences between various programming languages. theleekycauldron (talkcontribs) (she/her) 20:28, 12 March 2023 (UTC)Reply[reply]

also, bold reversions aren't really a thing – see WP:BRD :) theleekycauldron (talkcontribs) (she/her) 20:30, 12 March 2023 (UTC)Reply[reply]
Noted. Let's pick one language at random to keep and devote an invisible comment to explaining why other languages aren't included, so history won't repeat itself. Cheers, u|RayDeeUx (contribs | talk page) 21:28, 12 March 2023 (UTC)Reply[reply]
Sounds good to me – BASIC was my pick, since it's not in wide use today but is well-respected, but your call. Cheers :) theleekycauldron (talkcontribs) (she/her) 21:29, 12 March 2023 (UTC)Reply[reply]
Done, check revisions. Tried to ping in the edit summary but that didn't work. Cheers, u|RayDeeUx (contribs | talk page) 22:26, 12 March 2023 (UTC)Reply[reply]