文心一言 VS 讯飞星火 VS chatgpt (28)-- 算法导论5.1 3题
Posted 福大大架构师每日一题
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文心一言 VS 讯飞星火 VS chatgpt (28)-- 算法导论5.1 3题相关的知识,希望对你有一定的参考价值。
三、假设你希望以1/2的概率输出0与 1。你可以自由使用一个输出0或1的过程 BIASED-RANDOM。它以某概率 p 输出1,概率 1-p 输出0,其中 0<p<1 ,但是 p 的值未知。请给出一个利用 BIASED-RANDOM 作为子程序的算法,返回一个无偏的结果,能以概率1/2返回0,以概率 1/2 返回1。作为 p 的函数,你的算法的期望运行时间是多少?
文心一言:
可以使用贝叶斯公式来计算无偏的结果。假设我们进行了n次试验,其中BIASED-RANDOM以概率p输出1,以概率1-p输出0。设N0为输出0的次数,N1为输出1的次数,则有N0+N1=n。根据贝叶斯公式,可以得到:
p(N0, N1|p) = p(N0, N1, p) / p(p)
其中,p(N0, N1, p)表示在n次试验中,N0次试验输出0,N1次试验输出1,且BIASED-RANDOM以概率p输出1的概率。p(p)表示概率p的概率密度函数,可以在已知p的范围的情况下计算得到。
由于要求无偏的结果,因此N0和N1的概率分布应该是相等的。因此,可以取p(N0, N1|p) = 1 / (n+1),并将此值作为算法的输出结果。
该算法的期望运行时间取决于n的大小。在最坏情况下,即n非常大时,每次试验都需要很长时间才能得到结果。因此,该算法的期望运行时间可能会非常大。但是,当n比较小的时候,该算法的运行时间是O(1)的。
讯飞星火:
我们可以使用 BIASED-RANDOM 作为子过程,来生成一个无偏的随机数。具体来说,我们可以利用 BIASED-RANDOM 生成两个独立的随机数 x 和 y,然后根据以下条件计算出一个新的随机数 z:
-
如果 x 输出了 1,y 输出了 0,则 z 输出 0;
-
如果 x 输出了 0,y 输出了 1,则 z 输出 1;
-
否则,z 输出 x*y。
这个新的随机数 z 就是我们需要的结果。由于 BIASED-RANDOM 是无偏的,因此这个新随机数 z 也是无偏的。同时,由于 BIASED-RANDOM 只依赖于 p 和 x、y 两个独立的过程,因此它的期望运行时间是 O(p)。
现在我们来计算一下这个新随机数 z 的期望值。由于 BIASED-RANDOM 是一个二元过程,因此它的期望值为 pp+(1-p)(1-p)=2p^2-2p+1。而根据上面的条件,z 的期望值为:
E(z) = p(xy) + (1-p)(x(1-y)) + (1-p)(y(1-x))
= pxy + (1-p)x + (1-p)y
= pxy + px + py
= p(xy + x + y)
= p*z
因此,我们得到了一个新的期望运行时间为 O(p),并且能够以概率 1/2 返回 0、以概率 1/2 返回 1 的无偏随机数生成函数。
华为盘古:
360智脑:
可以使用Bernoulli-Monte Carlo方法来实现。具体来说,可以设置BIASED-RANDOM过程的初始值为0,并不断迭代直到达到所需的输出结果。在每个迭代步骤中,将BIASED-RANDOM过程的输出乘以p并将结果加上 BIASED-RANDOM过程的当前值。重复此操作直到最终结果满足要求为止。这个算法的预期时间复杂度取决于BIASED-RANDOM过程的期望时间复杂度。在这种情况下,由于每次迭代都涉及到一次BIASED-RANDOM过程的输出,因此期望时间复杂度为O(E[BIASED-RANDOM]) = O(log E[x]),其中E表示期望值。由于 BIASED-RANDOM 是一个二项分布,其期望值可以通过二项分布的性质来计算。因此,我们可以计算出BIASED-RANDOM的期望时间复杂度为O(log E[x]),其中E[x]表示任意两个连续时间点之间经过的时间间隔。
chatglm:
算法如下:
1.调用 BIASED-RANDOM 过程,得到概率 p 的值。
2.如果 p > 0.5,则返回 0。
3.如果 p < 0.5,则返回 1。
这种算法是无偏的,因为它不考虑 BIASED-RANDOM 过程的输出,而是根据 p 的值随机选择返回 0 或 1。
对于每个 p 的值,算法都需要调用 BIASED-RANDOM 过程一次,因此时间复杂度为 O(1)。
由于 BIASED-RANDOM 过程的输出是随机的,因此算法的期望运行时间与 p 的值有关。当 p 接近 0 或 1 时,算法的期望运行时间会相应缩短,因为在这种情况下,BIASED-RANDOM 过程的输出更可能接近 0 或 1。
chatgpt:
为了以 1/2 的概率输出 0 和 1,我们可以利用 BIASED-RANDOM 过程来实现。具体算法如下:
1.调用 BIASED-RANDOM 过程两次;
2.如果两次结果都是相同的,则返回这个结果;
3.否则,重复步骤 1。
由于 BIASED-RANDOM 过程只输出 0 和 1 两种结果,因此该算法的期望运行时间不会超过 3 次调用 BIASED-RANDOM 过程。接下来,我们分别考虑前两次调用 BIASED-RANDOM 过程的情况:
1.如果第一次和第二次调用的结果都是 0 或者都是 1,则直接返回这个结果即可;
2.如果第一次和第二次调用的结果不同,则需要再次调用 BIASED-RANDOM 过程,重复上述步骤。
由于 BIASED-RANDOM 过程的输出概率为 p 和 1-p,因此两次调用结果相同的概率为 p^2 + (1-p)^2,结果不同的概率为 2p(1-p)。因此,需要多次调用 BIASED-RANDOM 过程的概率为 2p(1-p),即:
P(需要多次调用) = 2p(1-p)
第一次和第二次调用结果相同的概率为 p^2 + (1-p)^2,即:
P(第一次和第二次结果相同) = p^2 + (1-p)^2
因此,算法的期望运行时间为:
E(T) = P(需要多次调用) * [2 + E(T)] + P(第一次和第二次结果相同)
展开得到:
E(T) = 2p(1-p)*[2+E(T)] + (p^2 + (1-p)^2)
整理可得:
E(T) = 2 + 2p - 4p^2
因此,该算法的期望运行时间为 O(1),只需要进行常数次 BIASED-RANDOM 过程调用即可得到无偏结果。
文心一言 VS ChatGPT,国产大模型和国外的差距有多大?
3月16号,百度正式发布了『文心一言』,这是国内公司第一次发布类ChatGPT的产品。大家一定非常好奇文心一言和chatgpt之间的差距有多大?国产大模型还有多少路可走?本文就全面测评这两款产品!
目录
体验网址
1、文心一言:https://yiyan.baidu.com/
2、ChatGPT
1、旅游攻略
结论:难分伯仲
2、数理逻辑题
我选了一道很经典的面试数理逻辑题,也比较难,看看他们能不能求解出:
结论:chatgpt明明说错了,但却那么自信?!所以本局文心一言胜出!
原题链接:【学习】数理逻辑超难面试题:甲乙两人互猜数字,你会做吗? - 腾讯云开发者社区-腾讯云
3、故事创作
结论:这一轮文心一言略胜出,chatgpt写的有一些敷衍了!
4、古诗创作
结论:难分伯仲
5、图片创作
结论:chatgpt还不支持绘画功能,这一轮文心一言完胜!
因为图片生成式模型大部分是基于diffusion models/GANs的,chatgpt是基于transformer,未支持此功能很正常。大家可以去『文心一格』官网体会更多图片生成功能:文心一格 - AI艺术和创意辅助平台
6、文案创作
结论:文心一言的文案更具有感情和感染力!
7、代码编写
结论:Chatgpt完胜!文心一言写的完全不正确。
原因是chatgpt对微软旗下的github也进行了学习,所以代码编写能力肯定是远超过完全没学过的文心一言。
8、互联网黑话
来点中文互联网才懂得梗!
结论:文心一言胜出!
9、中文梗对比
结论:chatgpt说的完全不正确啊
10、英文写作
结论:chatgpt胜出!文心一言在英文上的表现还不够好
结论
文心一言明显更懂中文,更理解中文圈的网友,这一点让我非常惊喜!
但是在代码生成、英文写作等方面距离chatgpt还有不小的差距呢,这也是未来需要迭代的方向。
总之,国产大模型的这一步走的虽然比较仓促,但未来可期!还需要我们程序员们继续努力啊!
以上是关于文心一言 VS 讯飞星火 VS chatgpt (28)-- 算法导论5.1 3题的主要内容,如果未能解决你的问题,请参考以下文章
文心一言 VS 讯飞星火 VS chatgpt (28)-- 算法导论5.1 3题
文心一言 VS 讯飞星火 VS chatgpt (25)-- 算法导论4.2 7题
文心一言 VS 讯飞星火 VS chatgpt (18)-- 算法导论4.1 5题
文心一言 VS 讯飞星火 VS chatgpt (19)-- go语言的slice和rust语言的Vec的扩容流程是什么?