Universal Product Code of UPC is een systeem voor artikelnummering met nummers van 12 cijfers, met bijbehorende streepjescode, zie https://nl.wikipedia.org/wiki/Universal_Product_Code1.
Eén streepjespatroon bestaat uit 95 eenheidsstreepjes (smalle streepjes met een vaste breedte) die elk zwart (1) of wit (0) zijn. Het patroon begint met een Startcode “101”, daarna zes blokjes van 7 streepjes die elk een cijfer voorstellen, daarna de Middencode “01010”, daarna terug zes blokjes van 7 streepjes die elk een cijfer voorstellen, en tot slot de Eind-code “101”.
Een cijfer wordt dus voorgesteld door een blokje van 7 streepjes. De waarde van het cijfer wordt bepaald door de middelste 5 streepjes. Een cijfer in het Linkerdeel is van de vorm “0xxxxx1”, een cijfer in het Rechterdeel is van de vorm “1xxxxx0” (elke letter x staat voor 1 of 0).
De UPC-code kan je dus beschrijven als SLLLLLLMRRRRRRE en is een bitstring zoals hieronder getoond wordt:
Schrijf de hulpfunctie bitstring(n)
die een willekeurige bitstring aanmaakt van lengte n
.
Schrijf de functie get_UPC()
die een correcte UPC-code aanmaakt, waarbij de zes blokjes links, resp. rechts, een willekeurige bitstring bevat van de vorm “0xxxxx1”, resp. “1xxxxx0” (elke letter x staat voor 1 of 0). De blokjes links, resp. rechts mogen niet altijd identiek zijn! Gebruik de hulpfunctie bitstring
.
Omdat je willekeurige getallen moet genereren, zal je meestal een andere bitstring bekomen.
>>> bitstring(4)
"1001"
>>> bitstring(7)
"1010010"
Ook hier zal je meestal een andere bitstring bekomen.
>>> get_UPC()
"10100000110111111001101100010110100101010111110101100101010000101100110110111011110001001010101"
>>> get_UPC()
"10100100110111101000000100000110011011001111110101101111010110001001000100111010010101100000101"