chatgpt 4o和DeepSeek的比拼
首先,我想先说明一下。这个结果只能说明二者在中文古文创作这一块的高下各有不同,不能代表其他能力。chatgpt有可能中文语料投喂不足?(但是互联网没有井盖,似乎大家面对的语料应该都是一样的吧?我不知道具体训练过程啊)第二,这个高下也只能说明当下,未来会怎么样,我反正不清楚。
我的信仰是:开放和自由是一个产品能够得到持续发展进步的源泉。但信仰归信仰,事实归事实,这两个要分开讨论。固然有的时候要结合到一起。但我这篇文章只讲事实,不谈更多其他的观点了。
我的提示词:
“仿照洛神赋,为蛇年写一个新春祝福。”
chatgpt 4o的回答:
蛇年赋
岁在癸巳,春风初度,万物更新,祥瑞盈门。时值新岁,蛇年方启,遂以辞呈,表吾贺愿。
观岁星之运转兮,蛇腾天际;承四季之更迭兮,万象生辉。蛇者,虽无四足之盛,却有灵动之姿;虽无飞鸟之翼,却具潜行之韬。其蜿蜒曲折,寓意人生之路;其蜕旧革新,昭示奋进之志。此乃天地之化育,万物之灵明也。
是以,值此祥瑞之时,愿君如蛇,灵巧而机敏,游刃于世间万般险阻;愿君如蛇,蜕旧而新生,迎接人生无限可能。愿事业如蛇盘柱,节节攀升;愿生活如蛇缠玉,富贵安康。更冀君身心康泰,家道和顺,所求皆得,所愿皆成。
春风拂面兮,万家灯火;瑞雪兆丰兮,兆年大吉。新岁将启,愿君执孤勇之心,怀赤诚之志,与天地共新,与岁月同辉!
看起来很不错是吧,普通人能够写到这个水平当然也很了不起了。但是在我看来,这不过是平庸之作。我问DeepSeek,那真的是让我惊艳了。懂古文的用户自然可以鉴别一下:
《灵蛇贺岁赋》
时维玄序,序属岁阑。灵蛇盘瑞,玄乙衔丹。望璇玑之回斡,知青阳之将还。于是扫庭除,列椒盘,启金縢之旧牍,写青鸾之新翰。其辞曰:
夫灵蛇者,承乾应瑞,腾雾含章。衔烛照九幽之晦,衔珠映北斗之光。或潜于渊以养慧,或蜕其皮而弥刚。今乘岁首,来降华堂。蜿蜒若春溪之脉动,逶迤似云锦之舒张。
尔乃携东君之暖律,破北陆之寒霜。使枯木抽青玉之芽,令冻泉涌碧瑶之浆。商贾得衔尾之智,士人获画足之祥。稚子绕膝如藤缠树,高堂矍铄若松凌冈。更添银鳞耀户,恰应金匮满仓。
至若元日初临,椒花未老。看灵虬游于阡陌,化甘雨润彼黍稻。疫疠遁形于地脉,祯祥结彩于云表。愿尔室家,沐此和风,饮彼春醪。得蛇珠之明慧,享龟寿之永葆。
乱曰:巳岁呈祥,青阳肇始。灵蛇献瑞,福泽万里。褪尽旧皮迎新祉,衔来明珠耀朱紫。愿得年年腾紫气,岁岁谱春史!
比较一下,高下立辨。DeepSeek有很多用典。不知古籍的人,是看不明白的。所以你肯定会觉得DeepSeek的难懂。难懂是因为它太多典故。你必须要懂这些典故,你才能明白这篇文章说的是啥。而ChatGpt呢,就太平铺直叙了。
我真的是被惊艳到了:它真的很牛逼!当然,DeepSeek在推理方面似乎表现更佳。我没有做过比较和测试。大家可以做一下。
我的信仰是:开放和自由是一个产品能够得到持续发展进步的源泉。但信仰归信仰,事实归事实,这两个要分开讨论。固然有的时候要结合到一起。但我这篇文章只讲事实,不谈更多其他的观点了。
我的提示词:
“仿照洛神赋,为蛇年写一个新春祝福。”
chatgpt 4o的回答:
蛇年赋
岁在癸巳,春风初度,万物更新,祥瑞盈门。时值新岁,蛇年方启,遂以辞呈,表吾贺愿。
观岁星之运转兮,蛇腾天际;承四季之更迭兮,万象生辉。蛇者,虽无四足之盛,却有灵动之姿;虽无飞鸟之翼,却具潜行之韬。其蜿蜒曲折,寓意人生之路;其蜕旧革新,昭示奋进之志。此乃天地之化育,万物之灵明也。
是以,值此祥瑞之时,愿君如蛇,灵巧而机敏,游刃于世间万般险阻;愿君如蛇,蜕旧而新生,迎接人生无限可能。愿事业如蛇盘柱,节节攀升;愿生活如蛇缠玉,富贵安康。更冀君身心康泰,家道和顺,所求皆得,所愿皆成。
春风拂面兮,万家灯火;瑞雪兆丰兮,兆年大吉。新岁将启,愿君执孤勇之心,怀赤诚之志,与天地共新,与岁月同辉!
看起来很不错是吧,普通人能够写到这个水平当然也很了不起了。但是在我看来,这不过是平庸之作。我问DeepSeek,那真的是让我惊艳了。懂古文的用户自然可以鉴别一下:
《灵蛇贺岁赋》
时维玄序,序属岁阑。灵蛇盘瑞,玄乙衔丹。望璇玑之回斡,知青阳之将还。于是扫庭除,列椒盘,启金縢之旧牍,写青鸾之新翰。其辞曰:
夫灵蛇者,承乾应瑞,腾雾含章。衔烛照九幽之晦,衔珠映北斗之光。或潜于渊以养慧,或蜕其皮而弥刚。今乘岁首,来降华堂。蜿蜒若春溪之脉动,逶迤似云锦之舒张。
尔乃携东君之暖律,破北陆之寒霜。使枯木抽青玉之芽,令冻泉涌碧瑶之浆。商贾得衔尾之智,士人获画足之祥。稚子绕膝如藤缠树,高堂矍铄若松凌冈。更添银鳞耀户,恰应金匮满仓。
至若元日初临,椒花未老。看灵虬游于阡陌,化甘雨润彼黍稻。疫疠遁形于地脉,祯祥结彩于云表。愿尔室家,沐此和风,饮彼春醪。得蛇珠之明慧,享龟寿之永葆。
乱曰:巳岁呈祥,青阳肇始。灵蛇献瑞,福泽万里。褪尽旧皮迎新祉,衔来明珠耀朱紫。愿得年年腾紫气,岁岁谱春史!
比较一下,高下立辨。DeepSeek有很多用典。不知古籍的人,是看不明白的。所以你肯定会觉得DeepSeek的难懂。难懂是因为它太多典故。你必须要懂这些典故,你才能明白这篇文章说的是啥。而ChatGpt呢,就太平铺直叙了。
我真的是被惊艳到了:它真的很牛逼!当然,DeepSeek在推理方面似乎表现更佳。我没有做过比较和测试。大家可以做一下。
61 个评论
>> 请输出一段冒泡算法,排列随机的十个数字的大小。ChatGPT 说:ChatGPT以下是一个使用...
怎么能没有结果呢?有的呀:
嗯,我现在需要写一个冒泡排序算法来排列十个随机数字。首先,我得回忆一下冒泡排序的基本原理。冒泡排序是通过不断比较相邻的元素,如果顺序不对就交换它们,这样每一轮会把最大的元素“冒”到末尾。然后重复这个过程,直到所有元素都排好序。
那首先,我需要生成十个随机数字。在Python里,可以使用random模块中的randint函数来生成随机整数。比如,用random.randint(1, 100)生成1到100之间的数,这样十个数字的话,应该没问题。然后把这些数字放进一个列表里。
接下来,实现冒泡排序。冒泡排序需要两层循环。外层循环控制遍历的次数,内层循环负责每一轮的比较和交换。假设列表的长度是n,那么外层循环需要n-1次,因为最后一个元素不需要再比较了。内层循环的话,每一轮之后,后面的元素已经排好序了,所以内层循环的次数可以减少。比如,第i次外层循环时,内层循环只需要遍历前n-i-1个元素,这样可以减少不必要的比较。
比如,第一次外层循环的时候,内层循环比较所有n-1次,把最大的元素放到最后。第二次外层循环的时候,只需要比较前n-1-1个元素,依此类推。这样能优化一点效率。
不过,有时候冒泡排序还可以优化,比如设置一个标志位,如果在某一轮内层循环中没有发生任何交换,说明已经排好序了,就可以提前结束循环。这样可以减少不必要的循环次数。比如,设置一个布尔变量swapped,初始化为False,在内层循环中如果发生了交换,就设为True。每轮外层循环开始时检查,如果上一轮没有交换,就直接break退出循环。
现在,我需要把这些步骤用Python代码写出来。首先生成随机数列表。然后实现冒泡排序的逻辑。
比如,随机数生成部分:
import random
numbers = [random.randint(1, 100) for _ in range(10)]
然后冒泡排序的函数:
def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
swapped = False
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
swapped = True
if not swapped:
break
return arr
然后调用这个函数对numbers进行排序,并输出结果。
不过需要先输出原始数组和排序后的数组,这样用户可以看到效果。所以完整的代码应该包括导入模块、生成随机数、打印原始数组、排序,然后打印排序后的数组。
测试一下,比如原始数组可能像[3, 1, 4, ...],排序后变成升序。冒泡排序是稳定的排序算法,时间复杂度O(n²),但对于小数据集来说没问题。
那现在把这些整合起来:
import random
# 生成10个随机数
numbers = [random.randint(1, 100) for _ in range(10)]
print("原始数组:", numbers)
# 冒泡排序
n = len(numbers)
for i in range(n-1):
swapped = False
for j in range(n-i-1):
if numbers[j] > numbers[j+1]:
numbers[j], numbers[j+1] = numbers[j+1], numbers[j]
swapped = True
if not swapped:
break
print("排序后数组:", numbers)
这样应该可以了。不过有没有可能哪里出错了呢?比如循环的范围是否正确。比如外层循环i的范围是0到n-2,共n-1次。内层循环j从0到n-i-2,因为比较的是j和j+1,所以当i=0时,j的范围是0到n-1-1= n-2,这样j+1最大是n-1,不会越界。是的,这样是对的。
或者是否需要把排序过程封装成一个函数?可能对代码结构更好,不过题目没有特别要求,直接写可能更简洁。
测试一下,比如运行这段代码,应该会输出原始数组和排序后的数组。例如:
原始数组: [54, 26, 93, 17, 77, 31, 44, 55, 20, 10]
排序后数组: [10, 17, 20, 26, 31, 44, 54, 55, 77, 93]
看起来没问题。所以这段代码应该可以正确实现冒泡排序十个随机数的排列。
以下是使用冒泡排序算法对十个随机数字进行排序的Python代码:
python
复制
import random
# 生成包含10个随机整数的列表(范围1-100)
numbers = [random.randint(1, 100) for _ in range(10)]
print("原始数组:", numbers)
# 冒泡排序实现
n = len(numbers)
for i in range(n - 1):
swapped = False
# 每次循环后,最后i+1个元素已有序
for j in range(n - i - 1):
if numbers[j] > numbers[j + 1]:
# 交换相邻元素
numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j]
swapped = True
# 如果本轮未发生交换,说明已完全有序
if not swapped:
break
print("排序后数组:", numbers)
执行结果示例:
复制
原始数组: [34, 12, 89, 5, 67, 43, 23, 90, 18, 55]
排序后数组: [5, 12, 18, 23, 34, 43, 55, 67, 89, 90]
代码说明:
使用列表推导式生成10个1-100之间的随机整数
外层循环控制排序轮次(n-1次),内层循环进行相邻元素比较
添加swapped标志优化,当某轮未发生交换时提前终止排序
每次交换将较大元素向后移动,最终形成升序排列
时间复杂度:最优O(n)(已有序情况),最差O(n²)
该算法通过不断比较相邻元素并交换位置,最终使较小元素逐渐"浮"到数组前端,较大元素"沉"到数组后端,因此得名冒泡排序。