我有一些符号,我需要安排它们并确定它们的排列方式:
(x11,x12,x13); (x21,x22,x23); (y11,y12,y13); (y21, y22, y23); (y31,y32,y33); (z11, z12, z13)
请注意,在计算排列时,必须保持圆括号内的顺序。例如,一个可能的订单可能是x11, x21, x12, x22, x13, x23
...请注意x13
发生在x12
之后x11
发生{/ 1}}。
我们如何确定具有此限制的排列总数?
答案 0 :(得分:0)
一种方法是创建2个表并进行笛卡尔连接:
create table letters (letter char(1));
create table numbers (num numeric);
insert into letters values ('A');
insert into letters values ('B');
insert into letters values ('C');
insert into numbers values (1);
insert into numbers values (2);
insert into numbers values (3);
select letter, num
from letters, numbers;
使用更多代码,您可以在没有“硬表”的情况下执行此操作,而是在数组中对数据进行硬编码,然后让postgres使用它与表相同 - 只取决于我们谈论的数据量。
然后,我可能会完全误解你要解决的问题,因为我的例子中的排列数是“字母表中的行数”次数“数字表中的行数”