# bert.frink

``` // Program to calculate the probability of 2 names appearing in the same // movie. // // This program was written to bolster my probabilistic argument that the // Sesame Street characters Bert & Ernie were *not* named after the cab driver // and policeman in the movie "It's a Wonderful Life," and was rather just // a probabilistic coincidence, and that any two reasonably-common names // could be found with a reasonable probability in a reasonable number of // movies.  // // By the way, they weren't named after the movie. nameA = input["Enter name(s) A: "] freqA = frequency[nameA] println["Frequency of " + nameA + " (in either sex) is: " + (freqA -> "percent")] nameB = input["\nEnter name(s) B: "] freqB = frequency[nameB] println["Frequency of " + nameB + " (in either sex) is: " + (freqB -> "percent")] chars = eval[input["\nEnter number of characters in an average movie: "]] probA = probAlone[freqA, chars] probB = probAlone[freqB, chars] println["Probability of " + nameA + " and " + nameB + " appearing together in an average movie: "] println[probTogether[probA, probB] -> "percent"] movies = eval[input["\nEnter number of movies to compare: "]] println["Probability of " + nameA + " and " + nameB + " appearing in at least one of " + movies + " movies together:"] println[probTogether[probA, probB, movies] -> "percent\n"] println["These two names will tend to appear together at least once in every " + predictTogether[probA, probB] + " movies."] // Functions used by above program // Probability of a single name with frequency freq being in a movie with // chars characters... probAlone[freq, chars] := 1 - (1-freq)^chars // Probability those two characters appear together in n movies probTogether[probA, probB, movies=1] := 1 - (1 - probA * probB)^movies // Predict the number of movies to get a 50% probability predictTogether[probA, probB] := ceil[- ln / ln[1 - probA * probB]] // Contact www.placesnamed.com and fetch probabilities. frequency[names] := {    nameList = split[%r/[\s,\/]+/, names]    freq = 0    for [name] nameList    {       if (name == "")          next          // Ignore leading/trailing space       [let1, let2] = name =~ %r/(.)(.)/  // Get first 2 letters       url = "http://www.placesnamed.com/"+ let1 + "/" + let2 + "/" + name + ".asp"       pattern = regex[name + ".* popular ((?:fe)?male).*frequency is (.*?)%","i"]       for [line] lines[url]          if [sex, p] = line =~ pattern          {             println[name + " (" + sex + "): " + p + "%"]             freq = freq + eval[p] percent          }    }    return freq/2   // Return frequency for *either* sex } ```

This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 18260 days, 7 hours, 40 minutes ago.