In part because one of the things were trying to accomplish is to have you folks start noticing ambiguities in problem statements.
我们一直想要你们注意到,问题陈述中的不明确性,因为这就是生活中的计算。
And basically you solve biological problems using a computer and yeah.
主要是用计算机来解决生物问题。
So you're going to be able to take a description of a problem and map it into something computational.
因此你们能拣出,一个问题的主要描述,并将其编成计算性的东西。
It's just not possible to solve some of these problems by hand and this isn't even a domain that's necessarily into the world of CS but speaks to you the applicability of it all.
手工处理这些问题似乎有些不大可能,但这还不是,计算机科学要解决的主要问题,我们的目的只是为了告诉你它的用途。
Well now we know what needs to be calculated in order to determine that.
现在我们知道我们应该,计算什么来回答这个问题。
Once again, the computer revolution has served as an illustrative case study.
我们再次以计算机革命为例,来说明这个问题。
That's a complicated thing that accountants figure out and accountants find it difficult to define the earnings of a company, but they do something and they come up with a number.
会计们会计算这个复杂的问题,他们还会发现公司收益很难定义,但是他们会想办法,得出一个数字
The question is there a limit to the kind of calculator I don't care. You can bring a mainframe in on a truck.
问题是对计算器的种类有没有限制,我不在乎,你们可以用大卡车带个主机来。
So what we'll do is this problem here, which is let's calculate out what the wavelength of radiation n would be emitted from a hydrogen atom if we start at the n equals 3 level and we go down to the n equals 2 level.
我们来做这个问题,让我们来计算一下,从n等于3到,等于2能级氢原子辐射的波长是多少。
OK, and that leads now to an interesting question, which would be, "How do I build a mechanical process to capture that set of computations?"
好,现在出现了一个有趣的问题,就是“我怎么样才能建立计算机程序,去捕捉一系列的计算呢?
For all students, what we want to do is we want to give you an understanding of the role computation can and cannot play in tackling technical problems.
对所有学生来讲,我们想做的就是,给你们关于计算在能否解决技术问题中,所扮演角色的,认识。
And then, finally, the last tactical skill that you're going to get out of this course is you're going to have the ability to map scientific problems into a computational frame.
接下来,你们将带着走出这个课堂的,最后一个技能是,你们将学会,把科学问题,转换进计算机的框架之内。
Like how can you possibly figure that out with actually compelling a machine to do it for you and sure enough we chatted for a few moments, I kind of gently pointed out well it's kind of like problem 7 last year.
就好像去逼计算机为你做这件事,就能解决问题一样,我们确实谈过这个问题,我委婉地告诉他,这种情况与我们去年讲过问题7类似。
One of the things we want to help you do is identify the different classes of algorithms, what their costs are, and how you can map problems into the most efficient class to do the computation.
我们想要教会你们的事情之一就是,学会辨别不同种类的算法,它们的代价是怎么样的,以及怎么样把问题映射到,最有效的算法种类中去做计算。
Our goal is to take problems and break them down into these computational steps, these sequence of instructions that'll allow us to capture that process.
我们的目标是得到问题,然后将问题分解为这些计算步骤,这些指令集,可以让我们看到这个过程。
This is the sort of thing that people who do numerical programming worry about all the time. And there are a lot of a little tricks they use to deal with that, they'll perturb it a little bit, things like that.
这是一些做计算编程,要时刻注意的问题,当然有的时候我们还需要,应对一些假象,比如像这样被扰乱的。
And then we're going to turn to the question of efficiency. How do we measure efficiency of algorithms? Which is going to be a really important thing that we want to deal with, and we'll start it today, it's undoubtedly going to take us a couple more lectures to finish it off.
然后我们会回头继续讨论效率问题,我们如何计算算法的效率?,我们处理这些问题的时候,最重要的事情是什么?,我们今天要去讨论这个问题,毫无疑问我们要用,挺多节课来学习这个。
When we talk about space, what we usually refer to is, how much computer memory does it take to complete a computation of a particular size?
我们经常指的是,当我们计算,一个特定大小的问题的时候,要占用计算机的多少内存?
Well the problem is that the problems grow faster than the computers speed up.
问题就在于我们要处理的问题的复杂度,比计算机提速还要快。
I'm going to let t of b be the number of steps it takes to solve the problem of size b.
我会设立一个t作为,计算指数为b的时候解决问题需要的步骤数。
That's the question we're going to try and address. If we can do this, this is good, because first of all, it removes any questions about what machine I'm running on, it's talking about fundamentally, how hard is this problem, and the second thing is, it is going to do it specifically in terms of the input. Which is one of the things that I was worried about.
这是一个我们接下来要去,尝试和解决的问题,如果我们能做到的话会很不错,因为首先,它解决了结果可能和我,运行的计算机有关系的问题,因为这从根本了告诉了,我们这个问题的复杂度,第二件事情,就是这种方法可以依据输入的大小来计算,而这正是我最担心的地方。
It sounds like a hifalutin phrase you use when you're trying to persuade a VC to fund you. Right So to answer this, we really have to ask a different question, a related question; so, what's computation?
这听着很像当你试图,让VC语言帮你的时候说的大话,对,所以为了回答这个问题,我们需要提出一个难题,一个有关的问题;,因此,什么是计算相关呢??
Okay, not to dwell too much on math because you can very quickly bore someone in computer science by dwelling too much on math but it's useful even for logical constructs as we'll see with loops.
不要过于纠结于这些数学问题了,在计算机领域,你会很讨厌那些,在这上面钻牛角尖的人,但是对于那些,像循环这样的逻辑结构又是很有用的。
Because you'll have an appropriate level of confidence and competence in your ability to do computational problem solving.
因为你们在自己的能力范围内,拥有应对解决计算问题的,正当水平的自信心和竞争力。
Economics and Game Theory are now essential tools for understanding human thought and human behavior— those issues connecting to philosophy, computer science, anthropology, literature, theology, and many, many other domains.
经济学和博弈论如今已经成为了,理解人类思维和人类行为的重要方法,这些问题涉及哲学,计算机科学,人类学,文学,神学,以及许多其他的科学领域
The algorithm doesn't know that it's going to take this long to compute, it's just busy crunching away, trying to see if it can make it happen.
这很可能会发生,但是你知道的,算法本身并不知道,计算这个问题需要多长的时间,它就一直忙碌的算啊算。
And part of the reason for putting it up is that I want to, as much as possible, answer that question by separating out the mechanism, which is the computer from computational thinking. Right.
提出这个问题的原因有一部分在于,我想尽量,将计算机与,计算思维分开,来回答它。
For a couple of reasons. In some ways, this would be nicer, do expected cases, it's going to tell you on average how much you expect to take, but it tends to be hard to compute, because to compute that, you have to know a distribution on input.
关注最快的情况,在某种意义上来说,因为一些原因这样想挺不错的,当我们处理一个给定的问题,计算平均时间的时候,是很难计算的,因为你并不知道输入的分布情况,这些输入会是怎么样的呢?
People use bin packing algorithms to figure out, for example, how to load up container ships.
人么通常用装箱算法来计算这个问题,比如说怎样装载货船。
应用推荐