4 ms·
> you can't ever program those things since those operations cannot be expressed using finite instructions. And now you're telling me that Mathematica, Maple a
by klibertp 5y ago
> you can't ever program those things since those operations cannot be expressed using finite instructions.
And now you're telling me that Mathematica, Maple and the like don't exist. Yeah, we can't express the concepts directly, but if we're very good at one thing, it would be emulation.
> How would you express that?
Like this:
>>> from sympy import *
>>> i, n, m = symbols('i n m', integer=True)
>>> # For example, lets say you want to sum 1/N^2 for N from 1 to infinity.
>>> Sum(1 / n ** 2, (n, 1, oo))
∞
____
╲
╲ 1
╲ ──
╱ 2
╱ n
╱
‾‾‾‾
n = 1
Would do the same with the integral. There's even that strange elongated S and everything...
- Jensson 5y agoYou didn't program the sum, you just created a program that looks like the math symbols.
- klibertp 5y agoI said: emulation. You don't actually need to stretch your mind to infinity to reason about it, right? I mean, you're not a matrioshka brain the size of a star, right? (Just making sure) So if your mind can cope with infinities by using just the very finite storage accessible to you, what prevents computers from doing the same? Like this: >>> summation(1 / n ** 2, (n, 1, oo)) 2 π ── 6 Dunno, seems legit? How come it appeared, even though my computer has only 32gb of ram, waaaay too little to hold infinity? EDIT: obviously, I still didn't program it myself! I'm dumb, after all. But someone apparently did. EDIT2: and that person also made sure that even the dumber coders (like me) can use, and benefit from, the tool they wrote.
- Jensson 5y agoA computer understands instructions. You can give it instructs to loop and sum values. Those aren't instructions telling the computer what an infinite sum is. Math is about making humans understand such concepts, we have yet to be able to program those concepts. For example, when you write a sum in python then the computer will sum the values and do the work for you. But when you write an infinite sum like that, you the human still has to do all the math work figuring out what to do with it, so you didn't circumvent the need to do math at all. The computer doesn't understand the sum. You can program simple simple rules for it to try to simplify it, but it still isn't nearly as versatile as a skilled human. For example this problem is a basic problem from a first year course, it makes sense that someone programmed in the human derived solution for it, but they haven't actually programmed the logic for infinite sums into the computer.
- klibertp 5y ago> The computer doesn't understand the sum. That's obvious? Computers don't understand anything. They're just machines. What did you expect? > you the human still has to do all the math work figuring out what to do with it Yeah. But with this tool, as dumb as I-the-human am, I am able to do that math even if I don't understand it, but more importantly I also have a much better chance of understanding what's happening. That's because the explanation is close to the place where it's needed (in a docstring, one key press away) and it is expressed in a way that I'm most familiar with (as code). You're going to tell me that if I want to use math, I have to let go of every preconception I had and crawl into Plato's cave, to see the light in the darkness. I'm too dumb to do this, unfortunately, and a little bit too busy. It took me almost five years to really master C++ programming after all, while you skimmed Stroustrup's book and went on to write Qt the next day. > but they haven't actually programmed the logic for infinite sums into the computer They did. Just not the whole of it. Are you sure it's impossible to improve to the point where a skilled human no longer holds the definitive advantage? Computers can't understand anything. But they are very good at blindly following the rules. The question is not what to do to make computers understand infinity, but what set of rules can emulate the real thing well enough. We're getting there. Maybe in another 100-200 years CS will swallow maths, who knows?
- Jensson 5y ago> That's obvious? Computers don't understand anything. They're just machines. What did you expect? They do arithmetic's perfectly. > You're going to tell me that if I want to use math, I have to let go of every preconception I had and crawl into Plato's cave, to see the light in the darkness. No, math is a huge with an extreme amount of flexibility and power. You have lists of solutions like this one, you can add those in a program and then have the program look them up and spit out answers, with maybe some simple algebra testing: https://en.wikipedia.org/wiki/List_of_mathematical_series https://en.wikipedia.org/wiki/List_of_mathematical_series But nobody will be able to just program all solutions to all math problems like that, or give you a bible of everything to look up, as nobody knows what math is useful to you specifically. This is why every field that applies math tend to create their own subfield in math, like mathematical physics or chemistry or statistics or computer science. They create their own compendiums of useful notation and results that you can use. Nobody understands even a fraction of all of that and where it is useful, instead you will have to understand what discipline the paper you are reading is coming from, usually noted somewhere on the paper, and then look that up. For someone doing computer science you mostly look at the subfields statistics, probability, combinatorics and algorithmic complexity. Most of those papers will be written by people who do math mostly on the side though, not pure mathematicians. Pure mathematicians mostly works on problems that are too abstract for programming. (Pure vs applied, probability statistics and combinatorics are examples of applied math fields). Edit: So from my perspective the main problem you have is that CS professors have yet fleshed out and formalized the subfield Computer Science math. When I studied higher level physics all the math was taught by physics professors, since mathematicians doesn't understand that math, it is mostly developed by physicists. Why doesn't CS do the same? You can't expect mathematicians to do that work for your field, as there are too many fields depending on math and too few mathematicians to handle everything.