Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Weird and The Wonderful
  4. Needed a series of random numbers

Needed a series of random numbers

Scheduled Pinned Locked Moved The Weird and The Wonderful
loungeworkspace
15 Posts 9 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Bert Mitton

    I needed a series of random numbers, so I used the following code:

    Dim t As Integer = Environment.TickCount
    Dim n(9) As Double
    For i As Integer = 0 To 9
    Dim r As New Random(t)
    n(i) = r.Next
    Next

    You would not believe the facepalm I gave myself when I saw what I did wrong. :doh:

    R Offline
    R Offline
    RCoate
    wrote on last edited by
    #5

    I usually just use this[^] when I need random numbers.

    A A 2 Replies Last reply
    0
    • R RCoate

      I usually just use this[^] when I need random numbers.

      A Offline
      A Offline
      annathor
      wrote on last edited by
      #6

      Do you work for Sony, by any chance?

      1 Reply Last reply
      0
      • R RCoate

        I usually just use this[^] when I need random numbers.

        A Offline
        A Offline
        Allan Thomas
        wrote on last edited by
        #7

        That was my first thought when I saw the post. The only difference is that he needs to roll the dice 9 times :laugh:.

        1 Reply Last reply
        0
        • B Bert Mitton

          I needed a series of random numbers, so I used the following code:

          Dim t As Integer = Environment.TickCount
          Dim n(9) As Double
          For i As Integer = 0 To 9
          Dim r As New Random(t)
          n(i) = r.Next
          Next

          You would not believe the facepalm I gave myself when I saw what I did wrong. :doh:

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #8

          Don't be too hard on yourself. Most people never realize what the 'pseudo' in 'pseudo random number generator' is about. Just turn things around and it may even come in handy at times. Do you remember the old game Elite? The game had about five galaxies with 256 star systems each. Each system had its own coordinates, a description of the planet and inhabitants and individual prices and stocks for all goods. A good old C64 would have to sacrifice a good part of its tiny memory to store all that. I'm quite sure they did not. For example, you might generate a hashcode from the coordinates of a system. Then you initialize a random number generator with this hash code and use it to randomly generate the parameters of that system. Since the hashcode will always be the same for that system, the result will be the same every time and can be recreated at will. This completely eliminates the need to store any of the static information. Just the things which are variable, like the current stocks, need to be stored. For a 'small' game I'm working on I have made a star map with 4 billiion universes with up to 4 billion galaxies, each with 4 billion x 4 billion x 4 billion coordinate points. Each coordinate point has a chance to contain a solar system, each with one or more stars of different types, a variable number of planets of many types and the planets may also have moons. Memory or storage costs: The XML configuration files to work out a convincing star system.

          "Dark the dark side is. Very dark..." - Yoda ---
          "Shut up, Yoda, and just make yourself another toast." - Obi Wan Kenobi

          modified on Wednesday, September 14, 2011 9:43 AM

          B 1 Reply Last reply
          0
          • L Lost User

            Don't be too hard on yourself. Most people never realize what the 'pseudo' in 'pseudo random number generator' is about. Just turn things around and it may even come in handy at times. Do you remember the old game Elite? The game had about five galaxies with 256 star systems each. Each system had its own coordinates, a description of the planet and inhabitants and individual prices and stocks for all goods. A good old C64 would have to sacrifice a good part of its tiny memory to store all that. I'm quite sure they did not. For example, you might generate a hashcode from the coordinates of a system. Then you initialize a random number generator with this hash code and use it to randomly generate the parameters of that system. Since the hashcode will always be the same for that system, the result will be the same every time and can be recreated at will. This completely eliminates the need to store any of the static information. Just the things which are variable, like the current stocks, need to be stored. For a 'small' game I'm working on I have made a star map with 4 billiion universes with up to 4 billion galaxies, each with 4 billion x 4 billion x 4 billion coordinate points. Each coordinate point has a chance to contain a solar system, each with one or more stars of different types, a variable number of planets of many types and the planets may also have moons. Memory or storage costs: The XML configuration files to work out a convincing star system.

            "Dark the dark side is. Very dark..." - Yoda ---
            "Shut up, Yoda, and just make yourself another toast." - Obi Wan Kenobi

            modified on Wednesday, September 14, 2011 9:43 AM

            B Offline
            B Offline
            Bert Mitton
            wrote on last edited by
            #9

            The whole point was I know better... it's just sometimes I get ahead of myself when I type, and then when I see what I did I'm going "WTF?". Sometimes, you just know better, and do it anyway. :)

            L 1 Reply Last reply
            0
            • B Bert Mitton

              The whole point was I know better... it's just sometimes I get ahead of myself when I type, and then when I see what I did I'm going "WTF?". Sometimes, you just know better, and do it anyway. :)

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #10

              Sure, but then I would not really see it as something to be ashamed about. Such things do happen. Real code horrors come from people who don't know better and don't think twice about what they did. Many of them simply are inexperienced and will learn in time.

              "Dark the dark side is. Very dark..." - Yoda ---
              "Shut up, Yoda, and just make yourself another toast." - Obi Wan Kenobi

              B 1 Reply Last reply
              0
              • L Lost User

                Sure, but then I would not really see it as something to be ashamed about. Such things do happen. Real code horrors come from people who don't know better and don't think twice about what they did. Many of them simply are inexperienced and will learn in time.

                "Dark the dark side is. Very dark..." - Yoda ---
                "Shut up, Yoda, and just make yourself another toast." - Obi Wan Kenobi

                B Offline
                B Offline
                Bert Mitton
                wrote on last edited by
                #11

                That may be true, but there are days when you can identify me by the palmprint on my forehead. :laugh:

                1 Reply Last reply
                0
                • B Bert Mitton

                  I needed a series of random numbers, so I used the following code:

                  Dim t As Integer = Environment.TickCount
                  Dim n(9) As Double
                  For i As Integer = 0 To 9
                  Dim r As New Random(t)
                  n(i) = r.Next
                  Next

                  You would not believe the facepalm I gave myself when I saw what I did wrong. :doh:

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #12

                  Its quite rare that you get a post of "Look what I did", in this forum. Have a 5 :)

                  Computers have been intelligent for a long time now. It just so happens that the program writers are about as effective as a room full of monkeys trying to crank out a copy of Hamlet.

                  B 1 Reply Last reply
                  0
                  • L Lost User

                    Its quite rare that you get a post of "Look what I did", in this forum. Have a 5 :)

                    Computers have been intelligent for a long time now. It just so happens that the program writers are about as effective as a room full of monkeys trying to crank out a copy of Hamlet.

                    B Offline
                    B Offline
                    Bert Mitton
                    wrote on last edited by
                    #13

                    I screw up as much as anyone... I just consider it a plus that I notice when I do. Of course, if I don't notice a mistake, did I really screw up? I'm going with no. :)

                    1 Reply Last reply
                    0
                    • N Nagy Vilmos

                      I'm sure you know the err, but some other points: 0. If you need random, use at least two unrelated sources to seed the sequence. I use a combo of ticks from the clock and position of the mouse. 1. Within an application only ever instantiate a single randomiser and do it as the first step of the run.


                      Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett

                      M Offline
                      M Offline
                      Matty22
                      wrote on last edited by
                      #14

                      Why bother passing in a custom seed if you don't need one anyhow? The default constructor of random seeds itself appropriately

                      1 Reply Last reply
                      0
                      • B Bert Mitton

                        I needed a series of random numbers, so I used the following code:

                        Dim t As Integer = Environment.TickCount
                        Dim n(9) As Double
                        For i As Integer = 0 To 9
                        Dim r As New Random(t)
                        n(i) = r.Next
                        Next

                        You would not believe the facepalm I gave myself when I saw what I did wrong. :doh:

                        L Offline
                        L Offline
                        Luis D Aguilar
                        wrote on last edited by
                        #15

                        I think the error was naming the variables as "n", "t" or "i". ;P

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups