Red de conocimiento informático - Problemas con los teléfonos móviles - tarea de Python

tarea de Python

#?Python 3.6

#?Importar módulo aleatorio

importar?random

#?Definir una clase para la silla humana

clase ?ManAndBench :

def?__init__(self,?n_bench):

self.bench_num?=?n_bench

#?Ordene los números de asientos ocupados

self.break_point?=?[]

def?print_bench(self):

#?Defina la matriz totalmente 0 como banco

pt_str?=?[0?for?_?in?range(self.bench_num)]

#?Reescribe el número del banco de trabajo según el número de tareas ocupadas

for? i,?item?in?enumerate(self.break_point):

#?El primer [como número] del banco se asigna a la i+1ª persona

pt_str[item ]=?i+1

brk_num?=?len(self.break_point)

if?brk_num?==?0:

imprimir ("El banco está vacío:",?pt_str)

else:

print("{:2d} man: ? {}".format(brk_num,?pt_str))

def?next_man(self):

#?Si es la primera persona, usa ocupación aleatoria

if?len(self.break_point)?== ?0 :

fst?=?random.randint(0,?self.bench_num?-?1)

self.break_point.append(fst)

else:

brk_num?=?len(self.break_point)

#?Genere una matriz todo cero, que contiene el número de asientos ocupados + 1 recuento de longitud de posición vacía

block_size?=?[0 for _ in range(brk_num +?1)]

#?Calcular la longitud de cada posición vacía

tmp?=? 0

for?i?in?range(self.bench_num):

#?Si la posición i-ésima no está ocupada, agregue 1 a la matriz tmp

if ?i?not?in?self.break_point:

block_size[tmp]?+=?1

#? del siguiente intervalo

otro:

tmp?+=?1

#?Encuentre la longitud máxima y calcule el número de secuencia del bloque de longitud máxima

max_block? =?max(block_size)

max_index?=?block_size.index(max_block)

#?Calcular el punto de división del bloque de longitud máxima en todo el banco de trabajo

start?=?0

for?i?in?range(max_index):

start?+=?block_size[i]+ 1

self. break_point.append( start?+?max_block?//?2)

c?=?int(input("Ingrese el número de sillas: ") )

mientras?True:

m?=?int(i

nput("Ingrese el número de personas:"))

if?m?<=?c:

descanso

else:

print("El número de personas es mayor que el número de sillas, ¡vuelva a ingresar!")

#?Haga referencia a la clase definida

mab?=?ManAndBench (c)

#?Imprimir banco

mab.print_bench()

#?Imprimir una persona a la vez, un asiento a la vez

para?_?in?range( m):

mab.next_man()

mab.print_bench()

?