Выбор n чисел с фиксированной суммой

В некотором коде я хочу выбрать n случайных чисел в [0,1) , которые в сумме составляют 1 .

Я так и делаю путем независимого выбора чисел в [0,1) и их нормализации путем деления каждого из них на общую сумму:

numbers = [random() for i in range(n)]
numbers = [n/sum(numbers) for n in numbers]

My " за исключением того факта, что имя результирующего файла вложения в электронном письме остается пустым (файл открывается в Gmail как «noname»). Что я делаю не так?

file_name = RecordingUrl.split("/")[-1]
            file_name=file_name+ ".wav"
            urlretrieve(RecordingUrl, file_name)

            # Create the container (outer) email message.
            msg = MIMEMultipart()
            msg['Subject'] = 'New feedback from %s (%a:%a)' % (
From, int(RecordingDuration) / 60, int(RecordingDuration) % 60)

            msg['From'] = "noreply@example.info"
            msg['To'] = 'user@gmail.com'
            msg.preamble = msg['Subject']                
            file = open(file_name, 'rb')
            audio = MIMEAudio(file.read())
            file.close()
            msg.attach(audio)

            # Send the email via our own SMTP server.
            s = smtplib.SMTP()
            s.connect()
            s.sendmail(msg['From'], msg['To'], msg.as_string())
            s.quit()
10
задан Sean W. 11 April 2011 в 14:29
поделиться