another cyber-zen question hot off the keyboard

wile_e_coyote___vector_by_thoomashi all. sometimes feel am going in circles with this collatz thing. seems infinitely slippery & impossible to get traction sometimes. have tried to think sideways/outside the box so many times it leads to circus contortions. or maybe that movie pi? or [less alarmingly, more comically] feels like the roadrunner, wile e. coyote, and ACME™ dynamite. back to the drawing board. deja vu all over again. but thats how its gonna be solved someday right? sometimes to console myself I try to remember that rome wasnt built in a day, theres a reason its unsolved, & its only a matter of coming up with another idea/the next experiment.

this following idea just occurred to me today. its utterly simple yet it looks promising at the moment, or nanosecond. what do you think? it has a nice backstory as usual, somewhat in line with the last thread of thoughts, may write it up sooner or later. hint: its a case of “reverse engineering” and asking whether where there’s smoke, theres fire. and, why didnt I think of this a long time ago?

Cyber-Zen Question: what does this plot imply?

def f(x)

	c = 0
	x2 = x
	while (x2 >= x)
		while (x2.even?)
			x2 >>= 1
		end
		x2 = x2 * 3 + 1
		c += 1
	
	end
	return c
	
end
	

n = 5
l = []
i = 0
m = 0
c = 0
mx = 0
loop \
{
	x = f(n)
	n += 2
	m += x
	i += 1
	if (m > 1.125 * mx) then
		puts([i, m].join("\t"))
		$stdout.flush
		mx = m
		m = 0
		i = 0
		c += 1
		break if (c == 100)
	end
}

max_intervals

hint: its inspired partly by this idea, basically looking at “integrated noise at different scales”. the variation in noise at different scales shows the self-similarity/scale-invariant/power-law properties of the collatz problem & its link to fractal properties.




def f(x)

	c = 0
	x2 = x
	while (x2 >= x)
		while (x2.even?)
			x2 >>= 1
		end
		x2 = x2 * 3 + 1
		c += 1
	
	end
	return c
	
end

def add(j)
	n = 5
	i = 0
	m = 0
	c = 0
	t = 2 ** (j + 1)

	loop \
	{
		x = f(n)
		n += 2
		m += x
		i += 1
		if (i == t) then
			puts([t, m.to_f / t].join("\t"))
			$stdout.flush
			m = 0
			i = 0
			c += 1
			break if (c == 100)
		end
	}

end

10.times { |i| add(i) }

int_noise

1 thought on “another cyber-zen question hot off the keyboard

  1. Pingback: collatz reverse tree traversal/ visualization revisited | Turing Machine

Leave a comment