张维迎《博弈与社会》笔记(3)导论:一些经济学的基础知识
这篇的主要内容介绍了经济学的基础知识吧。
经济学、社会学、心理学的区别
经济学与社会学的区别与共同点
经济学一般是从个人的行为出发解释社会现象(from micro to macro)。社会学的传统方法则是从社会的角度来解释个人的行为(from macro to micro)。对于某个人的具体行为,经济学认为他是为了追求自己的利益所做出的最好选择。社会学则认为他之所以这样做是因为社会规则如此。芝加哥大学的政治科学和哲学讲席教授埃尔斯特(Elster)在《社会规范和经济理论》一文中对此做了如下精辟的总结:在社会科学中,最为持久的分野是亚当·斯密的“经济人”(homo economicus)和艾米尔·涂尔干的“社会人”(homo sociologicus)两条思想路线的背道而驰。经济人的行为由工具理性所引导,而社会人的行为则受社会规范的指引。前者受未来回报的“拉动”(pulled),后者则受各种类似惯性(quasi-inertial)力量的“推动”(pushed)。前者主动适应变化的环境,总是不断地寻求改善;后者则对环境变化麻木无措,即使新的、更好的选择出现,也固守先前的行为。前者被描绘为一个能够自我约束的社会原子,后者被刻画成由社会力量所左右的没有头脑的玩偶。
经济学和社会学的方法有着巨大的差异,但也有着共同特点,那就是它们解释个人行为通常是采用逻辑演绎方式。即从一定的假设前提出发,经过因果链条的推理,得出相应的结论。
与心理学的区别
这一点和被称为行为科学基础的心理学有着很大的不同。心理学主要通过实验以及观察的方法来考察人们实际上如何行为及其潜在的心理机制。把这种实验的方法扩大到其他的领域就成为行为科学,如行为金融学(behavioral finance)、行为经济学(behavioral economics)、行为的法和经济学(behavioral law and economics)以及组织行为学(organizational behavior)等。这些学科可以被归结到行为学的范畴。
博弈论的位置
本书的研究对象同样是人的行为。其不同之处在于,我将使用博弈论(game theory)的方法从人际互动的角度来考察人的行为。根据前文,我们知道社会的两大基本问题——协调和合作,实际上都是人们如何互动的问题。
博弈论可以视为社会科学中理性一脉的罩伞,或者说为其提供了一个“统一场”理论。其中,“社会”可以作宽泛的理解,既包括由人类个人组成的社会,也包括其他各种参与人组成的群体(如公司、国家、动物、植物、计算机等)。博弈论不像经济学或政治科学等学科的其他分析工具那样,采用不同的、就事论事的框架来对各种具体问题进行分析,如完全竞争、垄断、寡头、国际贸易、税收、选举、遏制、动物行为等等。相反,博弈论先提出在原理上适用一切互动的情形的方法,然后考察这些方法在具体应用上会产生何种结果。(Aumann and Hart,1992)
如他们的介绍,博弈论把小到喝酒时的划拳游戏、大到国家间的战争等每一种互动的情形都视为一个博弈(game);把参与互动情形的当事者,无论是个人还是企业,都称为“参与人”(player),然后考察博弈的参与人如何进行决策,以此预测博弈的结局如何。这样一种对所有互动情形统一的处理方法正是博弈论有别于其他分析框架的核心所在,这也是为什么说博弈论是一个“统一场理论”的原因。正是由于能够为所有的互动情形提供一个统一的分析框架,博弈论现在已经渐渐成为社会科学研究的一种基本方法。
博弈论的三个假设
作为研究互动行为的一种方法,博弈论有着特色鲜明的前提假设。这些假设主要有三个:(1)博弈的每一个参与人是工具理性的;
(2)“每一个参与人是工具理性的”这一点是所有参与人的共同知识(common knowledge);(3)所有的参与人都了解博弈的规则。
假设3非常容易理解,从一些游戏来看,也似乎是一个很合理的要求。比如,不懂得下象棋的规则,自然就无法玩象棋游戏。但是,在现实中的很多互动情形,当事人可能并不知道所有相关的规则。比如,某人犯罪了,法官审理时,他还认为自己并没有触犯法律。实际上,如果当事人知道所有相关规则的话,律师、会计师等行业的工作量就大大减少了。
假设2是共同知识假设。关于这一假设我们会在下一章详细论述,这里仅作一个简单的描述。共同知识意味着什么呢?如果现实社会中满足这一假设的话,一方想在博弈中赢得另一方都不是一件很容易的事情。好比下棋,赢意味着赢的人至少要比输的人看远一步:我知道我这一步走了以后你下一步会怎么样走,而你不知道我已经知道你该如何走,即你落入了我的算计当中还不知道。但共同知识假设则是说,双方都有无限的推理能力,都看得很远,谁也不比谁差。这样一来,一方就没有办法凭借自己的更强的推理能力(或者说更聪明)来打败对方了。比如,我们中国有一个成语叫做“将计就计”。将计就计是什么呢?假定A设计了一个计谋来骗B,然后B知道A设计了这样的一个计谋来骗自己,所以B就利用这个计谋再去骗A。这就意味着B知道A很聪明,但是A不知道B知道A很聪明。如果A知道B知道A的伎俩,那么这个计谋就没有什么用处了。
看到这里,读者不免会有疑问,共同知识假设太不现实了,基于这样不现实的假设的理论能有说服力么?但是,我们在第二章将会看到,这是一个在理论分析上相当有用的假设,而且就分析问题来说,基于这一假设的博弈论能够提供富有启发的洞见。
工具理性假设
这里,我们要重点要讨论假设1,即工具理性假设。理性人是一个什么概念呢?简单来说,首先,我们说理性人要有一个明确的(well-defined)偏好。然后在给定约束条件下,该人总是追求自我偏好满足的最大化。这就是我们对理性人最简单的定义,有时候我们叫做最大化问题。简言之,就是假设人在每一项活动中都追求自身偏好满足的最大化。需要说明的是,“偏好”在经济学里面是一个内涵非常广泛的概念,甚至任何行为我们都可以解释为在追求自己偏好的最大化。比如自杀行为。一个人觉得活着不如死了好,所以他就会自杀。同样地,一个人总是帮助别人这样的利他主义行为也可以解释为个人在追求自身偏好的最大化行为,只不过他的偏好是那种“幸福着别人的幸福,痛苦着别人的痛苦”的较为高尚的偏好。所以说,理性人并不意味着这个人是自私自利的,只关心自己,不关心别人。从这个角度来说,理性人假设是一个由很窄到很宽泛(thin tothick)的假设。
前面提到偏好是给定的。但是,一个重要的问题是偏好是如何形成的。一些偏好可能跟人小时候的习惯有关。比如北方人喜欢吃面食,南方人喜欢吃米饭。还有一些偏好,可能一开始并不是偏好,只是约束条件,但经过一段时间后,逐渐由约束转变成偏好。一些社会规范可以内在化为个人偏好,这一点对理解人的行为非常重要。比如社会提倡不吃野生保护动物。一开始你不去吃可能并不是因为你不喜欢吃,而是因为觉得吃了有些内疚。但随着时间的推移,你就可能真的不喜欢做这类事情了。人的一些宗教行为可以从这个角度解释。所以偏好的形成是一个很复杂的过程。
前面还提到偏好是“明确的”。所谓“明确的”是指偏好具有如下两个基本特性:一是完备性假设,也就是说行为主体对任何两个选择之间的喜爱程度是可以进行比较的。比如,给定两个水果,苹果和梨,你知道自己更喜欢哪一个。二是传递性假设:如果你认为A比B好,你也认为B比C好,那么,你肯定认为A比C好。这就是偏好的传递性,实际上是要求一个人的偏好要前后一致。
如果一个人的偏好满足了我们上面提到的假设,我们就说该人具有明确的偏好,从而可以认为该人为理性人。为了使用数学工具研究理性人的行为,经济学家又对理性人的偏好添加了一些假设。其中最重要的一个假设是偏好的连续性,它假定物品消费给你带来的满足程度不会有跳跃,或者说不会有大喜大悲。如果一个人的偏好满足了这一假设后,我们就可以用函数来刻画一个人的选择和他的满足程度之间的关系。这一函数被称为效用函数。
我们知道有一些偏好是不满足连续性假设的。比如,有一种偏好被经济学家叫做“词典序偏好”(lexicographic preference)。词典序偏好是说一个人对于不同事物的偏好排序就像英文词典中的单词排序一样,总是把一种事物排在另一种事物前面。比如某个人有两个商品组合可供选择,这两个商品组合都是由酒和面包组成的。如果该人对酒和面包有词典序偏好,也就是说,只要两个商品组合中有一个组合里面的酒多,哪怕只多一点点,他也要酒多的那个商品组合;只有两个组合中酒一样多时,他才会选择面包多的那一个组合。他按照自己偏好对商品组合的排序就像英文词典中对单词的排序,字母A开头的单词一定是排在B开头的单词的前边。对于这类词典序偏好,因为它不满足连续性假设,我们就没有办法用效用函数来刻画它。
对于存在效用函数的偏好,我们可以定义一个无差异曲线(indifference curve)来表示它。所谓无差异是指不同的“商品组合”给消费者所带来的满足程度是一样的。无差异曲线则代表所有这些商品组合的集合。如下图所示,X表示梨,Y表示桃子,则图中平面上的每一点都表示不同数量的梨和桃子的商品组合。而连接A、B两点的曲线就是一条无差异曲线,在这条线上每一点所带来的效用水平都是相等的。比如,A点表示3个梨和5个桃子的组合,B点表示8个梨和2个桃子的组合,它们在同一条线上表示它们给这个消费者所带来的效用水平相等。位置更高的无差异曲线则代表更高的效用水平。
研究人的行为除了需要知道他的偏好外,还需要知道他面临的约束条件。一般来说,除了我们前面提到的财富约束外,还有其他约束条件:首先是技术性约束。比如我们每天的工作或学习时间不可以超过24小时,我们的消费需要有健康的身体等。其次是制度上的约束。比如产权制度规定你所消费的商品不可以偷抢,只能花钱购买。最后,信息的约束也是一种非常重要的约束。比如当我们面对不同的商品组合时,由于不知道质量等信息,就会难以选择。
个人的最优选择是由偏好和约束条件共同决定的。现实中人们的选择不一样,既可能是因为偏好不一样所致,也可能是因为约束条件不一样造成。在我看来,现实中人们偏好之间的差异小于人们面临的约束条件的差异,人们之间不同的选择往往是约束条件不同所致。比如,有人买大房子、开豪华车,有人买小房子、开经济车,主要原因不是他们的偏好不同,而是由于收入不同。当然,也可能是偏好不同,比如有的人更在乎保护环境,喜欢勤俭节约。有好多人只买环保的混合动力汽车,不是收入问题,而是理念(偏好)问题。
法律和社会规范等游戏规则对个人的选择影响,既可以通过约束条件发挥作用,也可以通过偏好发挥作用,视情况而定。比如说,一个人遵守法律只是由于害怕违法后受到法律的惩罚,法律对他就只是个约束条件。但如果一个人养成了守法的习惯,干了违法的事会感到内疚、痛苦,我们可以说守法是他的偏好。
如果一个人的偏好可以用一个效用函数表达,再进一步明确了约束条件,个人的最优选择就变成在满足约束条件的情况下最大化自己偏好的问题,我们就可以运用数学上的最优化方法来计算一个人的最优行为了。最优选择是边际效用等于边际成本之处决定的。在经济学上,如果自变量代表商品数量,因变量代表效用水平,边际效用是指消费的商品数量增加一点的话,效用水平所增加的量;边际成本则是指消费的商品的数量增加所带来的成本增加量(表现为由于其他消费品的减少而牺牲的效用)。经济学中的边际概念就是数学上的微分概念。根据微积分的知识,我们知道最优的商品消费数量一定使得边际效用和边际成本相等。
上面讲的都是确定环境下的个人选择。其实我们大量的选择都是在不确定的环境下进行的,即选择与结果之间并没有一一的对应关系。比如说你投资股票,其实你并不知道未来的收益是多少。对于不确定环境下人们的选择,经济学家常用的分析工具是预期效用理论(expected utility theory)。预期效用是指某一选择在不同事件下得到的效用水平的加权,权数是事件出现的概率。我们这里用一个例子来说明。比如,你准备出门,但一会儿有可能下雨,假定可能性为50%,现在需要决定带不带伞。如果带伞,若下雨,你得到的效用是u1,若不下雨,你得到的效用是u2;如果不带伞,若下雨,你得到的效用是u3,若不下雨,你得到的效用是u4。预期效用理论是指在这种情况下,你决定带不带伞取决于两种选择下的预期效用的比较。带伞的预期效用为0.5×u1+0.5×u2,不带伞的预期效用为0.5×u3+0.5×u4。如果0.5×u1+0.5×u2大于0.5×u3+0.5×u4,则应该带伞,否则应选择不带伞。
不确定情况下的选择涉及人们对待风险的态度。我们知道,对于给定的不确定性,有的人喜欢冒险,愿意接受不确定性的挑战;有的人则保守一些,不愿意承担风险;有的人则介于二者之间。比如,现在有两种选择:一是你没有任何风险得到确定的100元钱;二是你根据抛硬币的结果来得到收入,如果正面朝上,你得到200元钱,如果反面朝上,你得到的是0。抛硬币的收入是一种不确定的收入,其预期收入也为100元。喜欢冒险的人会选择抛硬币,在经济学中称他们为风险爱好者(risk lover);保守一些的人则会选择没有风险的100元,被称为是风险回避者(risk averser);如果某一个人对这两个选择是无所谓的话,我们说这个人是风险中性的(risk neutral)。
批注:一、偏好、约束(确定环境下的个人选择)。二、期望效用理论、风险(不确定环境下的个人选择)。虽然说这样会显得内容比较多,但也比较全面和严谨吧。
有限理性
以上是经济学中对理性的界定和描述,被称为完全理性假设。我们可以看到,完全理性是一个非常理想化的假设,它对人的认知能力和决策能力有很高的要求。但在现实中,人的行为并不是完全理性的。因此,人们很自然地对理性人假设提出批评。这些批评可以归结为三个方面。
有限理性
第一个是有限理性。诺贝尔经济学奖得主西蒙(Herbert Simon)创造了一个有限理性(bounded rationality)的概念来描述人的行为。他认为,人的大脑加工能力、记忆能力均有限,所以人不可能是完全理性的,只能是有限理性。所以,我们可以观察到人们经常模仿别人的所作所为,以致出现盲从和迷信等现象。
有限毅力
第二个是有限毅力(bounded willpower)。完全理性意味着人们能在眼前利益与长远利益之间进行精确的计算,但现实中人们做一些事情经常是由于毅力不够,抵挡不住眼前诱惑所致。比如说很多人戒烟不成功,减肥不成功,原因就在于缺乏足够的毅力。吸毒者也知道吸毒对自己身体不好,但是就是经不住短期的诱惑。再比如,对于一个完全理性的人,花钱消费时刷信用卡付费和现金支付应该完全一样的,但实际上不一样,刷卡往往会让人们更倾向于接受较高的价格以及多消费。
如果有限毅力带来的问题严重到一定程度,就给政府干预提供了一定的理由。比如在英国,一个靠领救济金过日子的人,星期一领到救济金,一周7天的生活费,他到第三天的时候就全部花光了,这样的人你是不能将生活费一次性全部给他的。小孩子也一样。你一年预备给他们2400元零花钱,如果在年初都给了他,他可能两个月就花光了。所以你只能每个月给他200元,告诉他这是本月的零花钱。对于最没有自制力的孩子,你应该按天给他零花钱并且告诉他,这是你今天的零花钱,明天的零花钱明天再给你。
为了减少这种自身毅力不足导致的问题,人们就会采取一些措施。比如,为了防止自己乱花钱,最好少用信用卡,口袋里少带现金。你要是想限制自己抽烟,那你出门时就应该少带香烟,确实有些烟民是这样做的。有一个有趣的例子是曾在“文化大革命”期间播放过的一部朝鲜电影《永生的战士》,讲的是有一个革命者被敌人抓住之后,他自己把自己的舌头咬掉。为什么?就是害怕没有足够的意志控制自己,在被敌人拷打得难以忍受的时候会出卖同志。如果把自己的舌头咬掉,就没有办法说话了,所以敌人拷打得再厉害,自己也不会招认了。这种行为实际上是一种承诺行为(commitment)——博弈论的一个重要概念,我们后面会讲到。
批注:这点有意思。对于行为的调控,,,
有限自利
第三个是有限自利(bounded self interest)。有限自利包含很多的含义,一种含义是利他主义,一种是情绪化行为(emotional behavior)。很多人都有情绪化行为。比如大学生们在教室占座,一个学生把另一个学生用来占座的书给扔掉了,然后坐下来。另一个学生过来后就和该生吵架,然后又动手打起来,结果两个人都受伤了,都进了医院,医药费就花了不少。仔细想想,值得吗?我们经常讲鸡蛋碰不过石头,胳膊拧不过大腿,为什么有人就要碰一下呢?为什么有人非要拧一下呢?因此,我们好多人的行为不是完全理性的。情绪化行为的存在也是对理性人假设的批评。但如我们将看到的,在重复博弈中,情绪化行为也可能是非常理性的,有些社会规范是通过情绪化行为维持的。
理性人假设的意义
尽管理性人假设有些极端,但建立在理性人假设基础上的选择理论仍然为我们预测人的行为和评价制度的优劣提供了很好的分析工具。经济学家并没有幼稚到相信现实的人像他们假设的那样具有完全理性,但他们仍然坚持这个假设。为什么?诺贝尔经济学奖得主、芝加哥大学教授Myerson(1999)提出了三个理由:
第一个理由是,在没有更好的其他可选择的理论的时候,接受理性人假设是一个退而求其次的办法。尽管我们知道人不是完全理性的,甚至经常会干傻事,但目前还没有发展出来一个建立在非理性假设上的、可以信赖的、准确的、具有更好处理能力的研究框架。虽然有限理性更符合现实,但以此构造理论的努力目前并不成功。非理性假设可以描述许多现象,但不可能建立起一个有分析能力的理论体系。在思想市场上,在众多可选择的假设中,理性人假设仍然是最具竞争优势的假设。这是所谓的“经济学帝国主义”出现的根本原因。
第二个理由是,从社会演进的角度来看,尽管人不是每时每刻都是理性的,但是如果一个人长期不理性的话,他(她)就很难生存。比如,现在有一个人,他的偏好不满足一致性假设。具体说来,设想有苹果、梨、桃子三种水果让他进行选择。先问他喜欢梨还是苹果?他说喜欢梨。再问他喜欢苹果还是桃子?他说喜欢苹果。最后问他桃子和梨喜欢哪一个?按照偏好一致性的要求,如果他是理性的话,他应该喜欢梨。现在假如这个人不理性,就意味着现在他喜欢桃子而不喜欢梨。结果会怎样呢?那他就会在市场交易中一败涂地。比如,一开始他手里有一个苹果,你手里有一个梨和一个桃子。你先拿一个梨去和他交换,并要求他除了把苹果给你外,再给你一分钱。因为按照前面的假设他在苹果和梨之间更喜欢梨,这时他肯定会同意和你交换。现在他的手里有一个梨了,你手里有一个苹果和一个桃子。你现在再拿来一个桃子让他用梨与你交换。因为他在梨与桃子之间更喜欢梨,因此,他会愿意再给你一分钱。结果三次交换后现在回到了一开始的状态:他有一个苹果,你有一个梨和一个桃子。不同的是他少了3分钱,你多了3分钱。你再开始新一轮的交换,这样一直换下去,他纵有万贯家财也会变成穷光蛋,在生存竞争中可能没有办法存活下去。所以说,一个人尽管不是每时每刻都是理性的,但是从长期来看,人们应该从生活中习得理性。
第三个理由是,我们整个社会科学的目的不仅仅是要预测人是如何行为的,还要分析社会制度的优劣,评价各种政策和改革方案。为此,我们要对人性有一个前提假设和判断。如果我们假定人都是不理性的话,什么社会弊端都可以归结到人的问题,那么制度就没有办法设计了,人类也就没有办法改进了。
相关文章:

张维迎《博弈与社会》笔记(3)导论:一些经济学的基础知识
这篇的主要内容介绍了经济学的基础知识吧。 经济学、社会学、心理学的区别 经济学与社会学的区别与共同点 经济学一般是从个人的行为出发解释社会现象(from micro to macro)。社会学的传统方法则是从社会的角度来解释个人的行为(from macro…...
随机生成UI不重叠
注释 简单的随机生成UI且不发生重叠,可以修改算法进行更深入的探索 using System.Collections; using System.Collections.Generic; using UnityEngine;public class CellInfo {/// <summary>/// 物体位置/// </summary>public Vector2 pos;/// <s…...

【C/C++】C/C++编程——第一个 C++ 程序:HelloWorld
第一个 C 程序:HelloWorld 大家好,我是 shopeeai,也可以叫我虾皮,中科大菜鸟研究生。昨天我们成功搭建好了 C 的开发环境,今天我们来介绍一下第一个 C 程序,打印一个"hello world"。首先我们先贴一下示例代…...

扩散视觉反事实算法 DVC:对抗性鲁棒分类器 + 扩散模型,跨模态对比原始的 fundus 图 VS 生成的 OCT 图
对抗性鲁棒分类器 扩散模型:为 正常的 fundus 和 OCT 图,生成更多病症图 解决问题创新点 效果调参技巧总结Fundus 转 OCT(只是猜想,不一定)1. 疾病特征模拟2. 数据增强3. 疾病进展模拟4. 跨模态学习 解决问题 论文&a…...

C++(6) 继承
文章目录 继承1. 继承1.1 什么是继承1.2 C 继承方式1.2.1 基本案例1.2.2 继承权限组合1.2.3 继承中构造函数的说法1.2.4 继承中析构函数的执行顺序1.2.5 继承中变量名称冲突问题1.2.6 继承中函数【重写】 继承 1. 继承 1.1 什么是继承 面向对象程序设计中最重要的一个概念是继…...

【Servlet】Smart Tomcat插件简化Servlet开发流程及解决常见问题
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Servlet】 本专栏旨在分享学习Servlet的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一、Smart Tomcat插件二…...
解决Qt连接不上mysql数据库
问题: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7 下载网盘中的三个文件(网盘链接在文章结尾):qsqlmysql.dll、qsqlmysqld.qll、libmysql.dll找到你安装Qt的目录ÿ…...

kubernetes-快速部署一套k8s集群
1、前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式: kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 二进制包 从github下载发行…...

Windows Server 安装 Docker
一、简介 Docker 不是一个通用容器工具,它依赖运行的 Linux 内核环境。Docker 实质上是在运行的 Linux 服务器上制造了一个隔离的文件环境,所以它执行的效率几乎等同于所部署的 Linux 主机服务器性能。因此,Docker 必须部署在 Linux 内核系统…...

智能分析网关V4智慧机房:视频AI智能安全监管方案
一、背景分析 随着互联网的迅猛发展,机房及其配套设施的数量持续攀升,它们的运行状况对于企业运营效率和服务质量的影响日益显著。作为企业信息化的基石,机房的安全监测与管理的重要性不容忽视。它不仅关乎企业的稳定运营,同时也直…...

一些反序列化总结
1 反序列化漏洞原理 如果反序列化的内容就是那串字符串,是用户可以控制的(即变量的值),且后台不正当的使用了PHP中的魔法函数,就会导致反序列化漏洞,可以执行任意命令。Java 序列化指 Java 对象转换为字节序…...
分披萨(100%用例)C卷(JavaPythonC++Node.jsC语言)
“吃货”和“馋嘴”两人到披萨店点了一份铁盘(圆形)披萨,并咐店员将披萨按放射状切成大小相同的偶数扇形小块。但是粗心服务员将披萨切成了每块大小都完全不同奇数块,且肉眼能分辨出大小。 由于两人都想吃到最多的披萨,他们商量了一个他们认为公平的分法:从“吃货开始,轮流…...
SQL字符串截取函数【简笔记】
MySQL提供了多种字符串函数来处理和截取字符串。下面是一些常用的字符串截取函数及其使用示范: SUBSTRING(str, pos, len) str 是要截取的字符串。pos 是开始截取的位置。len 是截取的长度。 示例: SELECT SUBSTRING(Hello, World!, 8, 5); -- 结果: "World…...

会话技术复习笔记
一.登录校验的需求 什么是登录校验? 所谓登录校验,指的是我们在服务器端接收到浏览器发送过来的请求之后,首先我们要对请求进行校验。先要校验一下用户登录了没有,如果用户已经登录了,就直接执行对应的业务操作就可以…...

我用Rust开发Rocketmq name server
我是蚂蚁背大象(Apache EventMesh PMC&Committer),文章对你有帮助给Rocketmq-rust star,关注我GitHub:mxsm,文章有不正确的地方请您斧正,创建ISSUE提交PR~谢谢! Emal:mxsmapache.com 1. Rocketmq-rust namesrv概述 经过一个多月的开发,终…...

【Deep Dive: Al Webinar】开源人工智能中赋能、透明性和可重复性三者之间的关系...
【深入探讨人工智能】网络研讨系列总共有 17 个视频。我们按照视频内容,大致上分成了 3 个大类: 1. 人工智能的开放、风险与挑战(4 篇) 2. 人工智能的治理(总共 12 篇),其中分成了几个子类&…...

将Html页面转换为Wordpress页面
问题:我们经常会从html源码下载网站上获得我们想要的网站内容框架,以及部分诸如联系我们,About 等内页,但是在文章的发布上,则远不如Wordpress简便。而Wordpress尽管有各种模板,但修改又比较麻烦。解决方法…...
Next.js 学习笔记(七)——样式
样式 Next.js 支持不同的应用程序样式设计方法,包括: 全局 CSS:对于有传统 CSS 使用经验的人来说,使用简单且熟悉,但随着应用程序的增长,可能会导致 CSS 包过大,难以管理样式。CSS 模块&#…...

金线检测步骤
半导体行业,金线检测是必不可以少的一个检测项,除了焊点,die面,手指以外的必检项目. 重难点在于金线的提取,算法多种多样,找到适合才是关键,涉及到打光,图像处理,这里不做深入分析,软件和硬件配合好才能做的最好. 经典算法Block分析,结合图像检测. 高斯算法提取 边缘检测算法提…...

电池-电量监测基础知识
一、为何要进行电池电量监测 不知各位有没有想过为何现在手机电池和笔记本电脑电池不容易鼓包了?十年前还经常出现的电池鼓包最近像是消失了一样,其实是因为随着电量监测技术的发展,哪怕是最基本的电子设备也有电池侧和产品侧至少两级电量监测…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...

tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...