有101根电线 每根的一头在楼底 另一端在楼顶 有一个灯泡 一个电池 无数根很短的电线 怎么样在楼上一次在楼下去一次将电线的对应关系弄清楚。
来源:互联网 发布:java多线程技术 编辑:程序博客网 时间:2024/04/28 18:49
(阿里云)问题描述:有101根电线 每根的一头在楼底 另一端在楼顶 有一个灯泡 一个电池 无数根很短的电线 怎么样在楼上一次在楼下去一次将电线的对应关系弄清楚。
不知道标准的做法是怎样的,我只想到了以下一种办法:
在楼顶的阶段:
首先任意选出7根线(例如最左边的),可命名为A0~A6,那么还剩下94根线,编号为0~93,对于i线,可以写出i的二进制形式,例如11号的线可以写为0001011,那么11号线的楼顶这端就可以和A0,A1,A3用短电线相连,即二进制形式位为1则与对应的A中的线相连。
然后对A0~A6这7跟线按照如下关系连接起来:
比如横坐标为A2,纵坐标A1的格子为1表示把A2和A1连接起来,为什么要这样连接,很快就知道了。
现在我们可以带着电池和灯泡下楼了。
在楼下的阶段:
我们给每根线编号,比如B0~B100,那么现在开始做一件体力活,依次将两根电线的一端用灯泡和电池连接起来,如果灯泡亮了,那么就给两个电线(比如B3和B21)都加上一分,当你把所有电线的组合都做完之后,电线的分大概是这样子,有94根电线的分不超过7,而有7根电线的分则大于7,比如,
7,6,0,2,…,3,5,1,5 和52, 51, 50, 48, 49, 34, 31
显然出众的7根线就是A0~A6,现在问题就是如何区分A0~A6,很显然,我们可以通过得分来区分A0~A6。
定义A0的基本得分是0~93中的数第0位不为1的个数,A1、A2余次类推,然而,我们会发现,基本得分有相同的情况,事实上,A0~A6的基本得分依次为: 47, 46, 46, 46, 46, 32, 30,也就是说,仅依靠基本得分,分不清。
这时我们在楼上阶段的对这7根线之间作的连接的作用就出来了,在楼顶的这些工作使得它们有了额外的得分并且两两得分不一样,事实上,得分52的线,就是A0,51的,是A1…
于是A0~A6就区分开了。
最后一步就是对剩下的94根线中的每一根通过已经确定的A0~A6来确定他的编号的二进制形式,比如B23只有通过电池灯泡连接A0,A3,A6时灯泡会亮,那么楼底的B23就是楼顶的64+8+1=73号线。
不知道有没有更好的办法,总觉得工作量太大了。
- 有101根电线 每根的一头在楼底 另一端在楼顶 有一个灯泡 一个电池 无数根很短的电线 怎么样在楼上一次在楼下去一次将电线的对应关系弄清楚。
- 有101根电线 每根的一头在楼底 另一端在楼顶 有一个灯泡 一个电池 无数根很短的电线 怎么样在楼上一次在楼下去一次将电线的对应关系弄清楚。
- 查找一根电线的断点
- 电线的一些小知识学习一下
- 如何使用数字万用表检测电缆电线的断点
- 从那以后,闲着无聊的时候,梅姐就喜欢在楼上朝着楼下喊:“秋生啊,干啥呢。
- ul电线
- 电线常识
- 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n
- 编写一个应用程序,改程序运行后在用户区绘制一个圆形,每单击鼠标左键一次则圆的颜色变化一次
- 求在一个字符串中第一次出现一次的字符
- 一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个。 即排在偶数的灯泡被关掉,第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。 依次类推,第n轮结束的时候,还有几盏灯泡亮着。
- 电线截面积直径电流关系表
- 我这里有一段程序,用来在一个对话框里显示出一次http request的原始信息,不过使用Inet API做的
- 在excel中如何将一张表中有名字对应的数据对接到另一张表的有相同名字的后面(关于VLOOKUP函数)
- 在Qt4中如何创建有最大最小化的MainWindow-与网友的一次问答
- 电线功率计算
- ZRBV是什么电线
- 通用makefile是如何炼成的(III)
- javaweb之过滤器
- JDBC连接各种数据库方法
- SIP协议详解(中文)-1
- JavaScript 省市县三级联动
- 有101根电线 每根的一头在楼底 另一端在楼顶 有一个灯泡 一个电池 无数根很短的电线 怎么样在楼上一次在楼下去一次将电线的对应关系弄清楚。
- SIP协议详解(中文)-2
- 机房收费系统组合查询之SQL语句
- java基础知识2-编译单元
- Java连接MYSQL 数据库的连接步骤
- SIP协议详解(中文)-3
- delete 多表删除的使用
- 基于visual Studio2013解决面试题之1401冒泡排序
- 黑马程序员---java学习笔记之IO