Come on, you know, representing sets of integers, this is pretty dumb. Suppose I want to have a set of characters. How could I do that?
你知道的,表示整数的集合,这好傻啊,假设我有一组字母的集合?
Remember what range does, it gives me a set or a collection or a tuple of integers from 0 up to 1 - is the last value, so it's going to give me everything from 0 up to the total number of heads.
我将要在这个循环范围内加上鸡的数量,记住循环范围的目的,它给了我一个从一开始的整数集合,或者数组,这是最后的值。
So, a couple of weeks ago we proposed to swap two integers, and we couldn't at the time.
那么,几周前,我们提出交换两个整数,然而在那时,我们办不到。
So, for example, in this case, I had lists that I knew were made out of integers.
那么,比如在这个例子里,我有一个我知道。
In the case of integers it was easy.
情况非常简单,在字符的例子中。
So, for example: in this case, my list is a bunch of integers. And one of the things I could take advantage of, is I'm only going to need a finite amount of space to represent an integer.
列表是一系列整数,要注意的这里的优势能够,用有限的空间来表示整数,例如,如果我想要操作。
The answer is I can't. OK, in the simple case of integers I can, but in the case of something more complex like faces or fingerprints or passwords for that matter, it's hard to design a hash function that has completely even distribution, meaning that it takes any input into exactly one output spot.
答案是我不能,好吧,在简单的整数的例子中,我可以做到,但是在一些更复杂的场景中,比如面部,指纹,密码相关的问题中,很难设计一个哈希函数具备完全平均的分配,也就是说,做到对任一输入,可以准确地得到相应的唯一输出,因此在一个哈希问题中。
And in fact, now let me ask those two questions about this piece of code. First question is, for what values of integers-- we're going to assume integers-- but for what values of x does this code terminate? And the second question is, for what values of x does it give me back the right answer?
实际上,让我关于这块代码问两个问题,第一个问题是,对于什么样的整数值,我们会假设是整数,对于x的什么值程序,会最终终止?第二个问题是,对于x的什么值程序,会返回正确答案?
So the integers are totally ordered the reals are totally ordered lots of things are, the rationals are totally ordered.
对正数来说,这样的序列是排好序的,对实数也是如此,对很多事情都是如此。
So we've seen one example of this, this idea of walking through all the integers looking for the square root.
现在计算机速度很快了,我可以把这个数字设的更大点,计算机会去很快的做这个事情。
I think one of the classic ones for strings is called the Rabin-Karp algorithm. And it's simply the same idea that you have a mapping from your import into a set of integers.
我认为字符串哈希,最经典的是Rabin-Karp算法,它只是简单的相同概念,你有一个映射关系将你的输入映射成一组数字。
Well the idea of a hash, in fact, what's called a hash function is to have some way of mapping any kind of data into integers.
我要怎么做?实际上想法还是哈希,通过一个哈希函数,把任何种类的数据都映射成整数。
OK. And I'm going to look to see, is a particular element inside of that list, and again, I'll remind you, that's just giving me the integers from zero up to 9999 something or other.
一个又大又长的列表吧,好的,我打算查找列表中的一个特定元素,我会告诉你,我用的是0到大概是,9999左右的整数。
As you see here, some of the elements are strings and some of the elements are integers.
你也看到了,这儿的一些元素,是字符串一些元素是integer类型。
All right. I want to return to some non-scalar types. So we've been looking, the last couple of lectures, at floating pointing numbers and integers.
好,我们现在回到一些,非基本类型的话题来,我们在过去的几节课里,一直在研究浮点数类型和integer类型。
And keep going, until the square of one of those integers is greater than or equal to - sorry, just greater than x. OK, why am I doing that? When I get greater than x, I've gone past the place where I want to be.
如果还是比x小的话,跳到3,这么继续下去,直到一个整数的平方大于或者等于,对不起,是大于x,好,为什么我要这么做呢?,让我得到的整数的平方和。
Now I'm putting count in double quotes, not to make it a string, but to say, this is count generically. It could be counting one by one through the integers, it could also be taking a collection of data and going through them one by one. It could be doing counting in some other mechanism.
现在我把count用双引号标起来,不是说把它命名为一个字符串,而是说,这是一个通用的计数器,它可能是每一次减1的整数,也可能是拿一个集合的数据然后,一个一个的访问它们,也可能是以某种机制来计数。
First of all, two parameters. It's OK. All it says is, when I call this, I need to pass in two parameters for this to work. All right? Now, if I want to use that, I'm going to use a second piece of code here, called Barnyard. I'm going Barnyard to read in a couple of values, convert them into integers, and then I'm going to use solve to get a solution out.
注意我得到了什么,第一,两个参数,它的意思就是我调用这个函数,我得给它输入两个参数,明白了吗?,现在如果我要使用它我得用,这里的第二段代码,也叫,我将读入一组值,将它们转化为整型,然后我会用solve得到一个解决方案。
应用推荐