02 2024 档案
摘要:三、考虑矩阵链乘法问题的一个变形:目标改为最大化矩阵序列括号化方案的标量乘法运算次数,而非最小化。此问题具有最优子结构性质吗?需要写代码的时候,请用go语言。 文心一言,代码正常运行: 首先,我们要明确矩阵链乘法问题的原始形式:给定一个矩阵链 ( A_1, A_2, \ldots, A_n ),我们
阅读全文
2024-02-28:用go语言,有一个由x轴和y轴组成的坐标系, “y下“和“y上“表示一条无限延伸的道路,“y下“表示这个道路的下限,“y上“表示这个道路的上限, 给定一批长方形,每一个长方形有(
摘要:2024-02-28:用go语言,有一个由x轴和y轴组成的坐标系, "y下"和"y上"表示一条无限延伸的道路,"y下"表示这个道路的下限,"y上"表示这个道路的上限, 给定一批长方形,每一个长方形有(x1, x2, y1, y2),4个坐标可以表示一个长方形, 判断这条道路整体是不是可以走通的。 以
阅读全文
摘要:二、对一个16个元素的数组,画出2.3.1节中MERGE-SORT过程运行的递归调用树。解释备忘技术为什么对MERGE-SORT这种分治算法无效。需要写代码的时候,请用go语言。 文心一言,代码不完整: 首先,让我们明确2.3.1节中的MERGE-SORT过程。这是一个典型的分治算法,它首先将数组一
阅读全文
摘要:一、对于矩阵链乘法问题,下面两种确定最优代价的方法哪种更高效?第一种方法是穷举所有可能的括号化方案,对每种方案计算乘法运算次数,第二种方法是运行RECURSIVE-MATRIX-CHAIN。证明你的结论。如果写代码,请用go语言。 对于矩阵链乘法问题,下面两种确定最优代价的方法哪种更高效?第一种方法
阅读全文
摘要:六、用go语言,证明:对 n 个元素的表达式进行完全括号化,恰好需要 n-1 对括号。 文心一言,代码正常运行: 在Go语言中,证明对n个元素的表达式进行完全括号化恰好需要n-1对括号,可以通过数学归纳法和递归思考来实现。首先,我们可以明确一个基本的观察: 一个单独的元素不需要括号。 将两个元素用一
阅读全文
2024-02-24:用go语言,给你一个 n 个点的带权无向连通图,节点编号为 0 到 n-1, 同时还有一个数组 edges ,其中 edges[i] = [fromi, toi, weighti
摘要:2024-02-24:用go语言,给你一个 n 个点的带权无向连通图,节点编号为 0 到 n-1, 同时还有一个数组 edges ,其中 edges[i] = [fromi, toi, weighti], 表示在 fromi 和 toi 节点之间有一条带权无向边, 最小生成树 (MST) 是给定图中
阅读全文
摘要:四、用go语言,对输入链长度为 n 的矩阵链乘法问题,描述其子问题图:它包含多少个顶点?包含多少条边?这些边分别连接哪些顶点? 文心一言: 矩阵链乘法问题是一个经典的动态规划问题,其中给定一个矩阵链,我们需要确定一个乘法顺序,使得计算该链所需的总标量乘法次数最少。 子问题图(也叫DAG,有向无环图)
阅读全文
摘要:一、用go语言,对矩阵规模序列(5,10,3,12,5,50,6),求矩阵链最优括号化方案。 文心一言,代码正常运行: 在Go语言中,为了找到矩阵链乘法的最优括号化方案,我们通常会使用动态规划(Dynamic Programming, DP)的方法。矩阵链乘法的问题是要确定计算矩阵乘积的最有效顺序,
阅读全文
摘要:六、用go语言,说明如何来维护一个支持操作MIN-GAP的一些数的动态集Q,使得该操作能给出Q中两个最接近的数之间的差值。例如,Q=(1,5,9,15,18,22),则MIN-GAP返回18-15=3,因为15和18是Q中两个最接近的数。要使得操作INSERT、DELETE、SEARCH和MIN-G
阅读全文
摘要:五、用go语言,对区间树 T 和一个区间 i ,请修改有关区间树的过程来支持新的操作 INTERVALSEARCH-EXACTLY(T,i) ,它返回一个指向 T 中结点 x 的指针,使得 x.int. low==i.low 且 x.int.high == i.high ;或者,如果不包含这样的区间
阅读全文
摘要:三、用go语言,请给出一个有效的算法,对一个给定的区间i,返回一个与i重叠且具有最小低端点的区间;或者当这样的区间不存在时返回T.nil。 文心一言,去掉math,代码正常运行: 在Go语言中,你可以使用结构体来表示区间,并使用切片来存储区间集合。然后,你可以遍历区间集合,找到与给定区间重叠且具有最
阅读全文
摘要:二、用go语言,改写 INTERVAL-SEARCH 的代码,使得当所有区间都是开区间时,它也能正确地工作。 文心一言,代码正常运行: 在Go语言中,处理开区间(open intervals)时,我们需要特别注意区间的边界条件。开区间不包括其端点,因此在比较时不能使用等于(==)操作符。以下是一个使
阅读全文
摘要:一、用go语言,写出作用于区间树的结点且在 〇(1) 时间内更新 max 属性的过程 LEFT-ROTATE 的伪代码。 文心一言: 以下是一个简单的LEFT-ROTATE的伪代码,它对一个二叉搜索树进行左旋转操作。这个操作的作用是更新节点的max属性,使其在O(1)时间内完成。 LEFT-ROTA
阅读全文
2024-02-03:用go语言,你有 k 个背包。给你一个下标从 0 开始的整数数组 weights, 其中 weights[i] 是第 i 个珠子的重量。同时给你整数 k, 请你按照如下规则将所有
摘要:2024-02-03:用go语言,你有 k 个背包。给你一个下标从 0 开始的整数数组 weights, 其中 weights[i] 是第 i 个珠子的重量。同时给你整数 k, 请你按照如下规则将所有的珠子放进 k 个背包。 没有背包是空的。 如果第 i 个珠子和第 j 个珠子在同一个背包里, 那么
阅读全文
摘要:二、用go语言,能否在不影响红黑树任何操作的渐近性能的前提下,将结点的黑高作为树中结点的一个属性来维护?说明如何做,如果不能,请说明理由。如何维护结点的深度? 文心一言: 在Go语言中,可以使用结构体来定义一个红黑树的节点,并在该节点中添加一个表示黑高的属性。由于红黑树是一种自平衡的二叉搜索树,其操
阅读全文
摘要:一、用go语言,通过为结点增加指针的方式,试说明如何在扩张的顺序统计树上,支持每一动态集合查询操作 MINIMUM、MAXIMUM、SUCCESSOR 和 PREDECESSOR 在最坏时间 O(1)内完成。顺序统计树上的其他操作的渐近性能不应受影响。 文心一言: 为了在扩张的顺序统计树上支持每一动
阅读全文