扯淡之——世界上先有鸡还是先有鸡蛋

2024-03-01 05:08
文章标签 世界 鸡蛋 扯淡 先有

本文主要是介绍扯淡之——世界上先有鸡还是先有鸡蛋,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

扯淡之——世界上先有鸡还是先有鸡蛋

 

“世界上先有鸡还是先有蛋”是一个非常著名的思辨难题,至今为止也没有标准的答案,甚至还有科学研究。

蛋白质方面的研究

       一只小鸡正在从蛋壳里孵化出来。

      英国华威大学的马克·罗杰教授与大卫教授在帮助谢菲尔德大学进行试验研究时,发现形成鸡蛋方解石晶体硬壳的关键鸡肉蛋白“OC-17蛋白”(ovocleidin-17)的存在贯彻了整个蛋壳的形成过程并起到了催化的作用,这使得他们认为在“先有鸡还是先有蛋”的问题里首先存在的是鸡,或者确切的说是OC-17这种鸡肉蛋白。不过马克·罗杰在报告中的附加引述中说到:“这个发现难道就能证明先有鸡再有蛋吗?我们想强调的‘先有鸡还是先有蛋’这个问题虽然很有趣但是事实上却毫无意义。不过这个研究倒是使得学界对高效快速的结晶方法有了新的见解,这项研究也能够在骨头的形成以及二氧化碳是如何被贮存在石灰石等问题上提供帮助。”[9]

    不过,他们的研究却与早先时候的研究结论有些出入。约翰·布鲁克菲尔德(John Brookfield)与大卫·帕皮诺(David Papineau)教授认为,在世界上第一只鸡出现后,在它之前也必定需要并有一颗能够孵出它来的蛋[10]。生物学家迈尔斯进一步的指出了前者在研究中的瑕疵,称其他的鸟类会使用与OC-17不同的蛋白质来制造鸟蛋,而且OC蛋白的演变并不能够与鸟蛋的演变向吻合;OC蛋白是从一种古老的蛋白质演变而来,这种蛋白在鸟类分支从爬行动物分离之前便开始参与制造动物的蛋[11]。

          摘自维基百科《先有鸡还是先有蛋》

 

    研究者说先有突变的鸡基因,可是对于“世界上先有鸡还是有鸡蛋”问题没有切确的答案,或者说非常有说服力的证据。

 

宗教观点与神话故事

主条目:创造论

       犹太教及基督教的神话传说中都表明是上帝创造了世间的种种,其中也当然包括鸟。犹太教及基督教的神话中提到上帝创造了鸟类并让它们繁衍后代,但是神话中并没有提到蛋的事。例如创世纪第一章:

      19有晚上,有早晨,是第四日。20神说,水要多多滋生有生命的物,要有雀鸟飞在地面以上,天空之中。21神就造出大鱼和水中所滋生各样有生命的动物,各从其类。又造出各样飞鸟,各从其类。神看着是好的。22神就赐福给这一切,说,滋生繁多,充满海中的水。雀鸟也要多生在地上。

      飞鸟为统称,并没有明确说明是否事先有鸟还是先有蛋?

       在印度的经书中记载,神创造了鸟及其他一切生命形式。不过,印度的传说中所谈到的蛋被扩大到了非鸡蛋的蛋的范围,印度的神话也提到了“宇宙蛋”(即梵天诞生的金卵,金卵的其他部分扩张为整个宇宙)这个概念。

      而在中国神话中,认为天地是由盘古“开天辟地”所致,而当时混沌的世界就如同一个蛋一样。

          摘自维基百科《先有鸡还是先有蛋》

 

     神话中也是如此,没有明确提及到底神先创造了鸡蛋还是先创造了鸡,只说了创造了飞禽走兽。

 

       “世界上先有鸡还是先有鸡蛋”存在辩证歧义的原因在于,如果先有鸡,那么孵出鸡的蛋是不是鸡蛋;如果先有鸡蛋,那么是不是只有鸡生的蛋才算是鸡蛋。从概念定义上分析,无论是先有鸡还是先有鸡蛋,两种答案都无法避开对方,任何一方的概念定义都需要另一方支撑。从生物学上分析,卵生动物的基因突变可以在母体形成蛋的时候进行突变,也可以在蛋离开母体的时候受到辐射或者化学物质导致的突变,假如在母体内形成蛋的过程中突变(离开母体之前)成鸡的基因,那么下蛋后这颗蛋就是鸡蛋,因为它孵出来100%是小鸡,所以先有鸡蛋;假如蛋离开母体之后受到周围环境影响才基因突变为鸡的基因,那么这颗蛋在生成时不是鸡蛋,但是出生的就是鸡,所以先有鸡,或者说这颗蛋是从别的蛋突变为鸡蛋,可是生物学没有这样的定义。

        本人也不懂生物学。在概念和常识上鸡和鸡蛋是相互依赖的——鸡蛋是鸡生的以及鸡是从鸡蛋中孵出来的;联系到编程中的概念——整体与部分,鸡和鸡蛋是一个整体,鸡出生依赖于鸡蛋,鸡蛋创造依赖于鸡,部分无法独立于整体而存在,鸡无法与“鸡和鸡蛋”撇开关系,同样鸡蛋也无法与“鸡和鸡蛋”撇开关系,两个无法完全独立的部分组成了一个整体。在UML中跟“世界上先有鸡还是鸡蛋”关系最为相似就是组合关系依赖关系

依赖关系(Dependence):假设A类的变化引起了B类的变化,则说名B类依赖于A类。

大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。

依赖关系是一种“使用”关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。

 

组合关系(Composition):也是整体与部分的关系,但是整体与部分不可以分开.

• 组合关系(Composition)也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在,部分对象与整体对象之 间具有同生共死的关系。

• 在组合关系中,成员类是整体类的一部分,而且整体类可以控制成员类的生命周期,即成员类的存在依赖于整体类。在UML中,组合关系用带实心菱形的直线表示。

 

从生命周期上,鸡和鸡蛋相互依赖——依赖关系;从概念定义上,鸡和鸡蛋达成组合关系,相互配合完成了各自的定义。

在C++中对于先有鸡还是鸡蛋也有类似现象。例如以下定义

A.h

===================

class A {
public:B memberB;
};

 

B.h

=======================

class B {
public:A memberA;
};

       如果编译的时候直接链接A.h和B.h(假设A.h放在B.h之前),那么编译器会报错找不到类B。这种情况对于新手非常棘手,大学时候在写毕业设计时候就遇到这样问题,当初卡了大半天,后来才明白C和C++编译器允许先声明后定义,类型只要声明后就可以直接使用。所以可以改为

A.h

===================

class B;
class A {
public:B memberB;
};

B.h

========================

class A;
class B {
public:A memberA;
};

编译就不会报错。

 

另外一种特殊情况就是链表节点声明定义

Node.h

=====================

template<class T> class Node {public:T data;Node<T> *next;
};

对于编译器来讲也是先声明后定义,先声明了Node类,然后再定义Node结构体的内容。并且千万记住,Node类的定义中只允许Node的声明引用,不允许有Node的实例。以下代码编译器会报错

Node.h

=====================

template<class T> class Node {
public:T data;Node<T> next;// 因为找不到Node的实体,必须用指针引用定义,不支持直接实例化,因为定义不全,如果支持就是引起编译器循环递归,变成了先有鸡还是先有鸡蛋的问题了。
};

以上两种情况我们可以把声明看做鸡蛋,定义看做鸡,先有鸡蛋,然后才能有鸡。如果鸡蛋不完整,那么是不能存在鸡的(Node例子)。

 

这篇关于扯淡之——世界上先有鸡还是先有鸡蛋的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/761309

相关文章

揭秘世界上那些同时横跨两大洲的国家

我们在《世界人口过亿的一级行政区分布》盘点全球是那些人口过亿的一级行政区。 现在我们介绍五个横跨两州的国家,并整理七大洲和这些国家的KML矢量数据分析分享给大家,如果你需要这些数据,请在文末查看领取方式。 世界上横跨两大洲的国家 地球被分为七个大洲分别是亚洲、欧洲、北美洲、南美洲、非洲、大洋洲和南极洲。 七大洲示意图 其中,南极洲是无人居住的大陆,而其他六个大洲则孕育了众多国家和

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

【Linux】萌新看过来!一篇文章带你走进Linux世界

🚀个人主页:奋斗的小羊 🚀所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言💥1、初识Linux💥1.1 什么是操作系统?💥1.2 各种操作系统对比💥1.3 现代Linux应用💥1.4 Linux常用版本 💥2、Linux 和 Windows 目录结构对比💥2.1 文件系统组织方式💥2.2

Elasticsearch:无状态世界中的数据安全

作者:来自 Elastic Henning Andersen 在最近的博客文章中,我们宣布了支持 Elastic Cloud Serverless 产品的无状态架构。通过将持久性保证和复制卸载到对象存储(例如 Amazon S3),我们获得了许多优势和简化。 从历史上看,Elasticsearch 依靠本地磁盘持久性来确保数据安全并处理陈旧或孤立的节点。在本博客中,我们将讨论无状态的数据持

【AI大模型应用开发】2.1 Function Calling连接外部世界 - 入门与实战(1)

Function Calling是大模型连接外部世界的通道,目前出现的插件(Plugins )、OpenAI的Actions、各个大模型平台中出现的tools工具集,其实都是Function Calling的范畴。时下大火的OpenAI的GPTs,原理就是使用了Function Calling,例如联网检索、code interpreter。 本文带大家了解下Function calling,看

005:VTK世界坐标系中的相机和物体

VTK医学图像处理---世界坐标系中的相机和物体 左侧是成像结果                                                    右侧是世界坐标系中的相机与被观察物体 目录 VTK医学图像处理---世界坐标系中的相机和物体 简介 1 在三维空间中添加坐标系 2 世界坐标系中的相机 3 世界坐标系中vtkImageData的参数 总结:

深入RabbitMQ世界:探索3种队列、4种交换机、7大工作模式及常见概念

文章目录 文章导图RabbitMQ架构及相关概念四大核心概念名词解读 七大工作模式及四大交换机类型0、前置了解-默认交换机DirectExchange1、简单模式(Simple Queue)-默认DirectExchange2、 工作队列模式(Work Queues)-默认DirectExchange3、发布/订阅模式(Publish/Subscribe)-FanoutExchange4、路

攻防世界 unseping

unseping 攻防世界web新手练习 -unseping_攻防世界web新手题unseping-CSDN博客 这道题对我来说还是有点难,什么oct绕过命令执行第一次遇到捏,所以基本是跟着别人的wp写的,一点点记录吧 先对源码进行分析 <?phphighlight_file(__FILE__);//定义了一个ease类class ease{private $method;privat

世界公认十大护眼灯数据出炉!一文看懂孩子用的台灯哪个牌子好

近年来,随着科技的迅猛发展,诸如智能手机、电脑等电子设备在工作、学习及娱乐中的应用日益广泛,人们对这些设备的依赖程度也随之加深。然而,长时间面对屏幕不可避免地给眼睛带来伤害,如眼疲劳、干燥甚至近视等问题。因此,市场对能够缓解眼疲劳的照明产品的需求日益增长。这类护眼照明产品通常采用无频闪、无紫外线辐射等技术,旨在减少对眼睛的潜在危害,有效保护视力健康,并降低眼疾的发生率。随着护眼台灯的不断创新进步,