当前位置: 首页 > news >正文

深圳市住房和建设工程交易网站seo源码

深圳市住房和建设工程交易,网站seo源码,由一个网页建成的网站,网站模板中文题目: 已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积。   甲问乙:"你知道是哪两个数吗?"乙说:"不知道";   乙问甲:"你知道是哪两个数吗&am…

题目:

     已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积。  
  甲问乙:"你知道是哪两个数吗?"乙说:"不知道";  
  乙问甲:"你知道是哪两个数吗?"甲说:"也不知道";  
  于是,乙说:"那我知道了";  
  随后甲也说:"那我也知道了";  
  这两个数是什么? 

解答:

隐含条件:乙不知道答案,则说明这两个数之积不是素数。当甲回答说不知道答案后,乙马上知道了答案,说明乙能利用这一信息来排除掉一些选项,从而剩下唯一的选项。反过来,乙得出答案并告诉了甲后,甲亦能利用这一信息来排除一些选项,从而也剩下唯一的选项。

举例子:

假设这两个数是x,y。A=x+y;B=x*y。

站在乙方的角度,这时假设B=6,这能推出(1,6)和(2,3)两种组合。此时乙在这两个组合间犹豫不定时,甲告诉乙不知道答案。

假设答案是(1,6),则A=7。此时,甲手上的选项应该是(1,6),(2,5)和(3,4)。此时甲的确无法知道答案,因此(1,6)是候选答案。假设答案是(2,3),则A=5。此时,甲手上的选项是(1,4)和(2,3),因此甲也无法知道答案。这时,(2,3)也成为了候选答案。此种情况下出现了两个候选答案,因此乙到了最后还是无法得出答案。这与题设矛盾,一次可以排除这些组合。

 

 

假设,B=4.

站在乙方的角度,这时乙的选项是(1,4)和(2,2)。

假设答案是(1,4)。则A=5。分析如上。乙把(1,4)作为候选答案。假设答案是(2,2),则A=4。此时,甲手上的选项是(1,3)和(2,2)。因为(1,3)之积是素数,因此被排除。则乙告诉甲不知道答案的时候,甲应该能知道答案,而事实上甲不知道答案。因此(2,2)是不可能的。最后乙手上只剩下一个候选答案,因此他推出了答案。反过来,甲亦能根据此信息推出答案。因此(1,4)符合题设。

void BrainTester::ABOf1_30() {multimap<int, pair<int, int> > mid_result;for (int x = 1; x <= 30; ++x) {for (int y = x; y <= 30; ++y) {if (!this->isPrime(x * y)) {mid_result.insert(make_pair(x * y, make_pair(x, y)));}}}set<int> key_set;multimap<int, pair<int, int> >::iterator it;for (it = mid_result.begin(); it != mid_result.end(); ++it) {key_set.insert(it->first);}set<int>::iterator it_set;for (it_set = key_set.begin(); it_set != key_set.end(); ++it_set) {if (mid_result.count(*it_set) <= 1) {while ((it = mid_result.find(*it_set)) != mid_result.end())mid_result.erase(it);}}key_set.clear();//reset key_setfor (it = mid_result.begin(); it != mid_result.end(); ++it) {key_set.insert(it->first);}multimap<int, pair<int, int> >::iterator beg;multimap<int, pair<int, int> >::iterator en;bool flag = false;multimap<int, pair<int, int> > result;for (it_set = key_set.begin(); it_set != key_set.end(); ++it_set) {beg = mid_result.equal_range(*it_set).first;en = mid_result.equal_range(*it_set).second;for (; beg != en; ++beg) {int x = beg->second.first;int y = beg->second.second;int sum = x + y;if (sum > 3) {int half = sum / 2;flag = false;for (int i = 1; i <= half; ++i) {if (mid_result.find(i * (sum - i)) != mid_result.end()) {if (flag) {result.insert(make_pair(x * y, make_pair(x, y)));break;} else {flag = true;}}}}}}key_set.clear();for (it = result.begin(); it != result.end(); ++it) {key_set.insert(it->first);}for (it_set = key_set.begin(); it_set != key_set.end(); ++it_set) {if (result.count(*it_set) != 1) {while ((it = result.find(*it_set)) != result.end())result.erase(it);}}for (it = result.begin(); it != result.end(); ++it) {cout << it->first << " (" << it->second.first << ","<< it->second.second << ")" << endl;}
}

  

 

转载于:https://www.cnblogs.com/lhmily/p/3920390.html

http://www.lbrq.cn/news/2654839.html

相关文章:

  • 浏览器怎么打开网站服务器设置b站推广链接
  • 手机苗木网站源码常州seo招聘
  • 百度网址名称是什么商品seo关键词优化
  • 青岛哪个网站建设公司价格低还能好一些网络营销的方式有几种
  • 怎样做网站的快捷方式网络营销推广策略有哪些
  • 赣州网站设计哪家强简述网站建设的流程
  • 哈尔滨房地产网站建设打开一个网站
  • 黄页引流推广网站软件免费百度指数
  • 建网站建设的基本流程今日热搜第一名
  • 网络代理是什么意思班级优化大师头像
  • 网站关键词优化到首页难度软件推广赚佣金渠道
  • 自搭建网站百度竞价代运营公司
  • 嘉定区网站建设公司营销网站建设大概费用
  • wordpress去除缓存石家庄百度seo
  • 网站结构优化怎么做软文推广平台有哪些
  • 有做lol直播网站本地网络seo公司
  • 菜鸟必读 网站被入侵后需做的检测 2广告推广方式
  • 团购做的好的网站营销网页
  • 郑州门户网站建设微信朋友圈广告
  • web前端怎么制作网站seo推广培训课程
  • 如何网站建设360推广登陆入口
  • 哪个网站可以找人做橱柜在线收录
  • 做购物平台网站需要注意什么百度教育官网登录入口
  • 项目网络计划图seo优化运营专员
  • 视觉中国网站建设公司网页设计素材
  • 响应式网站教程seo软件视频教程
  • 网站建设业务客户来源网络营销收获与体会
  • 自己家的电脑宽带50m做网站服务器青岛百度推广多少钱
  • 鲜花导购网页制作珠海百度seo
  • 大连外贸网站发稿平台
  • 浏览器自动播放策略
  • Java 时间和空间复杂度
  • C++ 中的智能指针
  • WinForm 复合控件(用户控件):创建与使用指南
  • Vue3环境搭建+Mybatis-plus的使用
  • PDF编辑工具,免费OCR识别表单