РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
508 of 541 menu

Атрибут bit_generator

Атрибут bit_generator класса Generator предоставляет доступ к объекту генератора случайных битов, который используется для генерации случайных чисел. Этот атрибут позволяет взаимодействовать с низкоуровневым генератором, например, для изменения состояния генератора, получения текущего состояния или создания новых генераторов с тем же состоянием. Доступ к bit_generator полезен при необходимости точного контроля над процессом генерации случайных чисел.

Синтаксис

generator.bit_generator

Атрибут возвращает объект генератора битов, связанный с экземпляром Generator.

Пример

Давайте создадим генератор и обратимся к его атрибуту bit_generator, чтобы увидеть тип используемого генератора битов:

import numpy as np rng = np.random.default_rng(0) print(rng.bit_generator)

Результат выполнения кода:

Generator(PCG64) at 0x7F8A1C2B4D00

Пример

Атрибут bit_generator позволяет получить текущее состояние генератора в виде словаря:

import numpy as np rng = np.random.default_rng(5) state = rng.bit_generator.state print(type(state)) print(state.keys())

Результат выполнения кода:

<class 'dict'> dict_keys(['bit_generator', 'state'])

Пример

С помощью bit_generator можно восстановить состояние генератора из сохранённого ранее словаря, обеспечивая воспроизводимость результатов:

import numpy as np rng = np.random.default_rng(10) arr1 = rng.integers(0, 100, 5) state = rng.bit_generator.state rng2 = np.random.default_rng() rng2.bit_generator.state = state arr2 = rng2.integers(0, 100, 5) print(arr1) print(arr2)

Результат выполнения кода:

[37 33 91 69 78] [37 33 91 69 78]

Пример

Атрибут bit_generator также позволяет создавать новые генераторы, использующие тот же источник случайных битов, что и исходный:

import numpy as np rng = np.random.default_rng(0) bit_gen = rng.bit_generator rng2 = np.random.Generator(bit_gen) res1 = rng.random(3) res2 = rng2.random(3) print(res1) print(res2)

Результат выполнения кода:

[0.63696169 0.26978671 0.04097352] [0.01652764 0.81327024 0.91275558]

Обратите внимание, что генераторы используют один и тот же источник битов, но выдают разные значения, так как состояние генератора битов изменяется с каждым использованием.

Смотрите также

  • класс Generator,
    который предоставляет интерфейс для генерации случайных чисел
  • метод random,
    который генерирует числа из равномерного распределения
  • метод integers,
    который генерирует случайные целые числа
  • метод normal,
    который генерирует числа из нормального распределения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить