todomvp:最小可行比萨

  • t9_352017
    了解作者
  • 1.8MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-01 05:05
    上传日期
待办事项:最低可行比萨 让我们面对现实吧:todo 列表已经过时了。 我们知道我们需要做什么-我们需要订购披萨。 但是多少钱? TODO: MVP 算法接受以下输入: 标准的“切片”尺寸 该组需要的切片总数 比萨店的比萨大小和价格 TODO: MVP 算法将依次推荐几个满足团体需求的披萨订购选项。 我可以用它做什么? 好吧,您可以使用它来确定要订购的比萨饼。 您也可以使用它代替 TodoMVC 来尝试新的库/框架/等。 MVP 算法是如何工作的? 它只是生成订购足够比萨饼的所有比萨饼配置的排列,而不需要订购额外的比萨饼,然后在几个轴上对它们进行排名和排序。 参考实现 var _ = require ( 'lodash' ) ; function mvp ( numServings , servingSize , pizzas , sortBy ) { var totalSiz
todomvp-master.zip
内容介绍
# TODO: Minimum Viable Pizza Let's face it: todo lists are overdone. We know what we need to do - we need to order pizza. But how much? The TODO: MVP algorithm accepts the following inputs: * A standard "slice" size * Total number of slices that the group desires * The pizza sizes and prices of the pizza shop The TODO: MVP algorithm will in turn recommend several pizza ordering options that will satisfy the group's cravings. ## What can I do with it? Well, you could use it to figure out what pizza to order. You could also use it instead of TodoMVC to try out a new library/framework/etc. ## How does the MVP algorithm work? It just generates permutations of all of the pizza configurations that order enough pizza, without ordering an extra pizza, and then ranks and sorts them on several axes. ## Reference Implementation ```javascript var _ = require('lodash'); function mvp(numServings, servingSize, pizzas, sortBy) { var totalSize = numServings * servingSize; pizzas = _.sortBy(pizzas, 'diameter').reverse(); function updateTotal(option) { option.total = _(option.pizzas) .map('diameter') .map(d => d / 2) .map(r => r * r) .map(r2 => r2 * Math.PI) .reduce((sum, area) => area + sum); } function addPizza(option, options, index) { index = index || 0; if (option.total > totalSize) { options.push(option); } else { for (let i = index; i < pizzas.length; ++i) { var newOp = {pizzas: _.clone(option.pizzas)}; newOp.pizzas.push(pizzas[i]); updateTotal(newOp); addPizza(newOp, options, i); } } return options; } return _(addPizza({pizzas: [], total: 0}, [])) .flatten() .tap(options => console.log(`Found ${options.length} options`)) .forEach(option => { option.cost = _(option.pizzas) .map('cost') .reduce((sum, cost) => sum + cost); option.ratio = option.cost / option.total; }) .sortBy('ratio') .forEach((option, index) => option.order = index + 1) .sortBy('total') .forEach((option, index) => option.order += index) .sortBy(sortBy) .take(10) .sortBy('total') .tap(options => options[options.length - 1].special = 'Most pizza! ') .sortBy('ratio') .tap(options => options[0].special = (options[0].special ? options[0].special : '') + 'Best deal!') .sortBy(sortBy) .value(); } var topTenPizzas = mvp(20 /*slices of pizza*/, 20 /*square inches per slice*/, [ {name: 'Large', diameter: 16, cost: 12.95}, {name: 'Medium', diameter: 14, cost: 9.95}, {name: 'Small', diameter: 12, cost: 8.95} ] /* Monte Cellos' pizza menu */, 'order' /* sort by PizzaRank */); ```
评论
    相关推荐
    • SpringRaft:使用Spring MVC和Spring WebFlux的筏式共识算法实现
      SpringRaft是一个学位论文项目,包含在Servlet和Reactive堆栈中的Raft共识算法实现中。 此实现应该是模块化的,以便可以对其进行扩展,并且应该是通用的,以便可以在不同的用例中重用它们。 该项目的最终目的是在...
    • apriori算法求频繁项集和关联规则 mvc架构 java版
      完整代码Java版,mvc架构,优美的界面。置信度和关联规则一并解决
    • AES加密算法
      基于MVC的实现的AES加密解密算法,采用的是Unicode编码的格式,每个字符占两个字节。所以输入的原文为八个字符。密钥根据长度不同为8个,12个或者16个不等。程序会首先将字符转化成十六进制再进行加密,每一步的加密...
    • 时间片轮转算法调度实验
      用java实验的时间片轮转法调度实验,基于MVC框架,界面简单,功能完好,代码简单易懂~
    • 走迷宫算法mvc++6.0win32应用程序
      走迷宫算法,microsoft visual c++6.0 下win32窗口应用程序演示,实现走迷宫算的窗口界面化显示。
    • PureMVC_Iso_Astar.rar
      a星算法,寻路算法,有fla源代码,有演示
    • 类似画图板的程序-VC源码
      我的毕业设计. 拥有画图板的部分功能.有一部分图象处理功能. 但只能处理不大于1024*768像素的bmp格式文件. ... 图象处理的核心算法都在CBmpDat类中. 我的大部分程序都采用的MVC模式,数据与显示是分离的.
    • programming-2:UoPeople-编程2课程
      单元1-异常,switch语句,算法分析 单元2-递归和链接列表 单元3- ADT,堆栈和队列 第4单元-递归下降解析器和通用编程 单元5-通用编程 第6单元-文件和网络; 先进的GUI编程 单元7-动作和按钮; 复杂组件和MVC 单元8-...
    • 用Jsp写的用户管理系统采用MVC模式(分页,CRUD,行显示颜色交替算法,转向和转发的区别)
      这样能学习到J2EE中的2种重要的技术,明白MVC的核心知识,代码有注释,对理解有很大的帮助,理解其中的Jsp,Servlet,Java class(javabean)在项目中充当的角色,其中有分页技术,经典的行颜色交替算法,...
    • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
      guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档