当前位置: 首页 > news >正文

厦门做网站优化电子商务市场营销

厦门做网站优化,电子商务市场营销,北京网站建设公司 蓝纤科技,郑州企业建设网站技术Q1: Compose 编写一个高阶函数composer#xff0c;它返回两个函数func和func_adder。 func是一个单参数函数#xff0c;它应用到目前为止已经组合的所有函数。这些函数将首先应用最新的函数#xff08;参见doctests和示例#xff09;。 func_adder用于向我们的组合添加更多…Q1: Compose 编写一个高阶函数composer它返回两个函数func和func_adder。 func是一个单参数函数它应用到目前为止已经组合的所有函数。这些函数将首先应用最新的函数参见doctests和示例。 func_adder用于向我们的组合添加更多函数当调用另一个函数g时func_adder应该返回一个新的func和一个新的func_adder。 如果没有参数传入composer则返回的func是恒等函数。 举例来说 add_one lambda x: x 1square lambda x: x * xtimes_two lambda x: x x f1, func_adder composer()f1(1) 1 f2, func_adder func_adder(add_one)f2(1) 2 # 1 1 f3, func_adder func_adder(square)f3(3) 10 # 1 (3**2) f4, func_adder func_adder(times_two)f4(3) 37 # 1 ((2 * 3) **2) 提示你的func_adder应该返回两个参数func和 func_adder. 我们知道什么函数返回func和func_adder 这个提示真的神来之笔由于compose返回 func func_adder这两个函数 所以func_adder应该是以新func为形参的compose函数 func            lambda x:func(g(x))        g(x)作为原函数的参数x        逐级嵌套 如图 def composer(funclambda x: x):Returns two functions -one holding the composed function so far, and anotherthat can create further composed problems. add_one lambda x: x 1 mul_two lambda x: x * 2 f, func_adder composer() f1, func_adder func_adder(add_one) f1(3)4 f2, func_adder func_adder(mul_two) f2(3) # should be 1 (2*3) 77 f3, func_adder func_adder(add_one) f3(3) # should be 1 (2 * (3 1)) 99def func_adder(g):*** YOUR CODE HERE ***return composer(lambda x:func(g(x)))return func, func_adder pass: PS D:\pycharm\python document\CS61A class homework\hw03 python3 ok -q composerAssignment: Homework 3 OK, version v1.18.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Running tests--------------------------------------------------------------------- Test summary1 test cases passed! No cases failed.Q4: Count change Once the machines take over, the denomination of every coin will be a power of two: 1-cent, 2-cent, 4-cent, 8-cent, 16-cent, etc. There will be no limit to how much a coin can be worth. Given a positive integer total, a set of coins makes change for total if the sum of the values of the coins is total. For example, the following sets make change for 7: 7 1-cent coins5 1-cent, 1 2-cent coins3 1-cent, 2 2-cent coins3 1-cent, 1 4-cent coins1 1-cent, 3 2-cent coins1 1-cent, 1 2-cent, 1 4-cent coins Thus, there are 6 ways to make change for 7. Write a recursive function count_change that takes a positive integer total and returns the number of ways to make change for total using these coins of the future. Hint: Refer the implementation of count_partitions for an example of how to count the ways to sum up to a total with smaller parts. If you need to keep track of more than one value across recursive calls, consider writing a helper function. 分析作者把此题核心分为两个函数 divide函数 作用 求 对于total 满足1------小于total的最大2的倍数 面值美分  的排列种类 核心 将一种情况分为两种情况即 当前有最大数的排列数量        和        无当前最大数的数量 举个例子如图(函数实现过程) max1 求的是 小于total的最大2的倍数 def divide(total,num):if num1:return 1if totalnum:return divide(total,num/2)return divide(total-num,num)divide(total,num/2)def max1(total):if total1:return 1if total0:return max1(total//2)*2 def count_change(total):Return the number of ways to make change for total. count_change(7)6 count_change(10)14 count_change(20)60 count_change(100)9828 from construct_check import check # ban iteration check(HW_SOURCE_FILE, count_change, [While, For])True*** YOUR CODE HERE ***if total1:return 1return divide(total,max1(total))pass结果 PS D:\pycharm\python document\CS61A class homework\hw03 python3 ok -q count_changeAssignment: Homework 3 OK, version v1.18.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Running tests--------------------------------------------------------------------- Test summary1 test cases passed! No cases failed.Q5: Towers of Hanoi 一个经典的难题称为塔的河内是一个游戏包括三个 杆和许多不同尺寸的圆盘圆盘可以在任何杆上滑动。 这个谜题从n磁盘开始磁盘按照大小的升序整齐地堆叠在一起 start棒顶部最小形成圆锥形。 拼图的目的是将整个堆叠移动到end杆 遵守以下规则 一次只能移动一个磁盘。每次移动包括从其中一根杆上取下顶部最小的圆盘 把它滑到另一个杆上在其他可能已经被 存在于该杆上。不能将磁盘放在较小磁盘的顶部。 完成move_stack的定义它将打印出执行以下操作所需的步骤 将n盘从start棒移动到end棒不违反 规则提供的print_move函数将打印出移动 从给定的origin到给定的destination的单个磁盘。 提示在一张纸上画出几个带有各种n的游戏并尝试 找到一个适用于任何n的磁盘运动模式。在你的解决方案中 当你需要移动任何数量的 小于n的圆盘从一个棒到另一个棒。如果你需要更多帮助 以下提示。 分析 核心拆分思想动态规划dp 对于n个盘子需要从起点到终点的问题可以转化为 1.将n个盘子需要从起点到非起点或终点, 2.第n个盘子从起点到终点 3.再将n-1盘子放到终点的过程 1其中对于n2的情况即递归终点需要模拟出相应过程 注意n1需要额外说明 如图所示 def print_move(origin, destination):Print instructions to move a disk.print(Move the top disk from rod, origin, to rod, destination)def move_stack(n, start, end):Print the moves required to move n disks on the start pole to the endpole without violating the rules of Towers of Hanoi.n -- number of disksstart -- a pole position, either 1, 2, or 3end -- a pole position, either 1, 2, or 3There are exactly three poles, and start and end must be different. Assumethat the start pole has at least n disks of increasing size, and the endpole is either empty or has a top disk larger than the top n start disks. move_stack(1, 1, 3)Move the top disk from rod 1 to rod 3 move_stack(2, 1, 3)Move the top disk from rod 1 to rod 2Move the top disk from rod 1 to rod 3Move the top disk from rod 2 to rod 3 move_stack(3, 1, 3)Move the top disk from rod 1 to rod 3Move the top disk from rod 1 to rod 2Move the top disk from rod 3 to rod 2Move the top disk from rod 1 to rod 3Move the top disk from rod 2 to rod 1Move the top disk from rod 2 to rod 3Move the top disk from rod 1 to rod 3assert 1 start 3 and 1 end 3 and start ! end, Bad start/end*** YOUR CODE HERE ***n_s0if 1!start and 1!end:n_s1if 2!start and 2!end:n_s2if 3!start and 3!end:n_s3if n1:print_move(start,end)returnif n2:print_move(start,n_s)print_move(start,end)print_move(n_s,end)returnmove_stack(n-1,start,n_s)print_move(start,end)move_stack(n-1,n_s,end)pass情况 PS D:\pycharm\python document\CS61A class homework\hw03 python3 ok -q move_stackAssignment: Homework 3 OK, version v1.18.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Running tests--------------------------------------------------------------------- Test summary1 test cases passed! No cases failed.Q6: Anonymous factorial The recursive factorial function can be written as a single expression by using a conditional expression. fact lambda n: 1 if n 1 else mul(n, fact(sub(n, 1)))fact(5) 120 However, this implementation relies on the fact (no pun intended) that fact has a name, to which we refer in the body of fact. To write a recursive function, we have always given it a name using a def or assignment statement so that we can refer to the function within its own body. In this question, your job is to define fact recursively without giving it a name! Write an expression that computes n factorial using only call expressions, conditional expressions, and lambda expressions (no assignment or def statements). Note in particular that you are not allowed to use make_anonymous_factorial in your return expression. The sub and mul functions from the operator module are the only built-in functions required to solve this problem: from operator import sub, muldef make_anonymous_factorial():Return the value of an expression that computes factorial. make_anonymous_factorial()(5)120 from construct_check import check # ban any assignments or recursion check(HW_SOURCE_FILE, make_anonymous_factorial, [Assign, AugAssign, FunctionDef, Recursion])Truereturn lambda n : (lambda x, function : 1 if x 1 else x * function(x - 1, function))(n, lambda x, function : 1 if x 1 else x * function(x - 1, function)) 分析 from operator import sub, mul​def make_anonymous_factorial():def function(x, function):if(x 1):return 1else:return function(x - 1, function) * xreturn lambda n : function(n, function) 我采取了High-order Function的方法 定义一个将自身作为参数的函数。 从更深层次的角度来讲 这不过是将“函数”的Abstraction程度降低了一层将 “函数寻址”这一行为显式地实现了 将function()用lambda表达出来即 lambda x, function : 1 if x 1 else x * function(x - 1, function) 合并即以下答案 1.lambda x: 函数体 ( lambda x,function:function(x-1function)*x if x0 else 1) 参数 (x,lambda x,function:function(x-1function)*x if x0 else 1) 另外一种形式 2. lambda x: 函数体 (lambda x,function:function(x-1,function)*x if x0 else 1) 参数 (x-1,lambda x,function:function(x-1,function)*x if x0 else 1) *x if x0 else 1 错误分析 function(未给出定义) 1.error: (lambda x,function:function(x-1,function)*x if x0 else 1) (x-1,function)*x if x0 else 1 2.error: (lambda x,function:function(x-1,function)*x if x0 else 1) (x,function) pass情况 PS D:\pycharm\python document\CS61A class homework\hw03 python3 ok -q make_anonymous_factorialAssignment: Homework 3 OK, version v1.18.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Running tests--------------------------------------------------------------------- Test summary1 test cases passed! No cases failed.Backup... 100% complete Backup past deadline by 1245 days, 3 hours, 43 minutes, and 25 secondsOK is up to date完整答案 HW_SOURCE_FILE__file__def composer(funclambda x: x):Returns two functions -one holding the composed function so far, and anotherthat can create further composed problems. add_one lambda x: x 1 mul_two lambda x: x * 2 f, func_adder composer() f1, func_adder func_adder(add_one) f1(3)4 f2, func_adder func_adder(mul_two) f2(3) # should be 1 (2*3) 77 f3, func_adder func_adder(add_one) f3(3) # should be 1 (2 * (3 1)) 99def func_adder(g):*** YOUR CODE HERE ***return composer(lambda x:func(g(x)))return func, func_adderdef g(n):Return the value of G(n), computed recursively. g(1)1 g(2)2 g(3)3 g(4)10 g(5)22 from construct_check import check # ban iteration check(HW_SOURCE_FILE, g, [While, For])True*** YOUR CODE HERE ***if n3:return nelse:return g(n-1)2*g(n-2)3*g(n-3)def g_iter(n):Return the value of G(n), computed iteratively. g_iter(1)1 g_iter(2)2 g_iter(3)3 g_iter(4)10 g_iter(5)22 from construct_check import check # ban recursion check(HW_SOURCE_FILE, g_iter, [Recursion])True*** YOUR CODE HERE ***if n3:return nelse:f11f22f33f43*f12*f2f3while n4:f1f2f2f3f3f4f43*f12*f2f3n-1return f4def missing_digits(n):Given a number a that is in sorted, increasing order,return the number of missing digits in n. A missing digit isa number between the first and last digit of a that is not in n. missing_digits(1248) # 3, 5, 6, 74 missing_digits(1122) # No missing numbers0 missing_digits(123456) # No missing numbers0 missing_digits(3558) # 4, 6, 73 missing_digits(35578) # 4, 62 missing_digits(12456) # 31 missing_digits(16789) # 2, 3, 4, 54 missing_digits(19) # 2, 3, 4, 5, 6, 7, 87 missing_digits(4) # No missing numbers between 4 and 40 from construct_check import check # ban while or for loops check(HW_SOURCE_FILE, missing_digits, [While, For])True*** YOUR CODE HERE ***if n//100:return 0lastn%10nn//10if n%10last:declast-1-n%10else:dec0return missing_digits(n)decdef divide(total,num):if num1:return 1if totalnum:return divide(total,num/2)return divide(total-num,num)divide(total,num/2)def max1(total):if total1:return 1if total0:return max1(total//2)*2 def count_change(total):Return the number of ways to make change for total. count_change(7)6 count_change(10)14 count_change(20)60 count_change(100)9828 from construct_check import check # ban iteration check(HW_SOURCE_FILE, count_change, [While, For])True*** YOUR CODE HERE ***if total1:return 1return divide(total,max1(total))def print_move(origin, destination):Print instructions to move a disk.print(Move the top disk from rod, origin, to rod, destination)def move_stack(n, start, end):Print the moves required to move n disks on the start pole to the endpole without violating the rules of Towers of Hanoi.n -- number of disksstart -- a pole position, either 1, 2, or 3end -- a pole position, either 1, 2, or 3There are exactly three poles, and start and end must be different. Assumethat the start pole has at least n disks of increasing size, and the endpole is either empty or has a top disk larger than the top n start disks. move_stack(1, 1, 3)Move the top disk from rod 1 to rod 3 move_stack(2, 1, 3)Move the top disk from rod 1 to rod 2Move the top disk from rod 1 to rod 3Move the top disk from rod 2 to rod 3 move_stack(3, 1, 3)Move the top disk from rod 1 to rod 3Move the top disk from rod 1 to rod 2Move the top disk from rod 3 to rod 2Move the top disk from rod 1 to rod 3Move the top disk from rod 2 to rod 1Move the top disk from rod 2 to rod 3Move the top disk from rod 1 to rod 3assert 1 start 3 and 1 end 3 and start ! end, Bad start/end*** YOUR CODE HERE ***n_s0if 1!start and 1!end:n_s1if 2!start and 2!end:n_s2if 3!start and 3!end:n_s3if n1:print_move(start,end)returnif n2:print_move(start,n_s)print_move(start,end)print_move(n_s,end)returnmove_stack(n-1,start,n_s)print_move(start,end)move_stack(n-1,n_s,end)from operator import sub, muldef make_anonymous_factorial():Return the value of an expression that computes factorial. make_anonymous_factorial()(5)120 from construct_check import check # ban any assignments or recursion check(HW_SOURCE_FILE, make_anonymous_factorial, [Assign, AugAssign, FunctionDef, Recursion])Truereturn lambda x:(lambda x,function:function(x-1,function)*x if x0 else 1)(x-1,lambda x,function:function(x-1,function)*x if x0 else 1)*x if x0 else 1
http://www.sadfv.cn/news/171062/

相关文章:

  • dede修改网站密码网站建设加盟创业
  • jsp 做网站需要什么163邮箱登录页面
  • 深圳网站平面设计网页设计建立站点实验报告
  • 学做网站要会哪些英文网站设计方案
  • 玩具外贸网站模板长春网站建设q479185700惠
  • 百度网盘做存储网站大背景类型的网站设计
  • 佛山专业建站公司哪家好阳江人才招聘网
  • 网站主页没有关键词网络营销策划书的结构及技巧
  • 网站建设提供了哪些栏目wordpress添加注册
  • 马鞍山网站设计制作pc网站优化排名软件
  • ftp空间网站临沂阿里巴巴网站建设
  • 三牛网站建设给你一个网站怎么做的
  • 网站建设常用视频格式如何免费做网站详细点说
  • 网站建设销售找客源长沙市天心区城乡建设局网站
  • 做网站找模板做设计都有什么网站
  • 公司网站制作工作室大气的门户网站
  • 企业门户网站设计方案网站seo做哪些工作
  • 分销网站建设机械网站建设方案
  • 有域名 有固定ip怎么做网站网站结构是什么 怎么做
  • 商城网站建设服务器网业车怎么打车
  • 做网站怎么跟别人讲价金山文档数字变成e+10
  • 福州网站建设推进带数据库的网站怎么建
  • 公司取名大全最新版的wordpress 优化提速
  • 网站建设公司推广网站品牌运营wordpress自定义短码
  • jsp网站开发pdfwordpress 表单邮件
  • 做网站如何选域名网站做程序
  • asp网站合法交易网站前期建设方案
  • 四川个人网站备案哪个商城网站建设好
  • 哪儿有做字体设计的网站如何查看wordpress访问流量
  • 南京做企业网站代理网店