| Hosted by CoCalc | Download
Kernel: Python 2 (Ubuntu Linux)

This is my coding up of the Josephus problem. I am practicing juypter scripts for my digital signal processing class. -Grasshopper

import time def main(args): n = 30 # Number of Men sleep_time = 0.5 men = range(1,n+1) # Calculate Largest Power of 2 a = 0 for i in range(1, n+1): if (2**i > n): break a = i k = n - 2**a predict = 2*k + 1 print "Starting Set:", men print "Prediction:", predict, "survives" time.sleep(1) print "Begin Killing..." time.sleep(0.5) for i in range(0,n-1): spot = 0 killspot = spot+1 print men[spot], "kills", men[killspot] del men[killspot] # Move the killer to the back of the line men.append(men[spot]) del men[spot] time.sleep(sleep_time) print men[0], "survives!" return 0 if __name__ == '__main__': import sys main(sys.argv)
Starting Set: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30] Prediction: 29 survives Begin Killing... 1 kills 2 3 kills 4 5 kills 6 7 kills 8 9 kills 10 11 kills 12 13 kills 14 15 kills 16 17 kills 18 19 kills 20 21 kills 22 23 kills 24 25 kills 26 27 kills 28 29 kills 30 1 kills 3 5 kills 7 9 kills 11 13 kills 15 17 kills 19 21 kills 23 25 kills 27 29 kills 1 5 kills 9 13 kills 17 21 kills 25 29 kills 5 13 kills 21 29 kills 13 29 survives!