首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vandermonde行列式

Vandermonde行列式
EN

Code Golf用户
提问于 2016-03-04 20:22:29
回答 18查看 1.5K关注 0票数 29

给定n值的向量,(x_1,x_2,x_3,\ldots,x_n)返回相应的范德蒙矩阵的行列式

V(x_1, x_2, \ldots, x_n) = \begin{bmatrix}1 & x_1 & x_1^2 & x_1^3 & \ldots &x_1^{n-1} \\1 & x_2 & x_2^2 & x_2^3 & \ldots &x_2^{n-1} \\ \vdots & & & \vdots & & \vdots \\ 1 & x_n & x_n^2 & x_n^3 & \ldots & x_n^{n-1}\end{bmatrix}

这个行列式可以写成:

\det V(x_1, x_2, \ldots x_n) = \prod_\limits{1 \leqslant i < j \leqslant n} (x_j - x_i)

详细信息

您的程序/函数必须接受允许可变长度的任何方便格式的浮点数列表,并输出指定的行列式。

您可以假设输入和输出都在语言支持的值的范围内。如果语言不支持浮点数,则可以假定整数。

一些测试用例

注意,每当有两个相等的条目时,行列式将是0,因为在相应的Vandermonde矩阵中有两个相等的行。感谢@randomra指出了这个缺失的测试案例。

代码语言:javascript
运行
复制
[1,2,2,3]            0 
[-13513]             1
[1,2]                1
[2,1]               -1
[1,2,3]              2
[3,2,1]             -2
[1,2,3,4]           12
[1,2,3,4,5]        288
[1,2,4]              6
[1,2,4,8]         1008
[1,2,4,8,16]  20321280
[0, .1, .2,...,1]   6.6586e-028
[1, .5, .25, .125]  0.00384521
[.25, .5, 1, 2, 4]  19.3798828
EN

回答 18

Code Golf用户

发布于 2016-03-04 21:14:41

果冻,5字节

代码语言:javascript
运行
复制
œc2IP

œc2不替换长度为2的所有组合,I计算每对的差异列表,生成类似于[[1], [2], [3], ..., [1]]的列表。我们用P胶管。

在这里试试!

在现代果冻中,Œcœc2的一个简短形式,因此ŒcIP是一个4字节的解决方案.

票数 12
EN

Code Golf用户

发布于 2016-03-04 22:04:47

Mathematica,30字节

代码语言:javascript
运行
复制
1##&@@(#2-#&@@@#~Subsets~{2})&

这是一个匿名函数。

通过数学的扩展,它等价于(1 ##1 & ) @@ Apply[#2 - #1 & , Subsets[#1, {2}], {1}] &1##&Times (谢提示页)的等效值,它应用于Subsets[list, {2}]生成的输入列表中的每一对不同的元素。注意,Subsets不检查元素的唯一性。

票数 10
EN

Code Golf用户

发布于 2016-03-04 21:24:41

马蒂尔,9

代码语言:javascript
运行
复制
!G-qZRQpp

在网上试试!

这将计算所有差异的矩阵,然后只将部分保持在主对角线以下,使其他条目1,这样它们就不会影响产品。下三角函数使不需要的元素0,而不是1。所以我们减去1,取下三角部分,再加上1。然后我们可以得到所有条目的乘积。

代码语言:javascript
运行
复制
t     % take input. Transpose
G     % push input again
-     % subtract with broadccast: matrix of all pairwise differences
q     % subtract 1
ZR    % make zero all values on the diagonal and above
Q     % add 1
p     % product of all columns
p     % product of all those products
票数 4
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/74789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档