2016-08-29 6 views
0

Я использую genetic algorithm toolbox в Python. Код:Как генерировать случайное число между 0 и 1 в наборе инструментов генетического алгоритма, Deap

toolbox.register("attr_bool", random.randint, 0, 1) обычно определяет случайные числа 0 и 1. Вопрос в том, что я ищу случайные числа между0 и 1. Я использовал toolbox.register("attr_bool", random.uniform(0, 1)), но он берет меня ошибку ниже: TypeError: the first argument must be callable

+0

Возможный дубликат [Случайное число между 0 и 1 в питоне] (http://stackoverflow.com/questions/33359740/random -number-between-0-and-1-in-python) –

+0

Посмотрите на второй ответ, а не на первый –

+0

Посмотрите на свои круглые скобки. Сравните их с круглыми скобками. – user2357112

ответ

2

ошибка говорит вам, что он должен быть в состоянии назвать первым аргументом, а это означает, что он должен быть в состоянии действовать в качестве функции. random.randint есть функция, но random.uniform(0, 1) нет. Это число с плавающей запятой. Чтобы исправить это, вы можете просто сделать анонимную функцию обертку с lambda ключевым словом:

toolbox.register("attr_bool", lambda: random.uniform(0, 1)) 
+0

'TypeError: целочисленный аргумент, ожидаемый, получил float'. –

+0

Может быть, мы должны изменить: –

+0

'toolbox.register (" individual ", tools.initRepeat, creator.Individual, toolbox.attr_bool, 100)' 'toolbox.register (" population ", tools.initRepeat, list, toolbox. individual) ' –

 Смежные вопросы

  • Нет связанных вопросов^_^