Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Public domain code originally written by Sophie Kirschner (sophiek@pineapplemachine.com)
- # constructs a tree out of possible collatz sequences
- def do_steps( recursion, initial = 1 ):
- return ( initial, do_step( recursion, initial ) )
- def do_step( recursion, value ):
- even = value * 2
- odd = ( value - 1 ) / 3.0
- odd = int( odd ) if odd % 2 == 1 else 0
- next_values = [ even, odd ]
- result = []
- for nvalue in next_values:
- if( nvalue > 1 ):
- next_step = do_step( recursion - 1, nvalue ) if recursion else None
- result.append( ( nvalue, next_step ) )
- return result
- # output results of do_steps to the console
- def output_steps( results, prefix = '' ):
- print prefix + str( results[0] ) + ':'
- if results[1]:
- for result in results[1]:
- output_steps( result, prefix + '. ' )
- # do stuff!
- output_steps( do_steps( 16 ) )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement