不平衡的二叉树不能正常工作.node . js
Unbalanced binary tree not functioning properly. Node.Js
我正在解决一个涉及二分搜索的类问题我实现的算法可以很好地解决它但我的直觉是,考虑到问题的参数,稍微赌一把会更有效
虚构的小镇HollyBroke, Fl由一个30 × 30的街区网格组成。街道以美国总统的名字命名,大街也用数字编号。臭名昭著的两字纵火犯挟持了整个城镇。他每周六都会选择一所房子进行纵火,并通过挑战他们猜测每周犯罪的地点来嘲弄警察部门。在点燃火柴之前,他会在简短的电话中回答10个"是"或"否"的答案。(他不会一直在线上,所以电话无法被追踪。)市政府希望你制定一个程序,以便在这个臭名昭著的罪犯打来电话时迅速作出反应。
这个问题的答案很容易创建一个算法,但我认为中位数1/中位数+1的赌博会更有效。我的直觉是,通常情况下,我得出的结论会多出一个问题,让我可以问一个关于纵火犯的二元搜索问题,或者如果游戏允许的话,我会在通话结束前和警察一起出现。如果我事先不直接解决它,我就会有一个非常小的空间来搜索完成后,像三个或四个街区彼此相邻,
这是我的"赌博"二进制搜索的代码。
`var array = [{"a":30,"b":30,"c":0}]
function findLower(input) {
var half = Math.floor(input/2);
if(0 == input%2)
return (half-1);
else
return (half);
};
function findUpper(input) {
var half = Math.floor(input/2);
if(input%2 == 0)
return (half+1);
else
return (half+1);
}
for (var i = 0; i <= 9; i++){
for (var z = array.length - 1; z >= 0; z--) {
if (array[z].c = i){
if (array[z].a>array[z].b)
array.push({"a":findLower(array[z].a),"b":array[z].b,"c":array[z].c + 1},{"a":findUpper(array[z].a),"b":array[z].b,"c":array[z].c + 1})
else
array.push({"a":array[z].a,"b":findLower(array[z].b),"c":array[z].c + 1},{"a":array[z].a,"b":findUpper(array[z].b),"c":array[z].c + 1})
}
};
}
console.log(array.length);`
它提出了一个荒谬的数组长度给定它应该是2^10 +2^9 +2^ 8 .....= 2047程序得到的数组长度为19683
和一些数组应该肯定不是30*14在节点级别10我确信算法设置正确。我已经用笔和纸画了两层,看起来应该可以正常工作了。
找到了。
if (array[z].c = i){
应该 if (array[z].c == i){
是一个条件语句,没有声明它们相等
我也错了。在10次猜测中,你只有大约40%的机会成功找到房子。
相关文章:
- for循环在node.js中的工作方式
- Node http-proxy-middleware 不能与本地服务器一起工作
- Imgur 通过客户端 javascript 上传工作,但不是 node.js.慌乱了
- 当通过Node.js服务器访问时,Javascript文件在Chrome上工作,但从文件夹打开时不工作
- NOT不'无法在node/mongoose中工作
- Node.js的Arduino不工作
- 如何让JavaScript控制台用户输入工作(node.js)
- 事件发射器模式如何在Node,sockets.io中工作
- 如何在node.js的帮助下使用网站在localhost上工作
- Backbone.js应用程序使用CommonJS结构与node.js和客户端协同工作
- 为什么Node.removeChild(Old Child)没有't在函数中工作
- Node.js npm opn-can't使回调函数工作
- node.js中的自修改代码可以集群工作
- 使用node/express在angular.js中不工作的路由
- 无法获得蓝鸟承诺和猫鼬的 save() 在 node.js 中工作
- jQuery 发现在 Node.js 中无法正常工作
- 如何将代码分成两个文件,并仍然使其在node.js中工作
- MongoDB获取最后一个元素不能在node.js上正常工作
- node.js UNIX 密码哈希的 DES 加密不像 mkpasswd 那样工作
- 不平衡的二叉树不能正常工作.node . js