| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖, 2 人收藏
标题:在百度上看到一些算法题,不知道怎么算啊,对与这些题,我一点思路也没有
只看楼主 加入收藏
XQwindow
Rank: 2
等 级:论坛游民
帖 子:121
专家分:64
注 册:2013-1-1
结帖率:100%
收藏(2)
已结贴  问题点数:10 回复次数:19 
在百度上看到一些算法题,不知道怎么算啊,对与这些题,我一点思路也没有
题目:
三对情侣参加婚礼,3个新郎为A,B,C,3个新娘为X,Y,Z。有人不知道谁和谁结婚,于是询问了6位新人中的三位,但听到的回答是这样的:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人听后知道他们在开玩笑,全是假话。请编程序找出谁将和谁结婚。

希望大家说说解算法的注意事项,或者给点思路和提示吧!谢谢了
搜索更多相关主题的帖子: 结婚 百度 未婚夫 
2013-01-03 11:12
cyhdahua
Rank: 7Rank: 7Rank: 7
来 自:山东
等 级:黑侠
威 望:2
帖 子:221
专家分:643
注 册:2012-6-15
收藏
得分:1 
b--x
c--y
a--z

WE GO
2013-01-03 11:18
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
收藏
得分:2 
#include <stdio.h>
void main()
{int x,y,z;
for(x=1;x<=3;x++)        /*穷举x的全部可能配偶*/  
for(y=1;y<=3;y++)       /*穷举y的全部可能配偶*/  
 for(z=1;z<=3;z++)      /*穷举z的全部可能配偶*/   
 if(x!=1&&x!=3&&z!=3&&x!=y&&x!=z&&y!=z)  /*判断配偶是否满足题意*/   
{printf("X will marry to %c.\n",'A'+x-1);    /*打印判断结果*/   
 printf("Y will marry to %c.\n",'A'+y-1);   
 printf("Z will marry to %c.\n",'A'+z-1); }  
}
我也不太懂,百度上找的,自己看看吧

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2013-01-03 11:28
古丁高手
Rank: 1
来 自:地狱
等 级:新手上路
帖 子:56
专家分:8
注 册:2012-8-8
收藏
得分:0 
答案是对的,但是对你的穷举法不了解!

不要管我是谁,我也不管你是谁!
just kiss myass!
2013-01-03 11:48
XQwindow
Rank: 2
等 级:论坛游民
帖 子:121
专家分:64
注 册:2013-1-1
收藏
得分:0 
回复大家:
呀呀呀,不明白

我不知道我能否当程序员,但我依然热爱编程!
2013-01-03 14:13
猴哥取经
Rank: 2
等 级:论坛游民
帖 子:41
专家分:34
注 册:2012-10-28
收藏
得分:0 
有意思!
2013-01-03 14:27
真的快乐
Rank: 2
等 级:论坛游民
帖 子:35
专家分:32
注 册:2013-1-3
收藏
得分:1 
我觉得可以用3个指针*a,*b,*c和3个x,y,z来做,指针对变量,最后给定条件,确定就是了。
2013-01-03 16:27
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:1 
你可以列举一下:

根据题意他们都是说的假话  那么  A必定不能和X结婚  那么假设A和Y  再根据题目 那X的未婚夫就是B   C的新娘就是Z  与题意矛盾

                                                      假设A和Z  那么根据题目  假设X的未婚夫B  C的新娘就是Y  满足题意

喜欢睡觉 却经常熬夜
2013-01-03 17:27
朱三哥
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:311
专家分:359
注 册:2012-12-11
收藏
得分:4 
这个是一个离散数学里面的关系问题
原理是
设集合M={A,B,C},集合N={X,Y,Z}
M X N读作M叉N  表示的是一个有序偶,也叫笛卡尔积
{(A,X),(A,Y),(A,Z),(B,X),(B,Y),(B,Z),(C,X),(C,Y),(C,Z)}
这样一个集合S
R1 是S具有下面的一种关系的集合
A不和X结婚
他表示的集合就是
{A,Y),(A,Z),(B,X),(B,Y),(B,Z),(C,X),(C,Y),(C,Z)}
R2的关系
C不和X结婚
{(A,X),(A,Y),(A,Z),(B,X),(B,Y),(B,Z),(C,Y),(C,Z)}
R3的关系
C不和Z结婚
{(A,X),(A,Y),(A,Z),(B,X),(B,Y),(B,Z),(C,X),(C,Y)}

由于ABC 只能和一个人结婚  要同时满足3中关系的存在,用数学的表述方法就是
求集合 R1 R2 R3的交集

上面的程序 用1 2 3代表的是 X Y Z  上面的条件表示的就是 这个交集的元素应该满足的关系 ,采用的是条件判定的方法

还有一种实现方法是用数组 a[3] b[3]
a[3]={x,y,z}
b[3] 的下脚标代表 A B C
关系R1 的话  因为 X不和A结婚,所以将X 填入b[2],b[3]中
依此类推的 填入数组b[3]
最后输出 数组中的元素就是 要的答案


前者是计算机对集合的交集的表示方法 用&&的关系表示 法 实现的,这个是最好的算法

我给出的算法 是对 数学解答的一种模拟方法给出的,效率是比不上前者

如果看上面对程序的想法 仍然是不能理解的话,建议阁下 拿起离散数学书 读第一章节的内容  集合 逻辑 关系


另外 感谢3楼的同志 让我有了从计算机的角度重新审视离散数学的灵感。
 必须提出的是  楼主 你的头像 好恶心

感谢归感谢,如此通透的讲解 ,分还是必须全部的给我的

哥,破你无线很难的,不要老是改,少看路由器上的灯,你会死啊
2013-01-03 17:53
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:1 
回复 9楼 朱三哥
看来你是看懂了  

喜欢睡觉 却经常熬夜
2013-01-03 17:55
快速回复:在百度上看到一些算法题,不知道怎么算啊,对与这些题,我一点思路也没 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017589 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved