到底是先有的鸡还是先有的蛋?这不是一个无聊的问题,谁能用java程序将其解决呢??谢谢大家。。。
利用编程语言实现的话,一定是先有鸡.
比如:[code="java"]
//鸡类
class Chiken(){
Egg child=null;
//鸡肚子里有一个蛋.
public Chiken(){
this.child=new Egg();
}
//得到鸡肚子里的蛋.
public Egg getChild(){
return this.child;
}
//鸡能孵化蛋
public Chiken born(Egg egg){
if(child==null){
System.println("没蛋你乱生什么!");
}else{
//蛋里面孵出了一只鸡
egg.chiken=new Chiken();
return egg.chiken;
}
}
}
//蛋类
class Egg(){
Chiken chiken=null;
public Egg(){
//蛋里面有一只没有生出来的鸡
this.chiken=null;
}
}
class Test(){
public static void main(String[] args){
//如果说先有蛋:
Egg anEgg=new Egg();//由于蛋不会自己孵化.所以这只蛋最后只有死掉.
//如果说先有鸡:
Chiken aChiken=new Chiken();
//得到鸡的蛋
Egg anEgg = aChiken.getChild();
//鸡可以孵化蛋可以再生出一只鸡
Chiken child=aChilken.born(anEgg);
}
}[/code]
如果有什么理解错了的地方,欢迎指出!
[code="java"]public class 蛋 {
private 鸡 下蛋的鸡;
public 鸡 下蛋() {
鸡 自己 = new 鸡();
自己.set孵化的蛋(this);
return 自己;
}
public void set下蛋的鸡(鸡 下蛋的鸡) {
this.下蛋的鸡 = 下蛋的鸡;
}
}[/code]
[code="java"]public class 鸡 {
private 蛋 孵化的蛋;
public 蛋 下蛋() {
蛋 下的蛋 = new 蛋();
下的蛋.set下蛋的鸡(this);
return 下的蛋;
}
public void set孵化的蛋(蛋 孵化的蛋) {
this.孵化的蛋 = 孵化的蛋;
}
}[/code]
鸡 下蛋 蛋
蛋 孵化 鸡
ham的代码 和 我的代码 最大的区别:
我可以 由蛋找到下它的鸡.
而ham则把这个逻辑隐藏在 鸡那边了, 也就是用鸡找到它下的蛋 就知道这个蛋曾经是这个鸡下过的.
正由于你的逻辑这样,就造就了你'先有鸡'结论.
我觉得, 我的代码是正确的, 结论就是: 你要有鸡 就必须先有孵化鸡的蛋, 但你要有蛋 就比较知道哪个鸡把蛋下的. 死循环...
要用编程实现这个.是不实际的.
Java是一门面对对象的语言.而面对对象的方式是最接近人类思维的方式.这就造成了人的思维左右了你所写的这个程序的思维.得出的结论自然也不相同.
还是给一个科学的解释吧: :D
[quote]
是先有第一只鸡,还是先有第一枚蛋?这是人类长久以来想要搞清的一个谜。[b]一位科学家、一位哲学家和一家禽养殖协会主席近日对此给出了同一答案——先有蛋[/b]。
据埃菲社26日援引《泰晤士报》的报道说,英国诺丁汉大学的物种进化方面的基因学专家约翰·布鲁克菲尔德教授认为,对他而言,这个答案再明确不过了。
他说,动物个体在出生之后,其体内的遗传物质是不会发生变化的。现代生物分子学说认为,是先有蛋中遗传物质的基因突变,才有鸡这个物种出现的可能。布鲁克菲尔德进一步解释说,第一只鸡先是包含在蛋中的一个胚胎,而那个胚胎的遗传基因与生出来的这只鸡的遗传基因是一样的;这也就是说,属于鸡这个物种的第一个成员肯定是一只含有鸡的遗传物质的蛋。
英国伦敦国王学院的哲学家大卫·帕皮诺从哲学的角度证明了布鲁克菲尔德的观点。他说:“种瓜得瓜,种豆得豆。说是袋鼠生下的蛋,结果蛋里孵出的却是鸵鸟,那么这枚蛋一定是鸵鸟产的,而不是袋鼠产的。”同样的道理,第一只鸡不可能是从其他种类动物所生的蛋中孵出来的。
报道说,英国一家禽养殖协会的主席查尔斯·博罗什说:“第一只鸡出生前,肯定是先有鸡蛋。当然,那些鸡蛋的样子可能和现在的蛋不一样。”[/quote]