/** This takes the number of people in all ranks of the U.S. Military and turns their likelihood into a percentile score and frequency. For each rank, the percentile score and frequency is the *bottom* of the rank. See: https://www.factmonster.com/us/military/us-military-ranks */ ranks = [["E-1", "Private", "Seaman Recruit", "Recruit", 53586], ["E-2", "Army Private/Marine Private First Class", "Seaman Apprentice", "Airman", 80531], ["E-3", "Army Private First Class/Marine Lance Corporal", "Seaman", "Airman First Class", 185923], ["E-4", "Corporal", "Petty Officer, Third Class", "Senior Airman", 261890], ["E-5", "Sergeant", "Petty Officer, Second Class", "Staff Sergeant", 248805], ["E-6", "Staff Sergeant", "Petty Officer, First Class", "Technical Sergeant", 175234], ["E-7", "Army Sergeant First Class/Marine Gunnery Sergeant", "Chief Petty Officer", "Master Sergeant", 96956], ["E-8", "Master Sergeant", "Senior Chief Petty Officer", "Senior Master Sergeant", 26912], ["E-9", "Sergeant Major", "Master Chief Petty Officer", "Chief Master Sergeant", 10629], ["O-1","Second Lieutenant", "Ensign", "Second Lieutenant", 24579], ["O-2", "First Lieutenant", "Lieutenant Junior Grade", "First Lieutenant", 28002], ["O-3", "Captain", "Lieutenant", "Captain", 72729], ["O-4", "Major", "Lieutenant Commander", "Major", 45168], ["O-5", "Lieutenant Colonel", "Commander", "Lieutenant Colonel", 28148], ["O-6", "Colonel", "Captain", "Colonel", 11542], ["O-7", "Brigadier General", "Rear Admiral", "Brigadier General", 444], ["O-8", "Major General", "Rear Admiral", "Major General", 285], ["O-9", "Lieutenant General", "Vice Admiral", "Lieutenant General", 132], ["O-10", "General", "Admiral", "General", 39]] sum = 0 for rank = ranks { rank.push[sum] sum = sum + rank@4 } table = new array for rank = ranks { percentile = 1-((sum-rank@5)/sum) // Percentile frequency = 1/((sum-rank@5)/sum) // Frequency table.push[[rank@0, rank@1, rank@4, format[percentile, "percent" ,3], "1/" + format[frequency, 1, 3]]] } println[formatTable[table]]