有n个球,从外表上看不出差别,但有一个球比其他球重,其他N-1个球质量相等。请问:在地球上(废话),用天平最少称几次可以称出来?
一个自然数N N小于等于2^24 大于0
输出用天平最小的称量数m(m<30000)
8
2
天平称重,有两个托盘比较轻重,加上托盘外面,也就是每次称重有3个结果,就是ln3/ln2比特信息。n个球要知道其中一个不同的球,如果知道那个不同重量的球是轻还是重,找出来的话那就是n个结果中的一种,就是有ln(n)/ln2比特信息,假设我们要称k次,根据信息理论:k*ln3/ln2>=ln(n)/ln2,解得k>=ln(n)/ln3
floor(x)返回的是小于或等于x的最大整数。
ceil(x)返回的是大于x的最小整数。
ln(x) 在C中是log(x)
lg(x) 在C中是log10(x)
#include <stdio.h>
#include <math.h>int main(){long n,m;scanf("%d",&n);m=ceil(log(n)/log(3));printf("%d",m);return 0;
}
本文发布于:2024-02-01 15:22:34,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170677215637557.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |