class Receipt:
def __init__(self):
self.number = 1
self.amount = 0
self.cost = 0
self.lines = []
def add_item(self, item, cost):
self.amount += 1
self.lines.append("%s - %s" % (item, str(cost)))
self.cost += cost
def new(self):
self.number += 1
def print(self):
if self.amount != 0:
print("Чек %s. Всего предметов: %s" % (self.number, self.amount))
for line in self.lines:
print(line)
print("Итого: %s" % self.cost)
print("")
self.new()
r = Receipt()
def add_item(item, cost, receipt = r):
receipt.add_item(item, cost)
def print_receipt(receipt = r):
r.print()
add_item('Блокнот', 100)
print_receipt()
add_item('Ручка', 70)
add_item('Булочка', 15)
add_item('Чай', 5)
# (Отменить чек) - этот чек не печатаем
Этот код печатает следующее:
Чек 1. Всего предметов: 1
Блокнот - 100
Итого: 100
Чек 2. Всего предметов: 1
Ручка - 70
Итого: 70
Чек 3. Всего предметов: 3
Булочка - 15
Чай - 5
Итого: 35
1. I = K * i
K = N₁ * N₂
I = N₁ * N₂ * i = 64 * 50 * 8 = 2⁶ * 5² * 2 * 2³ = 2¹² * 5² бит = 2⁹ * 25 байт = 12800 байт
2. Семь раз отмерь, один раз отрежь! - K = 33 символа
I = K * i = 33 * 16 = 33 * 2⁴ бит = 528 бит = 66 байт
3. I = K * i
K = N₁ * N₂ * N₃
I = N₁ * N₂ * N₃ * i = 16 * 50 * 64 * 16 = 2⁴ * 2 * 5² * 2⁷ * 2⁴ = 2¹⁶ * 25 бит = 2¹³ * 25 байт = 2³ * 25 Кбайт = 200 Кбайт
4. Пушкин - это наше все! - K = 20 символов
I = K * i = 20 * 8 = 160 бит = 20 байт
5. I = K * i
K₁ = N₁₁ * N₂ * N₃
K₂ = N₁₂ * N₂ * N₃
K₁ - K₂ = N₂N₃(N₁₁ - N₁₂)
N₁₁ - N₁₂ = 2
I₁ - I₂ = i(K₁ - K₂) = iN₂N₃(N₁₁ - N₁₂)
I₂ = I₁ - iN₂N₃(N₁₁ - N₁₂) = 2 * 2²³ - 2 * 2³ * 32 * 64 * 2 = 2²⁴ - 2⁵ * 2⁵ * 2⁶ = 2²⁴ - 2¹⁶ = 2¹⁶(2⁸- 1) = 255 * 2¹⁶ бит = 255 * 2¹³ байт = 255 * 2³ Кбайт = 2040 кБайт
class Receipt:
def __init__(self):
self.number = 1
self.amount = 0
self.cost = 0
self.lines = []
def add_item(self, item, cost):
self.amount += 1
self.lines.append("%s - %s" % (item, str(cost)))
self.cost += cost
def new(self):
self.number += 1
self.amount = 0
self.cost = 0
self.lines = []
def print(self):
if self.amount != 0:
print("Чек %s. Всего предметов: %s" % (self.number, self.amount))
for line in self.lines:
print(line)
print("Итого: %s" % self.cost)
print("")
self.new()
r = Receipt()
def add_item(item, cost, receipt = r):
receipt.add_item(item, cost)
def print_receipt(receipt = r):
r.print()
add_item('Блокнот', 100)
print_receipt()
add_item('Ручка', 70)
print_receipt()
print_receipt()
add_item('Булочка', 15)
add_item('Булочка', 15)
add_item('Чай', 5)
print_receipt()
add_item('Булочка', 15)
add_item('Булочка', 15)
# (Отменить чек) - этот чек не печатаем
Этот код печатает следующее:
Чек 1. Всего предметов: 1
Блокнот - 100
Итого: 100
Чек 2. Всего предметов: 1
Ручка - 70
Итого: 70
Чек 3. Всего предметов: 3
Булочка - 15
Булочка - 15
Чай - 5
Итого: 35
1. I = K * i
K = N₁ * N₂
I = N₁ * N₂ * i = 64 * 50 * 8 = 2⁶ * 5² * 2 * 2³ = 2¹² * 5² бит = 2⁹ * 25 байт = 12800 байт
2. Семь раз отмерь, один раз отрежь! - K = 33 символа
I = K * i = 33 * 16 = 33 * 2⁴ бит = 528 бит = 66 байт
3. I = K * i
K = N₁ * N₂ * N₃
I = N₁ * N₂ * N₃ * i = 16 * 50 * 64 * 16 = 2⁴ * 2 * 5² * 2⁷ * 2⁴ = 2¹⁶ * 25 бит = 2¹³ * 25 байт = 2³ * 25 Кбайт = 200 Кбайт
4. Пушкин - это наше все! - K = 20 символов
I = K * i = 20 * 8 = 160 бит = 20 байт
5. I = K * i
K₁ = N₁₁ * N₂ * N₃
K₂ = N₁₂ * N₂ * N₃
K₁ - K₂ = N₂N₃(N₁₁ - N₁₂)
N₁₁ - N₁₂ = 2
I₁ - I₂ = i(K₁ - K₂) = iN₂N₃(N₁₁ - N₁₂)
I₂ = I₁ - iN₂N₃(N₁₁ - N₁₂) = 2 * 2²³ - 2 * 2³ * 32 * 64 * 2 = 2²⁴ - 2⁵ * 2⁵ * 2⁶ = 2²⁴ - 2¹⁶ = 2¹⁶(2⁸- 1) = 255 * 2¹⁶ бит = 255 * 2¹³ байт = 255 * 2³ Кбайт = 2040 кБайт