ic (numeric)
tic (time)
ic + tic by andrew culver
version 2.1

How to IC and TIC

There are two programs available. IC produces integer numbers. TIC produces time values.

The interface is divided into three columns: input parameters, output, actions.

The right column contains the action buttons. Take a moment and think about your question before you toss.

The center column is a text area that will contain the tossed answers. You can toss multiple times, and each time your answers will be appended to the center text area.

TIP: You can also type anywhere in the text area, to label or comment on the questions and answers you are producing - useful for when you print or save your answers and refer to them later.

The left column is where you set the input parameters, that is, where you shape your question.

Both programs share these input paramaters:

numqstns: The number of questions you are asking. This is the quantity of answers you can expect.

bot: Defines the bottom of the range of answers.

top: Defines the top of the range of answers. Answers will fall between these two values, inclusively.

bias: An advanced feature we will explain later.

sort: Self-explanatory.

layout: Your answers can be formatted as a list, one per row, or a list, comma separated (these two are useful for pasting into code or other programs). Classic layout is how the very first versions of IC and TIC were layed out for easy printing and transport.


TIC has an extra paramater called "time units", which affects both input and output.

The numeric values of "bot" and "top" are multiplied by the defined "time units".

An example: If you set the time units to 20 seconds, and the range from 3 to 6, your answers will be one of 00:01:00, 00:01:20, 00:01:40, 00:02:00 (the bottom is 3 times 20 seconds = 1 minute, the top is 6 times 20 seconds = 2 minutes).

Another example: If you set the units to 5 seconds, and the range from 0 to 120, your answers will fall between 0 and 10 minutes, because there are 12 5-second intervals in a minute, and 120 of them in 10 minutes.

Not all values can go into the unit's numeric paramater. They have to divide into 60. Acceptable values are:



To understand how bias affects your answers, you have to know a little about how IC and TIC simulate the I Ching coin tossing oracle. Tossing the I Ching using coins requires three of them. One side is assigned a value of two, the other three. Once the coins are back on terra firma, you add up the values (twos or threes) to get a single value of 6, 7, 8, or 9. A 7 or 8 are twice as likely as a 6 or 9.

For the sake of simplicity in this explanation, you can think of 6 as equivalent to 7, and 9 as equivalent to 8 -- meaning, each toss is binary, having only two possible outcomes.

You toss the coins five more times, total six, then combine the six binary numbers into one, each occupying one bit of a six bit binary number. Two to the power of six = 64. There are 64 possible values for your outcome.

Following this procedure, IC and TIC first produce a set of answers between 1 and 64. If you specify some other range, we have to map 1-64 to it. The mapping is done using whole numbers only. If your range divides without any remainder into 64 or 4096 (64x64), our mapping is easy and even. But if not, we divvy up the range as equitably as possible -- meaning, there will be a slight, unavoidable tendancy towards some results over others.

Realizing that in many cases there has to be a bias (as small as we can make it), we decided to play with the idea of bias itself.

The bias:none setting behaves as described above -- the bias is a slight as possible.

The bias:bias setting internally tosses its own answers to divide 1 - 64 into as many parts as needed to map your range. The division sizes are not as equitable as possible, rather, they are whatever chance determines, and their differences could be slight, acute, or anything in between. What you end up with is a bunch of answers that, to a greater or lesser degree, favour some numbers, and disfavour others. The effect can be very subtle, or very noticeable.

Furthermore, these biased divisions do not necessarily pertain for the entire set of required answers. We toss again to find out how long the current bias pertains (up to a maximim of 64 answers), then, if there are more answers required, we toss again to get a different bias, which in turn pertains for up to the next 64 answers. In summary, the mapping is as biased as chance determines, and lasts as long as chance determines, reconfiguring itself repeatedly after chance-determined periods.

The bias:immobias setting acts in the same manner as the bias setting, except the first tossed bias is used for all answers: there is no change in bias, hence, immobias = immobile bias.

The bias:nonrepeat setting is biased in a completely different way: no answers can be the same as any previous answer. Note that nonrepeat demands that numqstns be less than or equal to the range.

Use cases
Chance operations