网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月18日漏签0天
flash吧 关注:217,577贴子:663,920
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 首页 上一页 1 2
  • 29回复贴,共2页
  • ,跳到 页  
<<返回flash吧
>0< 加载中...

回复:【抛砖引玉】AS与算法设计的学习与讨论

  • 只看楼主
  • 收藏

  • 回复
  • 亚瑟王的咖喱棒
  • 王重阳
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
2.1神奇之处
各位在锻炼大脑的时候一定见过不少逻辑问题,
有没有想过让程序解决呢?
一个经典问题:
有ABCD四个人,A说:B偷吃了苹果,B说:是D吃的,C说:不是我,D说:B说谎
现在已知条件为:这四个人中,一人吃了苹果,只有一个人说的是真话
请问:偷吃了苹果的人到底是谁?
这个题目不难,让我们看看做法1:
每个人都有“吃了”和“没吃”两种情况,枚举所有情况2^4=16种就可以了
var x1,x2,x3,x4;
for (x1=0; x1<=1; x1++)//枚举,0为没吃,1为吃了
{
for (x2=0; x2<=1; x2++)
{
for (x3=0; x3<=1; x3++)
{
for (x4=0; x4<=1; x4++)
{
if (x1+x2+x3+x4==1)//只有一人吃了苹果
{
if ((x2==1)+(x4==1)+(x3==0)+!(x4==1)==1)//分别表示四个人的话的真假
{
trace(x1,x2,x3,x4);//输出四个人的情况,1为吃了苹果
}
}
}
}
}
}
这里略微复杂,看看方法2:
只有一人吃苹果,所以枚举4种就可以了
for (var i=1; i<=4; i++)//枚举吃苹果的人是谁
{
if ((i==2)+(i==4)+(i!=3)+!(i==4)==1)//四句话的真伪,和为一表示只有一句真话
{
trace(i);//输出偷吃苹果的人
}
}


  • 亚瑟王的咖喱棒
  • 王重阳
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


2026-01-18 15:47:08
广告
不感兴趣
开通SVIP免广告
  • 亚瑟王的咖喱棒
  • 王重阳
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
看看这一问题的改变:红色字为改变之处
有ABCD四个人,A说:B偷吃了苹果,B说:D吃的,C说:不是我,D说:B说谎
现在已知条件为:这四个人中,一人吃了苹果,有【两】个人说的是真话
请问:偷吃了苹果的人到底是谁?
解决:
var x1,x2,x3,x4;
for (x1=0; x1<=1; x1++)
{
for (x2=0; x2<=1; x2++)
{
for (x3=0; x3<=1; x3++)
{
for (x4=0; x4<=1; x4++)
{
if (x1+x2+x3+x4==1)
{
if ((x2==1)+(x4==1)+(x3==0)+!(x4==1)==2)//这里变成了2
{
trace(x1,x2,x3,x4);
}
}
}
}
}
}
输出两行:
0 0 0 1
1 0 0 0
说明有两个解
D偷吃了 或者 A偷吃了


  • 亚瑟王的咖喱棒
  • 王重阳
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
同样,把数字改为3,会得到
0 1 0 0,B偷吃了苹果
改为4会没有输出,说明不可能


  • 若水雄起
  • 慕容博
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主继续啊 不要停


  • 江坛元
  • 鸠摩智
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
as3 .0可以连接数据库么


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 首页 上一页 1 2
  • 29回复贴,共2页
  • ,跳到 页  
<<返回flash吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示