UiPath Community: Communication Mining from Zero to Hero
The efficient postcode
1. The efficient postcode
A postmaster in Zejtun had to invent an efficient postcode in such a manner that he
would not waste any numbers and that any number could uniquely identify one house
in his district.
His district consisted of 3 locations: Zejtun, Ramla and Bir-id-deheb, Zejtun had 200
houses, Ramla had 100 and Bir-id-deheb had another 100. Each house had 10 people
living in it.
At the post-office he had a pigeonhole shelving for 400 addresses. How could he invent
a code, such that each code would identify uniquely on residence, that from the number
the postman could directly know which location it was for.
So he gave the following addresses within each location:
Zejtun: from 000 to 199; Ramla: from 00 to 99; Bir-id-deheb: from 00 to 99;
Now he had to adapt the code so that each house in the district had a unique address, so
he adopted the following code:
Zejtun: from 0 to 199; Ramla: from 200 to 299; Bir-id-deheb: from 300 to 399
In this manner the postman knew that if the code started with 0 or 1 it was intended for
Zejtun, with 2 it was for Ramla and 3 it was for bir-id-deheb.
So he organised his pigeonhole shelving as follows:
ADDRESS LOCATION ADDRESS WITHIN LOCATION
[000] [000]
Zejtun ...
[199] [199]
[200] [00]
Ramla ...
[299] [99]
[300] [00]
Bir-id-deheb ...
[399] [99]
2. However at Ramla, the houses were small and could host only 5 persons. So he
combined two houses together, with the same address, in such a way that each address
would involve a whole family of 10 persons.
ADDRESS LOCATION ADDRESS WITHIN LOCATION
[000] [000]
Zejtun ...
[199] [199]
[200] [00] [00]
Ramla ... ...
[299] [99] [99]
[300] [00]
Bir-id-deheb ...
[399] [99]
He then had the idea to organise a demonstration to the people in each village to explain
the working of the new code. So he organised a minibus service which would pick a
particular family from each location and bring them to the post office for a
demonstration. What should be the capacity of this minibus? Obviously 10 since each
household consisted of 10 persons.
10-BIT
3. Zejtun
[000]
000
Zejtun sub post office
Starting with 0 or 1
[199]
199
[200] Ramla
Starting with 2
00
Ramla sub post office
[299] 99
Starting with 3
[300] Bir-id-Deheb
00
Bir-id-Deheb sub post office
[399] 99
4. Modern times had this postmaster program an automatic selector to sort the mail to
individual sub-post offices in each location.
0
1
2
3
Full Address Zejtun
A2 A2
A1 A1
A0 A0
Ramla
A1
A0
Bir-id-deheb
A1
A0
For example an address of 223 would mean house number 23 at Ramla, an address of
166 would mean house 166 in Zejtun and an address of 325 would mean house 25 in
Bir-id-deheb.
5. POSTMASTER GOT TRANSFERED
The big success in the code he had invented, made him famous, and with fame came all
the envy of his colleagues which started inventing rumours which led the post master
general to transfer him to Binland, a place where people could only count up to 1. In fact
these people did all their mathematics in binary (base 2) and to avoid confusion, in
speaking, they adopted a Hexadecimal notation (base 16).
In this land there were only two places, one called ROM and the other called RAM each
had 256 locations and the Central Postal Unit could address all 512 locations in this
land. So he had to adopt the postcode system to this new land.
Not being such a good mathematician, he had to get acquainted with binary numbers.
To do this he adopted a table which gave him the number of digits required to have a
number of unique addresses:
n = number of bits in address 2n = number of addressable locations
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024 ( called 1Kilo)
20 1024x1024 (called 1Mega)
30 1024x1024x1024 (called 1Giga)
40 1024x1024x1024x1024 (called 1Tera)
From this table he deducted that to be able to address all the 512 locations in his land he
had to have an address which is 9 bits long and since each place had 256 locations, each
had to have an address of 8 bits within the place.
Since each location contained 8 bits as the inhabitants of Binland were called, the bus
carrying the bits from each loction had to be 8 bit wide.
Soon he realised that this was an even simpler case than he had before
6. ROM
[000000000B] = [000H] [00000000B] = [00H]
Starts with 0
[011111111B] = [0FFH] [11111111B] = [FFH]
RAM
[100000000B] = [100H]
[00000000B] = [00H]
Starts with 1
[111111111B] = [1FFH] [11111111B] = [FFH]
The automatic machine he programmed was even Simpler:
0 ROM
A7 A6 A5 A4 A3 A2 A1 A0
A8
A7
A6
A5
A4
A3
A2
A1
A0
1 RAM
A7 A6 A5 A4 A3 A2 A1 A0
7. Just as he had launched the new system, the postmaster general called him to announce
that a new place called I/O had been added to his district, and that he had to cater for
their mail too.
After a few minutes of rage, the postmaster couldn’t be bothered to redo everything
from scratch. So he decided to keep the I/O on a separate map and introduced a new
signal stamp called M/IO’ which indicated if the mail was addressed to the Main portion
or the I/O section. Thus if this signal was 1 it would indicate that the address is referring
to the Main and if it was 0 the address would be referring to I/O.
M/IO’ 1 ROM
0 A7 A6 A5 A4 A3 A2 A1 A0
A8
A7
A6
A5
A4
A3
A2
A1
A0
1
1 A7 A6 A5 A4 A3 A2 A1 A0
RAM
0
A8 A7 A6 A5 A4 A3 A2 A1 A0
I/O
M/IO’ A8...A0 Section A8...A0 M/IO’ A8...A0 Section A7...A0
0 [000H] [000H] 1 [000H] [00H]
... ROM ...
[0FFH] [FFH]
I/O [100H] [00H]
RAM ...
[1FFH] [1FFH] [1FFH] [FFH]
8. This solution could accomodate an extra 512 locations in I/O. Yet being on a separate
map, locations in I/O felt a bit Isolated. Also this added extra complexity to the machine
which consequently made mail distribution slower. The postmaster also noticed that
512 addresses for I/O were superfluous and that actually there were only 256
addresses needed for this place.
A9...A0 Section A7...A0
So one fine day he decided it would be 000H] [00H]
better to map everything together on a ROM ...
single map. He noticed that to do this the [0FFH] [FFH]
address would need another bit since now [100H] [00H]
the locations had become 768 locations. RAM ...
With the 10th bit in the address added, he [1FFH] [FFH]
would be able to address 1024 locations [200H] [00H]
I/O ...
which would leave 256 locations for further
[2FFH] [FFH]
expansion.
[300H] [00H]
So he redrew the map from scratch. Expansion
[3FFH] [FFH]
CPU
ROM
A9
A7 A6 A5 A4 A3 A2 A1 A0
A8 I/O
A7 A7
A6 A6
A5 A5
A4 A4
A3 A3
A2 A2
A1 A1
A0 A0
A7 A6 A5 A4 A3 A2 A1 A0
0
00
RAM
01 1
10 2
11 3