题目:

围绕着山顶有10个洞,一只兔子和一只狐狸住在各自的洞里,狐狸总想吃掉兔子,一天兔子对狐狸说,你想吃我有一个条件,你先把洞编号1到10,你从第10洞出发,先到第1号洞找我,第二次隔一个洞找我,第三次隔两个洞找我,以后依次类推,次数不限,若能找到我你就可以饱餐一顿,在没找到我之前不能停止,狐狸一想只有10个洞,寻找的次数又不限,哪有找不到的道理,就答应了条件,结果狐狸跑得昏了过去也没找到兔子,请问兔子躲在哪个洞里。程序中可假定狐狸找了1000次。

有两种情况分别对应几种算法,如果狐狸超过界限时,比如狐狸在第九个洞,下次寻找如果要去隔N隔洞时,9+N大于10的情况下,狐狸是回到1洞去找还是,从10洞折返回来,以10,9,8,7的顺序去找,这就对应两种算法

第一种 狐狸 回到1比较简单,可以把洞延伸看做 1,2,3,4....8,9,10,1,2,3....8,9,10,1,2,3....这种循环,所以不存在方向性的问题,只需要根据位移对10求余,得到实际位移即可,在狐狸新达到的洞做予标记,下次跳过,并在结果输出时反向筛选得到狐狸无法到达的洞口。

第二种 可以看做是 一个从 1,2,3...7,8,9,10,9,8,7.....,3,2,1这样包含18各元素的数列循环,这样也可以消除方向性带来的麻烦,狐狸可以认为在前面的数列做循环,算法与上方类似。

第三种 就是硬算 定义方向值,求余得到位移。 实际位移是 a+bi  ,i为方向值,值可以为1和-1,b为求余后的位移,a为初始位置

目前能想到的是这些方法

下面贴出 基于第二种方法的 C程序

#include

void main()

{

int a[18]={0};

int fox=1;

int place=0;

int weiyi,p;

for(p=0;p<1000;p++)

{

weiyi=(p+2)%18;

place=(place+weiyi)%18;

if(a[place]==1)

continue;

a[place]=1;

}

for(int i=0;i<10;i++)

{

if(a[i]==0)

printf("hole %d is safe\n",i+1);

}

}

java写 狐狸找兔子_狐狸找兔 算法分析相关推荐

  1. java写 狐狸找兔子_狐狸找兔子(java 版)

    围绕着山顶有10个洞,一只狐狸和一只兔子住在各自的洞里.狐狸想吃掉兔子.一天,兔子对狐狸说:"你想吃我有一个条件,先把洞从1-10编上号,你从10号洞出发,先到1号洞找我:第二次隔1个洞找我 ...

  2. java 写文件 权限不够_教你解决Linux系统中JAVA创建文件后权限不足的问题

    在作业中,项目使用文件上传. 这个功能很常见. 当Kai Ge今天更改其官方帐户时,他遇到了一个问题,即无法访问下载的文件,也无法通过浏览器访问该文件. 它是怎么发生的? 经过许多问题之后,事实证明这 ...

  3. C语言狐狸与兔子编程,狐狸找兔子(VB程序设计)

    满意答案 唯一手记 2013.08.17 采纳率:57%    等级:12 已帮助:2085人 楼主 这时一段根据题目出的查找程序,但是有一定的问题 mumber = 0 这句应该说number=0还 ...

  4. 大漠找图算法_大漠找图怎么实现用资源表图片找的?(不用写出的方法)

    刚刚接触大漠,还不是很熟.还有个问题,绑定窗口后能后台找图对吧,窗口最小化了也能找吗?还是说仅窗口被遮挡能找最小化不能. 函数原型:long FindPic(x1, y1, x2, y2, pic_n ...

  5. java 写tb级文件_三管齐下!TB 级文件的上传性能瞬间被优化 100 倍!

    作者 | 中华石杉 责编 | 伍杏玲 本文经授权转载石杉的架构笔记(ID:shishan100) 这篇文章我们来看看,世界上最优秀的分布式文件系统HDFS,是如何对超大文件的上传做性能优化的? 首先, ...

  6. 用java写注册表单_利用HTML表单标签编写一个注册页面

    今天我们来写一个注册页面 form表单 先来利用表单标签制作一个简单的注册页面,给大家说说标签的结构: 页面结构大体就是这样子的~ 利用HTML表单标签编写一个注册页面 表单标签: 所有需要提交到服务 ...

  7. java写一个android程序_【Android开发笔记】3.编写第一个Android程序

    前言 上一节我们通过一个Demo熟悉了Eclipse的基本使用.如何在模拟器和手机中运行以及如何打包成APK,但没具体编写代码,相信很多同学已经按耐不住了吧,这一节我们会动手编写代码来熟悉Androi ...

  8. java 写的星际争霸_用java写星际争霸的ai

    一直有这个想法很久了.以前也知道可以用BWAPI这个API写星际争霸的ai.但是直接用那个的话一直没调试好,各种版本都搭配不好然后导致星际崩溃,C++又不是很懂只得作罢. 幸好最近发现了这个网站:ht ...

  9. java写一个登录系统_用java写一个用户登陆界面

    一.课堂测试源代码及其结果截图 用java的swing写一个用户登录界面,采用网格布局.源代码如下: /** * */ package LiuLijia; import java.awt.CardLa ...

最新文章

  1. 滴滴海外市业务面试经历
  2. 技术专家预测未来25大颠覆性硬趋势
  3. jQuery框架+DWR框架实现的Java Web中的Ajax效果(异步请求,局部刷新)
  4. 学三极管能遇到这篇巧文,我太幸福了!
  5. linux redis客户端,Redisson 3.4.0和2.9.0发布,Redis客户端
  6. expdp导出 schema_Oracle使用数据泵在异机之间导出导入多个 schema
  7. 通达信公式转python为什么很难_转行数据分析为什么这么难?
  8. Spark源码分析之二:Job的调度模型与运行反馈
  9. FORM开发实现动态LOV
  10. 时间序列R语言操作——非平稳时间序列变平稳
  11. 娜璋初识(一)你的酒窝没有酒,我却醉得像条狗,看程序员如何表白
  12. 计算机加权限加密,局域网文件访问权限设置加密的使用方法
  13. 提前三天教你们python制作万能抢购神器,学不会就准备过光棍节吧
  14. SUMIFS函数 、MATCH及INDEX函数
  15. AI语音红外遥控配网教程
  16. 2019年3月WHQL认证最新申请流程
  17. JAVA MemCache 史无前例的详细讲解【转】
  18. java垃圾收集哪些叙述_关于垃圾收集的哪些叙述是对的() - 问答库
  19. python PDF文档
  20. Wordpress特色图像外链插件 Featured Image From URL

热门文章

  1. matlab提取图像特征程序,图像特征提取matlab程序
  2. 计算机网络的ask表示啥,计算机网络理论知识:物理层
  3. 萌新改代码系列(一)--VINS+GPS
  4. 阳光系统下载 Win7电脑锁屏壁纸怎么设置
  5. php cmyk图片,php – 使用Imagick将图像从RGB转换为CMYK
  6. 北风:在给我一面国旗换头像中,有人通过这个来获利吗?(亲身经历)
  7. python中flush怎么用,在Python程序中操作文件之flush()方法的使用教程
  8. Windows程式开发设计指南(二十一)动态连结程式库
  9. HEVC BLA、CRA、IDR
  10. open gl太阳系简单实现