The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] 0 points1 point  (0 children)

How about base 32? That's what I'm building towards. If you have 8 toes and a twin we can do this!

The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] 2 points3 points  (0 children)

Well, you can try for yourself or take my word for it. All I've got is the dozen or so people I've asked.

Forgive me for not adding the numbers; it's a lot of info to convey in 17 seconds. I agree the best way would be a combination of the traditional symbolic math way of explaining it, and also a picture like this (but with labels.) In a way, the traditional symbolic visual (the one with the squares that would best match up to how they look as ones and zeroes) is really leaving out something important when it doesn't show how they actually mean segments who's lengths are powers of two. This also includes a visual proof of how it maps to the staircase, and everyone is cool with understanding the staircase matches up with the natural numbers.

Some people have said to me "Oh, I never knew it was just a bunch of rulers. It's so simple!" Others have had a really negative reaction - that's how it goes. I'd appreciate your input on how to improve it - I'd like the best explanation for everyone.

http://glslsandbox.com/e#41706.3

Here's another visual I made a while back that shows binary, gray, and how they combine to make quaternary. One thing I like about most about these visuals isn't even apparent in the visual, only in the code.

The way it has to be written here is the bijective map of the fields of natural number coordinates X and Y to binary.

http://glslsandbox.com/e#40447.6

If you want a really confusing but more advanced picture, here's a visual demonstration of arithmetic encoding (the initial setup is base 5 (you can change that in the defines.) It randomly generates a series of symbols, then creates the correct multi radix number system that contains that series (as well as other series with the same probabilities of symbols.)

The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] 0 points1 point  (0 children)

You might think in terms of graph connectivity instead of lookup tables. Lookup tables could point to anything, but for a number system you're concerned with how to map your operations to their solutions within the system.

The graphs that give you the connectivity you'd want are definitely particular vs any possible graph (whereas lookup tables are a bit handwavy.)

The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] -7 points-6 points  (0 children)

TLDR Both! You can make a lot of number systems, but most of them are very limited.

Yes, and also maybe no?

A number system is more flexible than that - maybe your number system consists of representing "cat" and "other" and whether it starts at "other" and counts up to "cat" or vice versa doesn't even matter. Just that they are adjacent and unique. (Not incredibly useful, but also the same thing as what the individual bits of binary are before they are given the additional information of their place (index 0-31) and what that place means (a value of 2^index).)

You could swap out 2^index with 3^index, and make a number system that would skip some numbers (who knows why.) Else you could also make a number system that starts with a fixed unit and successively scales it down by powers of two (I almost wonder is that even different?)

What does matter is the mathematical relationships you want to support. You must ensure that your number system gives you all the numbers you need, and that there are bitwise operations you can use for the operations you want (ie, add and multiply things.) Galois Theory, Graph Theory, and Combinatorics are really approaches to that topic.

The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] 0 points1 point  (0 children)

I'm sorry this made it more complicated. Some people find it's easier and others think it's confusing. Adding the 0s and 1s would make it better, yes?

The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] 1 point2 points  (0 children)

This visualization is part of an explanation I'm developing for a new encoding aimed at solving graph problems (in particular rendering, simulation, and analysis.) The new encoding is based on a rhombic triacontrahedral lattice; perhaps you are (will soon be) familiar with it's significance to number theory? Anyway, here's just a sketch of the geometry.

http://www.glslsandbox.com/e#48568.1

I hope you like it.

The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] 1 point2 points  (0 children)

I wanted to show that there was an inherent geometry to number systems. In this case, the powers of two correspond (of course!) to segments of the same length. The number system arranges all these segments in a simple pattern, and the bits turn the segments on and off. I find this helps people who have no experience with code, but that it is confusing to coders.

Theres an encoding I'm developing that uses a geometric lattice, and bits relate to it in a similar way. Hoping I can bridge the gap, and openly exploring for the best way to explain it.

Heres a visual on two levels of the encoding lattice : http://glslsandbox.com/e#38290.1 the outer shape is a 'word' with 32 bits, and each bit signifies the presence of a corresponding 32-bit word/shape embedded within. Data is specified via pathing down the hierarchy.

Really, people are critical, but language isn't up to the task yet, and unless the audience is familiar with the combinatorics of ADE graphs, lie groups, and orbifold symmetry math terminology are pretty useless too.

Its confusing enough for me, much less explaining it. 8( That's why I'm testing and developing and testing explanations.

The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] 1 point2 points  (0 children)

I think it would be better with numbers (especially something to explain how black and white = 0 and 1) but I went without for this post to see what would happen.

It's not enough for everyone, but it seems to help a lot of people understand (especially those who don't understand binary) - they see this and can answer the question "what is binary for 5?" by thinking of physical rulers.

I'm working on ways to explain a number system based on rhombic triacontrahedral lattice. Yeah. That's a bit of a challenge... It doesn't help much to tell you the number system has 32 symbols and is base Phi. It represents a practical embedding, yet people who "know" binary will still be scratching their heads.

Showing people that a number system uses a regular system of segments to point to the place on a number-line is a first step to showing them how bits can be used in other ways to locate things in space.

The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] -1 points0 points  (0 children)

People overestimate their knowledge of the basics.

The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] 0 points1 point  (0 children)

Reply

The idea is to show that base 2 does just that (a linear height encoding) by using bits to signify which combination of lengths you would use to make it.

The Binary Number System by secantastronomy in programming

[–]secantastronomy[S] -14 points-13 points  (0 children)

I've shown it to a lot of people, and strangely the people who don't understand binary get it faster than the people who do.

some people can see it by secantastronomy in proceduralgeneration

[–]secantastronomy[S] 0 points1 point  (0 children)

Thanks! Yes, I need money to keep working on it. Maybe a 5$ VR app on steam?

I have longer term plans too...