答案

算法导论 5.1习题

﹥>﹥吖頭↗ 提交于 2020-12-17 08:54:35
5.1-1 该题个人认为有问题,这个过程只是一个最优次序问题,如果出现了次优比较时,该算法无法完成,所以总次序是应该是不能得到的。 5.1-2 可以利用前面分治法(Devide and Conquer)来求,将(a,b)范围二分缩小范围,因每次范围选取的概率为1/2,所以二分缩小的策略是可行的。最后只缩小为某个具体的数值。 同时,看到另一种解法,因为Random(a,b)的实质是以同概率随机取得[a,b)区间上的整数,则将每个整数表示为对应二进制,这样利用Random(0,1)来得到对应的整数,但是个人感觉需要考虑的边界条件比第一种策略要多很多,有兴趣可以仔细实现下。 5.1-3 这个题自己觉得挺逗,不是很难,而是训练你的思维是否僵化了,一开始我也是在找一个函数f,使得f(p)=f(1-p)=1/2对任意p成立,而实际上除非是常函数,不然做不到。然后就想了想别的办法,虽然每次0,1的随机概率不同,但是对于出现(0,1)和(1,0)时,0和1的随机选取概率都是1/2。即 int getRandom(){ while(true){ int x = random(0,1); int y = random(0,1); if(x != y){ return x; } } } 来源: oschina 链接: https://my.oschina.net/u/111639/blog/42263

前端开发面试题--html

☆樱花仙子☆ 提交于 2020-02-29 02:34:57
Doctype作用?严格模式与混杂模式如何区分?它们有何意义? doctype是告诉浏览器我的html使用哪个版本的html协议写的,让浏览器按照神明的协议执行。 区别:严格模式是浏览器根据规范去显示页面,混杂模式是一种向后兼容的方式去显示。 意义:决定浏览器如何去渲染网站即浏览器使用哪种规范去解析网页。触发: 浏览器根据doctype是否存在和使用的是那种dtd来决定。 HTML5 为什么只需要写 <!DOCTYPE HTML>? 因为h5不基于SGML,因此不需要对DTD进行引用。但是需要doctype来规范浏览器的行为(让浏览器按照他的方式来运行)。而html4.0.1基于SGML,需要对DTD进行引用,才能告知浏览器文档所使用的文档类型 行内元素有哪些?块级元素有哪些? 空(void)元素有那些? css中规定,每一个元素都有display属性。确定该元素的类型,每一个元素都有默认的display值,比如div的display为block:块级元素。span的display为inline:行内元素。 行内元素有:a b span img input select strong 块级元素:div ul li ol p dl dt dd h1 h2 h3… 知名的空元素: <br> <hr> <img> <input> <link> <meta> 鲜为人知的还有: <area>

C Primer Plus 第4章 字符串和格式化输入/输出 编程练习及答案

跟風遠走 提交于 2019-11-29 03:46:19
1、编写一个程序,要求输入名字和姓氏,然后以“名字,姓氏”格式输出。 #include int main() { char fname[40],lname[40]; printf("Enter your firstname.\n"); scanf("%s",fname); //注意lname与fname是数组,在scanf()时无需加&符号。 printf("Enter your lastname.\n); scanf("%s",lname); printf("Welcome,%s, %s\n",lname,fname); return 0; } 2、编写一个程序,要求输入名字,并执行以下操作: a.把名字引在双引号中打印出来; b.在宽度为20个字符的字段内打印名字,并且整个字段引在引号内; c. 在宽度为20个字符的字段的左端打印名字,并且整个字段引在引号内; d.在比名字宽3个字符的字段内打印它。 #include #include int main() { char name[40]; int width; printf("Enter you name.\n"); scanf("%s",name); printf("A:\"%s\".\n",name); printf("B:\"%20s\".\n",name); printf("C:\"%-20s\".\n",name);