• Zink@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        1 month ago

        This was a fun one to look up. https://en.wikipedia.org/wiki/Shannon_number

        It looks like the number of valid chess positions is in the neighborhood of 10^40 to 10^44, and the number of atoms in the Earth is around 10^50. Yeah the latter is bigger, but the former is still absolutely huge.

        Let’s assume we have a magically amazing diamond-based solid state storage system that can represent the state of a chess square by storing it in a single carbon atom. The entire board is stored in a lattice of just 64 atoms. To estimate, let’s say the total number of carbon atoms to store everything is 10^42.

        Using Avogadro’s number, we know that 6.022x10^23 atoms of carbon will weigh about 12 grams. For round numbers again, let’s say it’s just 10^24 atoms gives you 10 grams.

        That gives 10^42 / 10^24 = 10^18 quantities of 10 grams. So 10^19 grams or 10^16 kg. That is like the mass of 100 Mount Everests just in the storage medium that can store multiple bits per atom! That SSD would be the size of a small large moon!

          • Zink@programming.dev
            link
            fedilink
            arrow-up
            0
            ·
            1 month ago

            If you don’t limit it to valid positions/arrangements it’s like 10^120. Closer to the “number of X in the observable universe” caliber of number.

            • PolarKraken@programming.dev
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 month ago

              So I think I was wrong, but you are too lmao.

              10120 is the number of valid game-trees, or valid ~80 move games.

              The much smaller number I quoted above, though, IS the valid positions, I was thinking it was actually the trimmed down “truly valid” game-tree sequences.

              Isn’t math fun? Limitless ways for us to be wrong!

        • CrazyLikeGollum@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          1 month ago

          Assuming your math is correct (and I have no reason to doubt that it is) a mass of 10^16 kg would actually be a pretty small moon or moderately sized asteroid. That’s actually roughly the mass of Mars’ moon Phobos (which is the 75th largest planetary moon in the Solar System).

  • wewbull@feddit.uk
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    At university I had an introductory C course where one assignment was to write a program that searched a 4x4 array of booleans for groups of cells set to true. Groups had to be rectangles, powers of 2 in width and height, and could wrap (i.e. they could go off the right edge and back on the left edge). We had to submit our programs by e-mail and printed form one week later. The prof. marked the paper versions and the TA ran and tested the digital. One slight problem, if you used the university owned printers, they charged for print outs. A few pence per page to cover costs and stop people abusing the rather nice high quality printers the computer faculty had.

    I’d always enjoyed programming and whilst C was new to me, using another language wasn’t a big problem. As I worked on it I realised the problem wasn’t as straightforward as I first thought, but I spent a few hours on it that evening and had a solution I was happy with.

    Penny was a student on the course whose approach to academia was memorization. She didn’t consume, process, and apply concepts. She just remembered them. Her favourite subject was maths. While the rest of us were struggling to derive some formula, she’d have just committed the process to memory.

    Penny was complaining a lot on this programming assignment. She didn’t understand why the assignment was so hard for an introductory class. I didn’t judge. I know some people find programming hard, but I didn’t feel I could help her much without jeopardising my own mark. There’s only so much uniqueness in a small program and if she just copied my solution we’d both get penalised for plagiarism. I did mention to her the cases I’d found tricky to get right was when two groups overlapped. If one group completely covered a smaller one you’d only report the bigger one, but if not you’d report both groups.

    I heard, through her boyfriend, that that week had involved many long evenings working on this assignment, but she turned up at the next class solution in hand. Obviously stressed, she carried a pile of paper of several hundred pages. She had written a program that consisted of an if-statement for every possible group size and location. About a hundred different possible groups. Each condition written with constant value indices into the array. To cope with the overlapping groups problem, checks for smaller groups also checked that no larger group also covered this area. No loops. No search algorithm. Just a linear program of if-statements.

    Apparently debugging this has been a nightmare. Cut and paste errors everywhere, but when I’d told her about overlapping groups aspect it had blown her mind. There always seemed to be a combination she hadn’t accounted for. Multiple times she thought she was done, only to find a corner case she’d missed. And just to kick her when she was down, she’d paid for multiple printouts, each one costing about £10 only to find a problem afterwards.

    This consistent A grade student who sailed through everything by relying on her memory had been broken by being asked to create an algorithm rather than remember one. She got credit for submitting a solution that compiled and solved some cases, but I doubt the professor got past the first page of that huge printout.

    Penny had worked really hard for that D.