Untitled

                Never    
def create_optic_3_ex(seed=None, verbose=True):
    np.random.seed(seed)
    lambda_ = nice_round(np.random.uniform(350, 600), 2)  # nm
    a = nice_round(np.random.uniform(0.05, 0.3), 2) #m
    b = nice_round(np.random.uniform(0.05, 0.3), 2) #m
    
    tau = np.random.uniform(0.01, 0.8)
    m = np.random.randint(2, 9)
    
    r0 = np.sqrt(a * b * (2*m + tau) * lambda_ * 1.0e-9 / (a + b))
    
    dr = ( np.sqrt(a * b * lambda_ * 1.0e-9 / (a + b)) 
         * (np.sqrt(2*m + 1) - np.sqrt(2*m + tau)) )
    
    lines = []
    lines.append( ur"Между точечным источником A монохромного излучения с длиной волны %s "
                % texnics.latex(ur"\lambda = ", lambda_, dim.nm) )
                
    lines.append( ur" и точкой наблюдения B помещен экран с круглым отверстием радиуса %s."
                % texnics.latex(ur"r_0 = ", nice_round(r0 * 1000, 2), dim.mm) ) 
    
    lines.append( ur" Центр отверстия C лежит на отрезке АB, а экран перпендикулярен этому отрезку. "
                  ur" Найдите на какое минимальное расстояние [мм] нужно увеличить радиус отверстия, "
                  ur" чтобы возросла яркость в точке наблюдения (%s; %s)."
                % ( texnics.latex(ur"AB = ", nice_round(a + b, 2), dim.m)
                  , texnics.latex(ur"BC = ", nice_round(b, 2), dim.m) ) )
    task_tex = " ".join(lines)
    
    answer_tex = ur"К радиусу надо добавить %s мм." % texnics.latex(nice_round(dr * 1000, 4))
                  
    return dict( task_tex = task_tex
               , answer_tex = answer_tex
               , answer = dr * 1000 )

Raw Text