6. AQA A Level (7516-7517) SLR1 - 4.1.1 Intro to prog - Part 6, random numbers

00:05:26
https://www.youtube.com/watch?v=PukSMANHTpE

Summary

TLDREste vídeo final sobre programação básica aborda a geração de números aleatórios, destacando sua relevância em várias situações computacionais. Demonstra-se a criação de números aleatórios em Python, usando a biblioteca 'random' para gerar valores entre 1 e 6, que são atribuídos a variáveis como 'dado1', 'dado2' e 'dado3'. São exploradas as diferenças nos métodos de geração em Python, Visual Basic, C e Java. O vídeo também discute a natureza pseudoaleatória da maioria dos geradores de números em computadores, que geralmente precisam de um valor de semente para iniciar a geração, exemplificando com o tempo 'Unix EPO'. Para aplicar em criptografia, verdadeiros números aleatórios são necessários, obtidos por meio de "entropia" do mundo físico. A complexidade de gerar tais números é ilustrada através de um exemplo em Linux.

Takeaways

  • 🎲 Uso prático da biblioteca 'random' em Python.
  • 🔢 Comparação de geração de números em diversas linguagens.
  • 💡 Diferença entre pseudoaleatórios e verdadeiros.
  • 🔑 Importância da semente para variação de números.
  • 🖥️ Uso de EPO Unix como exemplo de semente.
  • 🌍 Entropia usada para números verdadeiramente aleatórios.
  • ⚙️ Exemplos reais em criptografia.
  • 🎛️ Complexidade em gerar verdadeiros números aleatórios em computadores.

Timeline

  • 00:00:00 - 00:05:26

    No vídeo, é abordado o conceito de geração de números aleatórios na programação. Inicia explicando a importância de gerar números aleatórios em diversos contextos computacionais e mostra um exemplo prático usando Python. O código demonstrado importa a biblioteca 'random' e gera três números aleatórios entre 1 e 6, que são atribuídos a variáveis diferentes. Destaca-se a existência de múltiplas formas de gerar números aleatórios em diferentes linguagens de programação, ilustrando métodos típicos em Python, Visual Basic, C e Java. Questões-chave para exame são levantadas, como os usos típicos da geração de números aleatórios e métodos de geração.

Mind Map

Mind Map

Frequently Asked Question

  • Quais são os usos típicos de programas de geração de números aleatórios?

    Números aleatórios são comumente usados em simulações, jogos e criptografia.

  • Como podem ser gerados números aleatórios em programação?

    Através de algoritmos em linguagens de programação, utilizando bibliotecas específicas como a 'random' em Python.

  • Os computadores podem gerar números verdadeiramente aleatórios?

    Não, computadores geralmente geram números pseudoaleatórios devido à sua natureza determinística.

  • O que é um valor de semente em geradores de números aleatórios?

    É um valor inicial que altera a sequência gerada, garantindo variação entre execuções.

  • Como são gerados números verdadeiramente aleatórios?

    Através da coleta de dados imprevisíveis do ambiente físico, como a decadência radioativa.

View more video summaries

Get instant access to free YouTube video summaries powered by AI!
Subtitles
en
Auto Scroll:
  • 00:00:00
    in this final video on programming
  • 00:00:02
    Basics we look at random number
  • 00:00:09
    generation so there's a number of
  • 00:00:11
    situations in computer programming where
  • 00:00:13
    you might want to generate a random
  • 00:00:16
    number and there's a few examples on the
  • 00:00:18
    screen
  • 00:00:21
    now so in order to look at this we're
  • 00:00:24
    going to provide you a practical example
  • 00:00:26
    of a program that uses a random number
  • 00:00:29
    and we've pop that program on the screen
  • 00:00:33
    here so first we're going to import the
  • 00:00:37
    random library of functions so in Python
  • 00:00:40
    that's import
  • 00:00:42
    random we then generate three random
  • 00:00:45
    numbers between 1 and six and assign
  • 00:00:49
    each number to a different variable in
  • 00:00:52
    this case dice one dice two and dice
  • 00:00:56
    three you're now free to use those
  • 00:01:00
    numbers as you see fit in the rest of
  • 00:01:02
    the
  • 00:01:06
    program now there are different ways of
  • 00:01:10
    generating random numbers in different
  • 00:01:11
    languages and depending on the language
  • 00:01:14
    you're studying you'll need to make sure
  • 00:01:16
    you know that so we've got some examples
  • 00:01:17
    on the screen here of how you Generate
  • 00:01:20
    random numbers in Python Visual Basic C
  • 00:01:24
    and Java and it's worth noting that in
  • 00:01:26
    some of these languages there are
  • 00:01:28
    multiple or different ways of generating
  • 00:01:30
    random numbers so we've just shown you
  • 00:01:32
    here a a typical way of generating a
  • 00:01:35
    random number in each of those
  • 00:01:39
    languages having watched this video you
  • 00:01:41
    should be able to answer the following
  • 00:01:43
    key questions what are typical uses of
  • 00:01:46
    random number generation programs and
  • 00:01:48
    how can random numbers be
  • 00:01:52
    generated that's all you need to know
  • 00:01:54
    for the exam if you want to know a
  • 00:01:56
    little bit more about how random numbers
  • 00:01:58
    are truly being generated by
  • 00:02:00
    deterministic machine stay listening to
  • 00:02:03
    beyond the spec
  • 00:02:06
    section so you may be wondering if a
  • 00:02:08
    computer can actually generate a truly
  • 00:02:10
    random number by Nature computers are
  • 00:02:13
    deterministic they work of algorithms
  • 00:02:16
    which are simply pieces of computer code
  • 00:02:19
    if a number is generated using a set
  • 00:02:21
    algorithm how random can it truly be on
  • 00:02:24
    the other hand is it possible to predict
  • 00:02:27
    a sequence of so-called random numbers
  • 00:02:30
    generated by a
  • 00:02:32
    computer well for most situations
  • 00:02:35
    generating pseudo random numbers is
  • 00:02:37
    enough running the program below does
  • 00:02:40
    appear to generate a random list of 10
  • 00:02:43
    numbers between 1 and
  • 00:02:47
    100 however if we ran the program
  • 00:02:50
    multiple times it would generate the
  • 00:02:52
    same sequence of numbers every
  • 00:02:58
    time pseudo random number generators
  • 00:03:01
    need to be supplied with what we call a
  • 00:03:03
    seed value a value that changes every
  • 00:03:07
    time the algorithm is run this value is
  • 00:03:10
    taken in by the algorithm and used in
  • 00:03:12
    the calculation to alter the list of
  • 00:03:15
    random numbers
  • 00:03:18
    produced one example would be to use the
  • 00:03:21
    value of the Unix EPO time each time the
  • 00:03:25
    function is called the Unix EPO is the
  • 00:03:28
    number of seconds that all laed since
  • 00:03:30
    January the 1st 1970 at midnight GMT not
  • 00:03:34
    counting leap seconds at the precise
  • 00:03:37
    moment of writing this sentence the Unix
  • 00:03:39
    Epoch time was as shown on the screen
  • 00:03:44
    now we use the code below to generate a
  • 00:03:48
    sequence of 10 random numbers between
  • 00:03:50
    one and 100 but at the precise moment we
  • 00:03:53
    call random the seed value is passed in
  • 00:04:00
    then we run the program again but this
  • 00:04:02
    time it obviously uses a different seed
  • 00:04:04
    value so this time the program outputs a
  • 00:04:07
    different set of 10 random
  • 00:04:11
    numbers generating pseudo random numbers
  • 00:04:13
    is fine in most cases for things like
  • 00:04:17
    cryptography we need to generate true
  • 00:04:19
    random numbers now true random number
  • 00:04:22
    generators gather what we call entropy
  • 00:04:25
    seemingly random data from the physical
  • 00:04:27
    world around them for example the
  • 00:04:29
    computer could measure the radioactive
  • 00:04:32
    decay of an
  • 00:04:34
    atom linux's random number generator
  • 00:04:37
    won't return a random number until it
  • 00:04:39
    gathers enough entropy to return a truly
  • 00:04:42
    random number we can see here a
  • 00:04:45
    screenshot of a process in Linux where
  • 00:04:48
    we're generating a cryptographic key and
  • 00:04:51
    it's asking the user to perform random
  • 00:04:53
    action such as typing on the keyboard
  • 00:04:55
    and moving the mouse and it's recording
  • 00:04:58
    those actions to generate a truly random
  • 00:05:02
    sequence as you can see generating
  • 00:05:05
    random numbers for computers is actually
  • 00:05:07
    quite a complex task
  • 00:05:11
    [Music]
Tags
  • números aleatórios
  • Python
  • pseudoaleatórios
  • criptografia
  • entropia
  • números verdadeiros