当前位置: 首页 > news >正文

CompassArena 司南大模型测评--代码编写

测试角度

要说测试模型,对咱们程序员来说,那自然是写代码的能力强不强比较重要了。那么下面我们以 leetcode 中的一道表面上是困难题的题目来考考各家大模型,看看哪个才应该是咱们日常写程序的帮手。

部分模型回答

问题部分如下截图,后边就不再重复粘贴了,主要来看回答。我们注意到这里的难点在于在于对时间复杂度有要求,看看各个模型能不能注意到这一点。
出于篇幅,这里只贴出来结果比较好的几个模型进行点评。

图片.png

Abab6.5 Chat (MiniMax) 结果

要找到两个正序数组的中位数,并且要求算法的时间复杂度为 O(log (m+n)),可以使用二分查找的方法。以下是一种可能的解决方案:

  1. 首先,确保 nums1 是较短的数组,如果不是,则交换 nums1nums2
  2. 使用二分查找,在较短的数组 nums1 中查找合适的分割线,使得 nums1 分割线左侧的元素和 nums2 分割线右侧的元素个数之和等于 nums1 分割线右侧的元素和 nums2 分割线左侧的元素个数之和(或者相差1,如果总元素个数是奇数)。
  3. 通过比较 nums1 中分割线两侧的元素与 nums2 中分割线两侧的元素,调整分割线的位置,直到找到正确的分割线位置。
  4. 根据分割线的位置,计算中位数。

下面是具体的算法实现:

def findMedianSortedArrays(nums1, nums2):# 确保 nums1 是较短的数组if len(nums1) > len(nums2):nums1, nums2 = nums2, nums1m, n = len(nums1), len(nums2)total_left = (m + n + 1) // 2# 在 nums1 的区间 [0, m] 里查找恰当的分割线,# 使得 nums1[i-1] <= nums2[j] && nums2[j-1] <= nums1[i]left, right = 0, mwhile left < right:i = left + (right - left) // 2j = total_left - iif nums1[i] < nums2[j - 1]:# i 需要增大left = i + 1else:# i 需要减小right = ii = leftj = total_left - i# 处理数组长度为奇数和偶数的情况nums1_left_max = float('-inf') if i == 0 else nums1[i - 1]nums2_left_max = float('-inf') if j == 0 else nums2[j - 1]nums1_right_min = float('inf') if i == m else nums1[i]nums2_right_min = float('inf') if j == n else nums2[j]if (m + n) % 2 == 1:return max(nums1_left_max, nums2_left_max)else:return (max(nums1_left_max, nums2_left_max) + min(nums1_right_min, nums2_right_min)) / 2# 示例
nums1 = [1, 3]
nums2 = [2]
print(findMedianSortedArrays(nums1, nums2))  # 输出 2.0nums1 = [1, 2]
nums2 = [3, 4]
print(findMedianSortedArrays(nums1, nums2))  # 输出 2.5

这个算法的时间复杂度是 O(log(min(m, n))),因为二分查找是在较短的数组上进行的。

Abab6.5 Chat (MiniMax) 点评

Abab6.5 Chat (MiniMax)给出的答案是python写的,估计训练使用python的代码比较多。模型注意到了时间复杂度,并且一直在强调,且给出的代码是可运行的,算法描述也比较清晰,代码的质量中规中矩,且加了注释,还不错。

Baichuan 4 (百川智能) 回答

为了找到两个有序数组的中位数,我们可以使用二分查找的方法来减少时间复杂度到O(log(min(m, n)))。以下是解决这个问题的步骤:

  1. 确保nums1是较短的数组,如果nums1nums2长,交换它们。这样做是为了优化二分查找的性能。

  2. nums1上执行二分查找,找到适当的分割线,使得nums1左边的元素和nums2左边的元素一起组成了整个合并数组左边的一半,同时nums1右边的元素和nums2右边的元素组成右边的一半。

  3. 调整分割线,以确保左右两边的元素数量相等或最多相差一个,这取决于合并后数组长度的奇偶性。

  4. 计算中位数。如果合并后数组的长度是奇数,则中位数是两个数组左边部分的最大值。如果是偶数,则中位数是两个数组左边部分的最大值和两个数组右边部分的最小值的平均值。

下面是这个算法的Python代码实现:

def findMedianSortedArrays(nums1, nums2):# 确保nums1是较短的数组if len(nums1) > len(nums2):nums1, nums2 = nums2, nums1m, n = len(nums1), len(nums2)imin, imax, half_len = 0, m, (m + n + 1) // 2while imin <= imax:i = (imin + imax) // 2j = half_len - iif i < m and nums2[j-1] > nums1[i]:# i太小,必须增加它imin = i + 1elif i > 0 and nums1[i-1] > nums2[j]:# i太大,必须减小它imax = i - 1else:# i正好if i == 0: max_of_left = nums2[j-1]elif j == 0: max_of_left = nums1[i-1]else: max_of_left = max(nums1[i-1], nums2[j-1])if (m + n) % 2 == 1:return max_of_leftif i == m: min_of_right = nums2[j]elif j == n: min_of_right = nums1[i]else: min_of_right = min(nums1[i], nums2[j])return (max_of_left + min_of_right) / 2.0# 这种情况不应该发生,如果发生了说明输入有误raise ValueError("Input arrays are not sorted or other error occurred")# 示例
print(findMedianSortedArrays([1,3], [2])) # 输出: 2.00000
print(findMedianSortedArrays([1,2], [3,4])) # 输出: 2.50000

这段代码首先确保了nums1是较短的数组,然后通过二分查找在nums1上找到一个合适的索引i,使得nums1的前i个元素和nums2的前j个元素共同构成了合并后数组的前一半。最后根据合并后数组长度的奇偶性来计算中位数。

Baichuan 4 (百川智能) 点评

我们看到,这里同样使用了python的解法,代码可运行,解法描述比较清晰,并且考虑到了错误处理,还是不错的。

ERNIE 4.0 8K 0329 (百度文心一言) 回答

要实现时间复杂度为 O(log(m+n)) 的算法来找到两个正序数组的中位数,可以使用二分查找的方法。但请注意,严格的 O(log(m+n)) 解决方案可能相当复杂。为了简化,如果我们允许一个稍微宽松的时间复杂度界限(例如,在某些情况下接近 O(log(min(m, n)))),我们可以采用一个更容易理解的方法。

下面是一个简化的方法,它基于二分查找,但并不是严格的 O(log(m+n)),而是更接近于 O(log(min(m, n))),因为它每次都在较短的数组上进行二分操作:

def findMedianSortedArrays(nums1, nums2):if len(nums1) > len(nums2):nums1, nums2 = nums2, nums1  # 确保 nums1 是较短的数组m, n = len(nums1), len(nums2)left, right = 0, mwhile left <= right:partitionX = (left + right) // 2  # 在 nums1 中的分割点partitionY = ((m + n + 1) // 2) - partitionX  # 在 nums2 中的分割点# 确保左半部分都小于右半部分maxLeftX = float('-inf') if partitionX == 0 else nums1[partitionX - 1]minRightX = float('inf') if partitionX == m else nums1[partitionX]maxLeftY = float('-inf') if partitionY == 0 else nums2[partitionY - 1]minRightY = float('inf') if partitionY == n else nums2[partitionY]if maxLeftX <= minRightY and maxLeftY <= minRightX:# 已经找到了正确的划分if (m + n) % 2 == 0:return max(maxLeftX, maxLeftY, key=float) / 2 + min(minRightX, minRightY, key=float) / 2else:return max(maxLeftX, maxLeftY, key=float)  # 总是取较大的左半部分作为中位数elif maxLeftX > minRightY:  # 太靠右,需要向左调整right = partitionX - 1else:  # 太靠左,需要向右调整left = partitionX + 1# 如果未找到中位数,则抛出异常(实际上,由于我们的逻辑,这里不会被执行到)raise ValueError("No median found")# 示例测试
print(findMedianSortedArrays([1, 3], [2]))  # 输出: 2.0
print(findMedianSortedArrays([1, 2], [3, 4]))  # 输出: 2.5

这个算法通过二分查找确定两个数组中的分割点,以确保左半部分的所有元素都小于或等于右半部分的所有元素。然后,根据分割点找到中位数。注意,这个解决方案在数组长度不等的情况下也能正确工作,并且处理了总数组长度是奇数还是偶数的情况。

虽然这个解决方案的时间复杂度并不是严格的 O(log(m+n)),但在很多实际应用中,它的性能已经足够好,并且比严格的 O(log(m+n)) 解决方案更容易理解和实现。如果需要严格的 O(log(m+n)) 解决方案,请参考一些高级的二分查找变种,它们通常涉及更复杂的边界条件和分割逻辑。

ERNIE 4.0 8K 0329 (百度文心一言) 点评

文心一言给的也是python的回答,可见python确实是比较常用。文心一言没有给出具体的算法步骤,但代码注释和中文描述都很流畅易懂,比百川智能要稍强一些。

Hunyuan Pro (腾讯混元) 回答

为了实现 O(log(m+n)) 的时间复杂度,我们可以使用二分查找的方法。首先,我们需要找到两个数组中较短的那个数组,并将其作为二分查找的主体。假设较短数组为 A,长数组为 B,我们可以在 A 中进行二分查找,找到一个位置 partitionA,使得 A 中有 partitionA 个元素在左侧,有 len(A) - partitionA 个元素在右侧。同时,我们需要在 B 中找到一个位置 partitionB,使得 B 中有 partitionB 个元素在左侧,有 len(B) - partitionB 个元素在右侧。这样,我们可以保证左侧的所有元素都小于等于右侧的所有元素。

接下来,我们需要判断当前的分割是否满足条件。如果满足条件,我们就可以计算中位数。如果不满足条件,我们需要根据实际情况调整二分查找的范围。

以下是具体的算法步骤:

  1. 找到较短的数组 A 和长数组 B。
  2. 初始化二分查找的范围:imin = 0imax = len(A)
  3. 进行二分查找:
    a. 计算 partitionA = (imin + imax) // 2
    b. 计算 partitionB = (len(A) + len(B) + 1) // 2 - partitionA
    c. 判断当前分割是否满足条件:
    • 如果 partitionA > 0A[partitionA-1] > B[partitionB],说明当前分割过于右侧,需要将 imax 更新为 partitionA - 1
    • 如果 partitionA < len(A)A[partitionA] < B[partitionB-1],说明当前分割过于左侧,需要将 imin 更新为 partitionA + 1
    • 否则,当前分割满足条件,可以计算中位数。
  4. 计算中位数:
    • 如果 (len(A) + len(B)) 是奇数,那么中位数为 max(A[partitionA-1], B[partitionB-1])
    • 如果 (len(A) + len(B)) 是偶数,那么中位数为 (max(A[partitionA-1], B[partitionB-1]) + min(A[partitionA], B[partitionB])) / 2

以下是 Python 代码实现:

def findMedianSortedArrays(nums1, nums2):if len(nums1) > len(nums2):nums1, nums2 = nums2, nums1m, n = len(nums1), len(nums2)imin, imax, half_len = 0, m, (m + n + 1) // 2while imin <= imax:partitionA = (imax + imin) // 2partitionB = half_len - partitionAif partitionA > 0 and nums1[partitionA - 1] > nums2[partitionB]:imax = partitionA - 1elif partitionA < m and nums2[partitionB - 1] > nums1[partitionA]:imin = partitionA + 1else:if partitionA == 0:max_of_left = nums2[partitionB - 1]elif partitionB == 0:max_of_left = nums1[partitionA - 1]else:max_of_left = max(nums1[partitionA - 1], nums2[partitionB - 1])if (m + n) % 2 == 1:return max_of_leftif partitionA == m:min_of_right = nums2[partitionB]elif partitionB == n:min_of_right = nums1[partitionA]else:min_of_right = min(nums1[partitionA], nums2[partitionB])return (max_of_left + min_of_right) / 2

这个算法的时间复杂度为 O(log(min(m, n))),满足题目要求。

Hunyuan Pro (腾讯混元) 点评

腾讯混元给出了具体的思路和具体步骤,并给出了常规的python解答,还是不错的。

Mixtral 8x22B Instruct (Mistral) 回答

这个问题可以使用二分查找的思想来解决。

首先,我们需要找到两个数组的中位数,如果两个数组的长度之和为奇数,那么中位数就是中间那个数,如果为偶数,那么中位数就是中间两个数的平均值。

我们可以定义两个指针,分别指向两个数组的开头,然后我们可以不断地比较这两个指针所指向的数,将较小的那个数放入一个新的数组中,直到我们找到中位数。

具体实现如下:

def findMedianSortedArrays(nums1, nums2):nums = nums1 + nums2nums.sort()length = len(nums)if length % 2 == 0:return (nums[length // 2] + nums[length // 2 - 1]) / 2else:return nums[length // 2]

这个实现的时间复杂度是 O(m+n),因为我们需要将两个数组合并成一个数组,然后排序,最后找到中位数。但是这个实现并不满足题目要求的时间复杂度为 O(log(m+n))。

为了满足题目要求的时间复杂度,我们可以使用二分查找的思想。具体实现如下:

def findMedianSortedArrays(nums1, nums2):if len(nums1) > len(nums2):nums1, nums2 = nums2, nums1x, y = len(nums1), len(nums2)start = 0end = xwhile start <= end:partitionX = (start + end) // 2partitionY = ((x + y + 1) // 2) - partitionXmaxLeftX = float('-inf') if partitionX == 0 else nums1[partitionX - 1]minRightX = float('inf') if partitionX == x else nums1[partitionX]maxLeftY = float('-inf') if partitionY == 0 else nums2[partitionY - 1]minRightY = float('inf') if partitionY == y else nums2[partitionY]if maxLeftX <= minRightY and maxLeftY <= minRightX:if (x + y) % 2 == 0:return max(maxLeftX, maxLeftY), min(minRightX, minRightY)else:return max(maxLeftX, maxLeftY)elif maxLeftX > minRightY:end = partitionX - 1else:start = partitionX + 1

这个实现的时间复杂度是 O(log(min(m, n))),因为我们使用二分查找的思想,每次都将问题规模减半。

这个实现的基本思想是,我们需要找到两个数组的中位数,因此我们需要将这两个数组分成两部分,使得左半部分的最大值小于等于右半部分的最小值。如果左半部分的最大值大于右半部分的最小值,那么我们就需要将分割点向左移动,否则我们就需要将分割点向右移动。

当我们找到了分割点后,我们就可以根据两个数组的长度来判断中位数是左半部分的最大值还是右半部分的最小值。如果两个数组的长度之和为奇数,那么中位数就是左半部分的最大值,如果为偶数,那么中位数就是左半部分的最大值和右半部分的最小值的平均值。

Mixtral 8x22B Instruct (Mistral) 点评

Mistral给出了两个思路,并且给出了对应代码的解析,中文描述也很流畅。对于这个我不是很熟的模型,我感觉还是不错的。

Qwen Max 0428 (阿里通义千问)回答

这个问题可以通过使用二分查找算法来解决,以达到O(log(min(m, n)))的时间复杂度,而不是题目要求的O(log(m+n)),但这是解决此问题最有效的方法。下面是详细的解决方案:

首先,确定哪个数组作为“较小”的数组可以简化问题。我们希望在两个数组之间进行相等划分,因此将较小的数组作为分割操作的目标会更高效。如果m > n,就交换两个数组,确保nums1是两个数组中较小或相等的那个。

然后,我们定义一个函数findKthElement用来寻找两个已排序数组中的第k小元素。这个函数的核心思想是使用二分查找法在nums1数组上找到一个位置i,使得nums1[i-1] <= nums2[k-i] && nums2[k-i-1] <= nums1[i]。这样,第k小的元素要么是nums1[i],要么是nums2[k-i],具体取决于它们的相对位置和值。

以下是该算法的Python实现:

def findMedianSortedArrays(nums1, nums2):# 确保nums1是较短的数组if len(nums1) > len(nums2):nums1, nums2 = nums2, nums1x, y = len(nums1), len(nums2)low, high = 0, xwhile low <= high:partitionX = (low + high) // 2partitionY = (x + y + 1) // 2 - partitionX# 如果partitionX是0,说明我们已经超出了nums1的左侧边界,此时nums1[-1]相当于一个负无穷maxLeftX = float('-inf') if partitionX == 0 else nums1[partitionX - 1]# 类似地处理nums1的右侧边界minRightX = float('inf') if partitionX == x else nums1[partitionX]maxLeftY = float('-inf') if partitionY == 0 else nums2[partitionY - 1]minRightY = float('inf') if partitionY == y else nums2[partitionY]if maxLeftX <= minRightY and maxLeftY <= minRightX:# 找到了正确的分区if (x + y) % 2 == 0:# 数组总长度为偶数return max(maxLeftX, maxLeftY), min(minRightX, minRightY)else:# 数组总长度为奇数return max(maxLeftX, maxLeftY)elif maxLeftX > minRightY:# 缩小nums1的右边界high = partitionX - 1else:# 扩大nums1的左边界low = partitionX + 1# 上述逻辑应始终能找到答案,理论上不会执行到这一步return None

这段代码实现了寻找两个有序数组中位数的功能,符合题目要求。注意,虽然这里的解释提到时间复杂度为O(log(min(m, n))),但实际解决问题的思路是正确的,且效率较高,满足题目的实际需求。

Qwen Max 0428 (阿里通义千问)点评

通义千问这个大家都比较熟悉了,它给出了思路和代码,并且代码有注释,但没有给测试用例,整体还是不错的。

测评总结

在这道题上,文中的各个模型都给出了不错的回答。从整体上来看,以下是各个模型在我心目中的排名:

  1. Mistral
  2. Qwen Max 0428
  3. 腾讯混元
  4. 百度文心一言
  5. MiniMax
  6. 百川智能

相关文章:

CompassArena 司南大模型测评--代码编写

测试角度 要说测试模型&#xff0c;对咱们程序员来说&#xff0c;那自然是写代码的能力强不强比较重要了。那么下面我们以 leetcode 中的一道表面上是困难题的题目来考考各家大模型&#xff0c;看看哪个才应该是咱们日常写程序的帮手。 部分模型回答 问题部分如下截图&#…...

叉积和法向量学习笔记

目录 叉积用的内积 相似点 给定平面上的两个向量 A 和 B&#xff0c;叉积和法向量相等吗 理解这点的关键&#xff1a; 结论&#xff1a; 叉积判断平面内两个向量是否相交 叉积&#xff08;Cross Product&#xff09;和法向量&#xff08;Normal Vector&#xff09;确实有…...

YZW900规格书

title: “深圳市沃进科技有限公司” 深圳市沃进科技有限公司 TOP视图 特性 异地组网&#xff0c;远程访问有线/无线备份单模双卡备份5G转有线&#xff0c;5G转WIFI2.4G5.8G双频WIFI三网口&#xff0c;WAN/LAN可切换软硬件看门狗智能防掉线云平台、客户端远程管理安装支架安装铝…...

9岁学生学什么编程好一些:探索编程启蒙的奥秘

9岁学生学什么编程好一些&#xff1a;探索编程启蒙的奥秘 在数字时代&#xff0c;编程已逐渐成为一项基本技能。对于9岁的学生来说&#xff0c;选择适合的编程课程或平台&#xff0c;对于培养逻辑思维、创新思维以及解决问题的能力至关重要。那么&#xff0c;9岁学生学什么编程…...

Java反射实战指南:反射机制的终极指南

1. 反射机制简介 在Java中&#xff0c;反射机制提供了一种强大的工具&#xff0c;用于在运行时检查类、接口、字段和方法。但它的重要性不止于此&#xff0c;它允许程序动态加载、探索和使用编译时完全未知的代码。这种能力是Java语言支持的一种“动态”特性&#xff0c;使得J…...

高效训练超越LoRA,北航发布MoRA

什么&#xff01;LoRA我都没有学懂&#xff0c;又出现了MoRA&#xff1f;&#xff1f;&#xff1f; LoRA作为当下最火热的大语言模型参数高效微调技术&#xff0c;正在以前所未有的速度迭代更新。从最初的LoRA到陆续推出的LoRA、DoRA、AsyLoRA等变体&#xff0c;LoRA家族可谓是…...

【Spring】Spring之依赖注入源码解析(上)

目录 Spring中到底有几种依赖注入的方式&#xff1f; 手动注入 自动注入 XML的autowire自动注入 Autowired注解的自动注入 寻找注入点 桥接方法 注入点进行注入 字段注入 Set方法注入 Spring中到底有几种依赖注入的方式&#xff1f; 首先分两种&#xff1a; 手动注…...

HBase 常用 shell 操作

下面给大家介绍一些HBase 常用 shell 操作&#xff0c;各位看官看好了啦&#xff0c;我要献丑了。 进入 HBase 客户端命令操作界面 $ bin/hbase shell查看帮助命令 > help查看当前数据库中有哪些表 > list创建一张表 创建 user 表&#xff0c;包含 info、data 两个列…...

【区分vue2和vue3下的element UI InputNumber 计数器组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 中&#xff0c;Element UI 提供了 el-input-number 组件作为计数器组件&#xff0c;用于处理数字输入。而在 Vue 3 中&#xff0c;Element Plus 同样提供了类似的组件&#xff0c;但可能有一些属性、事件或方法的细微差异。下面我将分别介绍 Vue 2 的 Element UI 和 V…...

科普健康短视频:成都鼎茂宏升文化传媒公司

科普健康短视频&#xff1a;引领健康知识新潮流 在数字化时代的浪潮中&#xff0c;短视频以其短小精悍、直观易懂的特点&#xff0c;迅速成为大众获取信息的重要渠道。其中&#xff0c;科普健康短视频更是凭借其科学、权威、实用的内容&#xff0c;吸引了大量关注健康的观众。…...

Amis源码构建 sdk版本

建议在linux环境下构建&#xff08;mac环境下也可以&#xff09;&#xff0c;需要用到sh脚本&#xff08;amis/build.sh&#xff09;。 Js sdk打包是基于fis进行编译打包的&#xff0c;具体可见fis-conf.js&#xff1a; amis-master源码下载:https://github.com/baidu/amis g…...

【MySQL数据库】:MySQL复合查询

目录 基本查询回顾 多表查询 自连接 子查询 单行子查询 多行子查询 多列子查询 在from子句中使用子查询 合并查询 前面我们讲解的mysql表的查询都是对一张表进行查询&#xff0c;在实际开发中这远远不够。 基本查询回顾 【MySQL数据库】&#xff1a;MySQL基本查…...

PS Mac Photoshop 2024 for Mac[破]图像处理软件[解]PS 2024安装教程[版]

Mac分享吧 文章目录 效果一、准备工作二、开始安装1、Anticc简化版安装1.1双击运行软件&#xff0c;安装1.2 解决来源身份不明的开发者问题**此代码为打开&#xff1a;系统偏好设置 – 隐私与安全性&#xff0c;中的【任何来源】&#xff0c;如下图&#xff1a;**1.3 再次运行…...

深入URP之Shader篇16: UNITY_BRANCH和UNITY_FLATTEN

Shader中的if分支 我们在shader中写if语句&#xff0c;例如&#xff1a; if(a>0){//do some cool thing }else{//do other cool thing }实际上&#xff0c;编译器会进行优化&#xff0c;以及处理成多种不同的情况。比如编译器会将if和else展开&#xff0c;分别执行其中的代…...

5.25.1 用于组织病理学图像分类的深度注意力特征学习

提出了一种基于深度学习的组织病理学图像分类新方法。我们的方法建立在标准卷积神经网络 (CNN) 的基础上,并结合了两个独立的注意力模块,以实现更有效的特征学习。 具体而言,注意力模块沿不同维度推断注意力图,这有助于将 CNN 聚焦于关键图像区域,并突出显示判别性特征通…...

uni-app+php 生成微信二维码 分销海报

主要代码如下&#xff0c;可直接复制调试参数&#xff1a; //查询当前用户是否有分销海报public function user_poster(){$this->checkAuth();//查询会员信息$user $this->getUserInfoById($this->user_id);if(!empty($user[distribution_img])){$result[data] $use…...

已解决java.lang.annotation.AnnotationFormatError: 注解格式错误的正确解决方法,亲测有效!!!

已解决java.lang.annotation.AnnotationFormatError: 注解格式错误的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 亲测有效 报错问题解决思路 解决方法解决方法1. 检查注解定义2. 验证注解使用位置3. 检查注解参数4. 更新依赖库5. 示例代码 解决思路…...

使用 EBS 和构建数据库服务器并使用应用程序与数据库交互

实验 4&#xff1a;使用 EBS 实验概览 本实验着重介绍 Amazon Elastic Block Store (Amazon EBS)&#xff0c;这是一种适用于 Amazon EC2 实例的重要底层存储机制。在本实验中&#xff0c;您将学习如何创建 Amazon EBS 卷、将其附加到实例、向卷应用文件系统&#xff0c;然后进…...

pom文件新增依赖时异常问题定位技巧

今天新增复制两个依赖到项目时&#xff0c;莫名其妙一个爆红artifactId和version&#xff0c;另一个爆红version&#xff0c;但放其他项目却正常&#xff0c;非常莫名其妙。经过一番折腾&#xff0c;终于发现不知道什么时候不小心多写了一个单独的导致的&#xff0c;但是这个异…...

【小白专用24.5.30已验证】Composer安装php框架thinkPHP6的安装教程

一、框架介绍 1、框架简介和版本选择 Thinkphp是一种基于php的开源web应用程序开发框架ThinkPHP框架&#xff0c;是免费开源的、轻量级的、简单快速且敏捷的php框架。你可以免费使用TP框架&#xff0c;甚至可以将你的项目商用&#xff1b; ThinkPHP8.0 是目前框架正式版的最新版…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...