‘壹’ 有6个外观一样的硬币,其中有一个假币比真币要轻些。用天平称的办法去找,至少几次能把假币找出来请写出
左边三个右边三个
把轻的三个拿出来
三个中随便拿两个称
一样重剩下的那个硬币是假的,不一样重轻的是假的
共两次
‘贰’ 用手快速数钱时如何才能发现假钞
最好的办法是让对方给打到你银行账号,实在不方便的话以下是手感识钞法
1、数钱的时候将里面崭新的钞票全挑出来,(因为假钞票稍微旧一点就很容易辨别真假)
2、真钞稍微旧一点,表面像有一层蜡镀过一样
3、数三遍,第一遍数得慢,一边数一边把钱整理好,让每张钱都往同一个方向放。第二遍,数够不够数,以数数量为主,数时用手摸毛主席右领是不是有粗糙的手感,第三遍数过一次再检查一遍
4、一万一万的验数,数完了放一边,边十万一次性全数一遍,别急
5、假钞辨别法:新钱,偏白,纹路不清晰的,偏厚的,表面手感滑滑的没粗糙感的,表面一摸手上就有一层毛毛的感觉的,假如全是崭新钞票的话就看代码,一般全是连码,如果里面啥码都有就要小心了,里面很有可能有假钱
6、如果是刚从银行取出来的,那些都会朝一个方向放整齐,但如果是有别人开过银行封条的,你就要小心了
7、挑出来的部分新钱辨别法:新钱不会有透明感,表面粗糙,一拉,声音特别响亮,很有坚韧感
这是我的心得,虽然我没有受过专业教育,但是我从小家里就是做生意,我做过一年的财务出纳,没用过点钞机,从没收过假币,练就火眼精精的方法是,一有过就拿着真币研究,看它长啥样,摸手感,听声音
‘叁’ 100枚硬币中有一枚假币 质量不同 怎么用最少的称量次数找出来😱
首先要知道真币的标准重量,然后把100枚硬币分成两份,每份50枚,称量一下,把不同于标准重量的一份拿出来,又分成两半称量,挑出不同的那一份,这时是25枚,再分成8枚一份,剩下一枚,那三份称量,找出不同,再分两份,一直到最后。
‘肆’ 有16个一元硬币,其中有个是假的,设计个最简单的办法找出那个假的,最好用到折半查找法。
如果没有说轻重的话应该分成四组,每组4个硬币
第一次:将其中一组放在天平一边,另选一组放在天平另一边
第二次:固定第一组,选择第三组放在天平另一边;
这样就可以得知哪组中有假硬币了(不分轻重,但能显示出这一组与其他组重量不一样);
确定这一组后,把4个硬币分成4组,每组一个;再用上述方法测两次就可以确定哪个是假的了;
一共测4次。
‘伍’ 天平找假币理论 算法谜题之硬币中的假币
至少2次:第一次,一边3个,哪边重就在哪边,一样重就是剩余的3个;第二次,一边1个,哪边重就是那个,一样重就是剩余的那个.
‘陆’ 从8个一元的硬币中找出一个假币(假币比真币重),你如何用一架没有砝码的天平找出来请写出操作过程。
把八个硬币分为三组 第一组3个 第二组3个 第三组2个
情况1.把第一组和第二组分别放在天平两端,不平衡的话,沉下的那组定有假币,将该组的3个硬币1>挑两个分别放在天平两端,不平衡的话,沉下的一边为假币。2>挑两个分别放在天平两端,天平两端平横,那么剩下的该组第三枚硬币为假币
情况2.把第一组和第二组分别放在天平两端,天平平衡,那么假币在第三组。将第三组的2枚硬币分别放在天平两端,沉下的一枚为假币
这种方法只要称2次就可以找出假币
这种类型的题目是高中必修3的算法里面的内容
‘柒’ 有12枚硬币,其中一枚与其他11枚不同,利用1架天平,如何只称3次就找出假币
假币的重量与真的不一样
能利用天平称量三次,找出假币,并判断假币的重量比真币的重量重还是轻.
将硬币分成三组,每组四枚,分别表示为:
G1 = (1,2,3,4),G2 = (5,6,7,8),G3 = (9,10,11,12).
在第一次称量时比较G1和G2,它们或者平衡或者一组更重些,下面分别考虑这两种情况:
如果G1和G2平衡,那么假币必定在G3中,即G1和G2中的所有硬币都是真的.这样,在第二次称量中,就可以比较任意三枚真币(比如1,2和3)和G3中的三枚硬币:
(1,2,3)和(9,10,11)
所得结果比较为:
1,、硬币平衡.这表明假币为12,因为它是G3中唯一在第二次称量中未出现的硬币,再进行第三次称量(比如1与12)就可以确知假币比其他硬币重还是轻.
2、硬币不平衡.这表明假币是9、 10、 11中的某一个,并且还可以知道假币是轻些还是重些.如果(1、 2、 3)比(9、 10、 11)重些,那么假币就轻些,反之亦然.再进行第三次称量(比如9与10)就可以确定是哪一枚是赝品.如果9和10平衡,那么假币是11,如果不平衡,那么根据前面已知的假币是轻些还是重些的信息就可以知道它们中的哪一枚是假币.
如果G1和G2不平衡,那么我们可以知道,1.、 假币在G1或G2中 2.、 硬币9.、 10、 11和12是真币.
把G2中的一枚硬币(比如5)移到天平的左边,在天平的右边加一枚真币(比如12).这样第二次称量就是(1、 2和5)与(3、 4、 12).
假设在第一次称量中,硬币(1、 2、 3、 4)比(5、 6、 7、 8)重些,那么在第二次称量中有三种可能的结果:
1、 硬币(1、 2、 5)重些.这表明硬币3、 4 和5是真的,因为我们改变了它们在天平中的位置,但称量的结果仍然不变(即左边重些).由于硬币12是真的,那么假币就是1或2,并且假币重些.再进行第三次称量(1与2)就可以马上确定哪枚是假币.
2、 硬币(3、 4、 5)重些.由于两车称量的结果发生了改变(也就是第一次称量天平左边重些,而现在右边重些),那么假币一定是从天平的一端移到了另一端.因此,或者硬币3或4是假的,并且重些.或者硬币5是假的,且轻些.这样再进行第三次称量(3与4)就可以确定出赝品.如果平衡,则假币是5,否则,较重的那个是假币.
3、 硬币(1、 2、 5)和(3、 4、 12)平衡.这表明假币必定不包含在第二次称量中,而必为6、 7或8中的一枚.同时,从第一次称量的结果可知假币较轻.这样,再进行第三次比较。
(7)寻找假币用什么算法扩展阅读:
c语言题目 - 称硬币
描述
赛利有12枚银币。其中有11枚真币和1枚假币。假币看起来和真币没有区别,但是重量不同。但赛利不知道假币比真币轻还是重。于是他向朋友借了一架天平。朋友希望赛利称三次就能找出假币并且确定假币是轻是重。例如:如果赛利用天平称两枚硬币,发现天平平衡,说明两枚都是真的。如果赛利用一枚真币与另一枚银币比较,发现它比真币轻或重,说明它是假币。经过精心安排每次的称量,赛利保证在称三次后确定假币。
关于输入
第一行是n,表示数据共有n组。
其后是n*3行。每组数据有三行,每行表示一次称量的结果。赛利事先将银币标号为A-L。每次称量的结果用三个以空格隔开的字符串表示:天平左边放置的硬币 天平右边放置的银币 平衡状态。其中平衡状态用"up", "down", 或 "even"表示, 分别为右端高、右端低和平衡。天平左右的银币数总是相等的。
关于输出
输出为n行。每行输出一组数据中哪一个标号的银币是假币,并说明它比真币轻还是重。
如果第K枚银币是假,并且它是轻的,则输出:
K is the counterfeit coin and it is light.
如果第K枚银币是假,并且它是重的,则输出:
K is the counterfeit coin and it is heavy.
例子输入
1
ABCD EFGH even
ABCI EFJK up
ABIJ EFGH even
例子输出
K is the counterfeit coin and it is light.
‘捌’ 101个硬币中有1个假币,怎样用天平两次找出
先把这9个硬币分成三份,随便选取两份放在天平上,如果天平没有保持平衡,则假硬币在上升的那个托盘中;如果天平保持平衡,则假硬币在第三份中。再将有假硬币的那份随机拿两个硬币放在天平上,如果天平没有保持平衡,则假硬币在上升的那个托盘中;如果天平保持平衡,则另外一枚就是假硬币。这样就只称两次就能找出假硬币了。
‘玖’ 有7个硬币6个真币,一个假币。 用天平称两次,怎样才能把假币找出来
首先天平两边各放3个硬币,如果一样重,那么没有放在天平上的就是假币。如果不一样重,那么假币在重一些的3个硬币里,用天平把重一些的3个硬币其中的两个再称一次,如果一样重,那么没有放在天平上的就是假币,如果不一样重,那么重一些的就是假币。
‘拾’ python n个硬币中找一个假币,且已知假币较轻,怎么用递归和非递归两种方法求
思路:假设有数组arr,里面的int值代表银币重量,下标代表第几个银币。
循环(非递归):把数组第一个值赋值给变量tmp,从第二个变量循环到最后一个,比较循环里的变量和tmp值,如果不等,就返回小数下标。
递归:用二分思想,银币分2堆(不能均分时把中间那个留出来),取重量小的那堆继续二分。最后只剩下一个时就是所求
下面这种写法是返回下标的。也可以把硬币假设成一种数据类型,然后返回那个类型
#!/usr/bin/python
#-*-coding:utf-8-*-
#返回最小值下标
defgetMin(arr1):
iflen(arr1)==0:return-1
tmp=arr1[0]
index=0
forcurinarr1:
iftmp!=cur:
return0iftmp<curelseindex
index+=1
return-1
real_index=0
#返回最小值下标递归
defgetMinRecursion(arr1):
globalreal_index
n=len(arr1)
ifn==0:return-1
ifn==1:returnreal_index
ifn==2:returnreal_indexifarr1[0]<arr1[1]elsereal_index+1
sum1=sum(arr1[0:int(n/3)])
sum2=sum(arr1[int(n/3):int(n/3)*2])
ifsum1==sum2:
real_index+=int(n/3)*2
returngetMinRecursion(arr1[int(n/3)*2:n+1])
ifsum1<sum2:
returngetMinRecursion(arr1[0:int(n/3)])
else:
real_index+=int(n/3)
returngetMinRecursion(arr1[int(n/3):int(n/3)*2])
arr=[1,1,1,1,1,1,0,1,1]
print("%d"%getMin(arr))
print("%d"%getMinRecursion(arr))