【问题标题】:Algorithm for best sum combination from 3 groups list3组列表中最佳总和组合的算法
【发布时间】:2019-11-22 02:04:48
【问题描述】:

我有多组数据,例如:

X <-  c(2,3,5,10,15) 
Y <- c(4,6,23,15,12) 
Z <- c(23,34,12,1,5)  

还有一个目标:target = 50

我想知道最好的(例如):来自 X 的 2 个值(称为 X2)、来自 Y (Y4) 的 4 个值和来自 Z (Z3) 的 3 个值,如果我将它们相加,我会得到 sum(X2) + sum(Y4) + sum(Z3) = 50 (或最接近 50)。

这个问题有解决办法吗?

编辑:我提供的数据只是一个例子……我的最终目标是在大数据上重现它。

这是我的大数据:


target <- 362007 

X <- c(1782L, 1780L, 1783L, 1784L, 1783L, 1781L, 1782L, 1781L, 1782L, 
1782L, 1782L, 1784L, 1780L, 1784L, 1782L, 1779L, 1782L, 1784L, 
1783L, 1782L, 1781L, 1777L, 1784L, 1782L, 1784L, 1784L, 1784L, 
1782L, 1784L, 1782L, 1783L, 1783L, 1785L, 1782L, 1781L, 1782L, 
1788L, 1789L, 1786L, 1787L, 1786L, 1783L, 1781L, 1781L, 1786L, 
1787L, 1786L, 1786L, 1785L, 1785L, 1784L, 1786L, 1785L, 1784L, 
1786L, 1785L, 1785L, 1783L, 1787L, 1787L, 1786L, 1785L, 1788L, 
1786L, 1788L, 1786L, 1780L, 1788L, 1785L, 1784L, 1786L, 1784L, 
1785L, 1783L, 1785L, 1785L, 1785L, 1786L, 1784L, 1784L, 1785L, 
1784L, 1785L, 1787L, 1786L, 1788L, 1785L, 1785L, 1780L, 1787L, 
1784L, 1785L, 1787L, 1784L, 1780L, 1785L, 1782L, 1787L, 1786L, 
1781L, 1780L, 1784L, 1785L, 1785L, 1785L, 1785L, 1785L, 1782L, 
1783L, 1787L, 1784L, 1783L, 1783L, 1782L, 1785L, 1783L, 1783L, 
1782L, 1786L, 1783L, 1786L, 1782L, 1783L, 1786L, 1784L, 1782L, 
1782L, 1785L, 1785L, 1783L, 1782L, 1781L, 1782L, 1779L, 1781L, 
1781L, 1785L, 1780L, 1782L, 1781L, 1782L, 1786L, 1786L, 1787L, 
1781L, 1780L, 1788L, 1781L, 1781L, 1780L, 1787L, 1787L, 1787L, 
1780L, 1786L, 1786L, 1779L, 1785L, 1792L, 1788L, 1781L, 1784L, 
1780L, 1784L, 1783L, 1785L, 1783L, 1783L, 1781L, 1783L, 1785L, 
1783L, 1785L, 1782L, 1785L, 1782L, 1782L, 1782L, 1779L, 1787L, 
1784L, 1783L, 1783L, 1786L, 1785L, 1787L, 1785L, 1783L, 1783L, 
1786L, 1784L, 1778L, 1787L, 1786L, 1784L, 1784L, 1781L, 1779L, 
1782L, 1786L, 1781L, 1787L, 1783L, 1781L, 1781L, 1786L, 1787L, 
1780L, 1779L, 1785L, 1784L, 1781L, 1783L, 1782L, 1781L, 1781L, 
1787L, 1785L, 1787L, 1784L, 1784L, 1783L, 1782L, 1785L, 1785L, 
1783L, 1779L, 1786L, 1780L, 1778L, 1783L, 1785L, 1780L, 1786L, 
1784L, 1779L, 1779L, 1779L, 1785L, 1780L, 1786L, 1778L, 1782L, 
1779L, 1779L, 1784L, 1780L, 1780L, 1785L, 1781L, 1778L, 1787L, 
1781L, 1786L, 1783L, 1784L, 1785L, 1786L, 1784L, 1782L, 1784L, 
1785L, 1786L, 1786L, 1785L, 1782L, 1786L, 1783L, 1783L, 1788L, 
1779L, 1786L, 1787L, 1781L, 1780L, 1780L, 1782L, 1784L, 1787L, 
1780L, 1786L, 1786L, 1786L, 1784L, 1787L, 1785L, 1784L, 1784L, 
1784L, 1781L, 1784L, 1784L, 1786L, 1784L, 1783L, 1784L, 1786L, 
1787L, 1786L, 1786L, 1785L, 1786L, 1785L, 1785L)

Y <- c(1786L, 1786L, 1786L, 1786L, 1787L, 1784L, 1782L, 1787L, 1786L, 
1786L, 1781L, 1787L, 1782L, 1785L, 1785L, 1786L, 1783L, 1781L, 
1787L, 1780L, 1785L, 1783L, 1787L, 1785L, 1786L, 1789L, 1784L, 
1785L, 1782L, 1780L, 1783L, 1786L, 1784L, 1782L, 1781L, 1788L, 
1785L, 1779L, 1782L, 1781L, 1781L, 1785L, 1781L, 1786L, 1784L, 
1782L, 1783L, 1782L, 1783L, 1784L, 1786L, 1780L, 1784L, 1782L, 
1779L, 1783L, 1789L, 1783L, 1782L, 1786L, 1784L, 1783L, 1788L, 
1786L, 1788L, 1783L, 1785L, 1787L, 1787L, 1784L, 1784L, 1787L, 
1783L, 1782L, 1787L, 1788L, 1786L, 1786L, 1785L, 1787L, 1782L, 
1787L, 1782L, 1787L, 1783L, 1787L, 1783L, 1784L, 1782L, 1782L, 
1784L, 1784L, 1786L, 1782L, 1780L, 1786L, 1783L, 1787L, 1785L, 
1786L, 1783L, 1783L, 1780L, 1781L, 1782L, 1788L, 1782L, 1783L, 
1785L, 1785L, 1783L, 1786L, 1785L, 1786L, 1780L, 1782L, 1785L, 
1784L, 1787L, 1779L, 1783L, 1782L, 1785L, 1780L, 1780L, 1786L, 
1782L, 1785L, 1785L, 1779L, 1783L, 1786L, 1787L, 1789L, 1782L, 
1781L, 1783L, 1780L, 1784L, 1783L, 1784L, 1784L, 1785L, 1785L, 
1786L, 1782L, 1782L, 1781L, 1783L, 1787L, 1784L, 1785L, 1782L, 
1781L, 1786L, 1784L, 1783L, 1784L, 1786L, 1784L, 1781L, 1783L, 
1786L, 1784L, 1782L, 1782L, 1786L, 1783L, 1782L, 1784L, 1786L, 
1784L, 1786L, 1783L, 1788L, 1782L, 1782L, 1787L, 1780L, 1781L, 
1782L, 1787L, 1785L, 1781L, 1781L, 1783L, 1787L, 1785L, 1786L, 
1783L, 1786L, 1780L, 1785L, 1786L, 1786L, 1781L, 1786L, 1786L, 
1787L, 1786L, 1783L, 1789L, 1785L, 1782L, 1789L, 1788L, 1784L, 
1782L, 1783L, 1781L, 1784L, 1783L, 1783L, 1787L, 1784L, 1783L, 
1781L, 1783L, 1787L, 1783L, 1786L, 1791L, 1782L, 1788L, 1786L, 
1785L, 1782L, 1787L, 1782L, 1784L, 1782L, 1782L, 1781L, 1782L, 
1784L, 1783L, 1783L, 1784L, 1780L, 1787L, 1783L, 1785L, 1782L, 
1786L, 1782L, 1787L, 1785L, 1782L, 1785L, 1784L, 1786L, 1783L, 
1781L, 1782L, 1781L, 1785L, 1782L, 1783L, 1784L, 1782L, 1782L, 
1784L, 1783L, 1787L, 1786L, 1786L, 1781L, 1782L, 1785L, 1787L, 
1784L, 1782L, 1788L, 1782L, 1783L, 1783L, 1785L, 1781L, 1780L, 
1786L, 1785L, 1780L, 1781L, 1782L, 1787L, 1784L, 1780L, 1782L, 
1781L, 1781L, 1780L, 1784L, 1782L, 1792L, 1787L, 1782L, 1779L, 
1784L, 1785L, 1786L, 1782L, 1786L, 1785L, 1785L, 1784L, 1785L, 
1783L, 1786L, 1785L, 1783L, 1782L, 1784L, 1781L, 1782L, 1784L, 
1786L, 1783L, 1783L, 1781L, 1785L, 1779L, 1783L, 1781L, 1781L, 
1786L, 1783L, 1781L, 1787L, 1782L, 1787L, 1786L, 1645L, 1788L, 
1783L, 1786L, 1787L, 1783L, 1780L, 1781L, 1782L, 1782L, 1786L, 
1781L, 1785L, 1783L, 1784L, 1783L, 1784L, 1784L, 1781L, 1787L, 
1781L, 1785L, 1782L, 1784L, 1790L, 1795L, 1793L, 1780L, 1782L, 
1788L, 1787L, 1788L, 1781L, 1781L, 1788L, 1782L, 1783L, 1780L, 
1785L, 1784L, 1781L, 1786L, 1781L, 1787L, 1794L, 1792L, 1791L, 
1781L, 1779L, 1781L, 1781L, 1782L, 1784L, 1783L, 1785L, 1785L, 
1785L, 1781L, 1778L, 1782L, 1784L, 1786L, 1786L, 1784L, 1782L, 
1779L, 1781L, 1782L, 1785L, 1783L, 1782L, 1784L, 1779L, 1785L, 
1784L, 1787L, 1785L, 1786L, 1789L, 1788L, 1785L, 1785L, 1785L, 
1783L, 1784L, 1786L, 1784L, 1782L, 1779L, 1782L, 1787L, 1788L, 
1782L, 1786L, 1784L, 1783L, 1782L, 1785L, 1785L, 1786L, 1786L, 
1786L, 1785L, 1785L, 1789L, 1786L, 1781L, 1785L, 1784L, 1787L, 
1781L, 1788L, 1783L, 1786L, 1786L, 1786L, 1783L, 1788L, 1788L, 
1781L, 1787L, 1791L, 1784L, 1784L, 1785L, 1784L, 1784L, 1782L, 
1779L, 1777L, 1780L, 1783L, 1782L, 1780L, 1781L, 1785L, 1780L, 
1783L, 1786L, 1784L, 1779L, 1785L, 1784L, 1783L, 1783L, 1783L, 
1783L, 1785L, 1781L, 1778L, 1781L, 1785L, 1781L, 1782L, 1788L, 
1782L, 1783L, 1781L, 1786L, 1781L, 1784L, 1782L, 1783L, 1787L, 
1783L, 1786L, 1783L, 1780L, 1781L, 1779L, 1781L, 1784L, 1785L, 
1782L, 1785L, 1785L, 1783L, 1781L, 1780L, 1780L, 1781L, 1779L, 
1780L, 1783L, 1782L, 1786L, 1780L, 1785L, 1786L, 1781L, 1783L, 
1783L, 1788L, 1783L, 1786L, 1788L, 1786L, 1783L, 1784L, 1788L, 
1787L, 1785L, 1785L, 1784L, 1782L, 1785L, 1785L, 1784L, 1781L, 
1788L, 1785L, 1785L, 1786L, 1785L, 1786L, 1787L, 1781L, 1787L, 
1782L, 1781L, 1786L, 1781L, 1783L, 1782L, 1786L, 1786L, 1788L, 
1781L, 1781L, 1783L, 1784L, 1783L, 1781L, 1788L, 1785L, 1779L, 
1786L, 1781L, 1781L, 1787L, 1784L, 1788L, 1782L, 1786L, 1787L, 
1780L, 1785L, 1788L, 1783L, 1783L, 1785L, 1780L, 1780L, 1788L, 
1784L, 1782L, 1787L, 1782L, 1783L, 1782L, 1782L, 1786L, 1784L, 
1788L, 1783L, 1785L, 1786L, 1781L, 1784L, 1782L, 1792L, 1784L, 
1782L, 1780L, 1784L, 1782L, 1783L, 1785L, 1783L, 1787L, 1785L, 
1785L, 1781L, 1787L, 1785L, 1787L, 1783L, 1780L, 1780L, 1785L, 
1783L, 1786L, 1784L, 1783L, 1782L, 1782L, 1789L, 1783L, 1786L, 
1785L, 1783L, 1787L, 1788L, 1783L, 1783L, 1786L, 1783L, 1786L, 
1782L, 1787L, 1782L, 1784L, 1782L, 1786L, 1787L, 1788L, 1788L, 
1782L, 1786L, 1780L, 1785L, 1779L, 1779L, 1779L, 1779L, 1779L, 
1783L, 1783L, 1782L, 1786L, 1785L, 1783L, 1781L, 1780L, 1784L, 
1779L, 1785L, 1780L, 1779L, 1780L, 1779L, 1780L, 1782L, 1783L, 
1781L, 1785L, 1783L, 1786L, 1779L, 1781L, 1781L, 1781L, 1780L, 
1781L, 1780L, 1780L, 1780L, 1780L, 1781L, 1781L, 1781L, 1781L, 
1781L, 1781L, 1780L, 1780L, 1781L, 1786L, 1780L, 1781L, 1780L, 
1780L, 1795L, 1790L, 1793L, 1786L, 1784L, 1782L, 1784L, 1783L, 
1788L, 1787L, 1786L, 1778L, 1783L, 1786L, 1784L, 1783L, 1785L, 
1786L, 1780L, 1786L, 1786L, 1785L, 1782L, 1782L, 1786L, 1784L, 
1787L, 1789L, 1788L, 1782L, 1783L, 1787L, 1783L, 1786L, 1782L, 
1782L, 1786L, 1783L, 1785L, 1788L, 1788L, 1787L, 1783L, 1788L, 
1783L, 1782L, 1782L, 1786L, 1789L, 1784L, 1785L, 1780L, 1781L, 
1786L, 1786L, 1788L, 1785L, 1781L, 1786L, 1785L, 1782L, 1780L, 
1784L, 1781L, 1779L, 1785L, 1786L, 1779L, 1782L, 1783L, 1783L, 
1780L, 1783L, 1782L, 1786L, 1779L, 1780L, 1781L, 1786L, 1783L, 
1785L, 1786L, 1782L, 1787L, 1784L, 1786L, 1786L, 1785L, 1786L, 
1785L, 1784L, 1787L, 1784L, 1784L, 1788L, 1785L, 1784L, 1782L, 
1783L, 1785L, 1782L, 1787L, 1781L, 1782L, 1785L, 1782L, 1786L, 
1785L, 1787L, 1787L, 1786L, 1787L, 1780L, 1785L, 1784L, 1783L, 
1782L, 1787L, 1779L, 1779L, 1786L, 1780L, 1787L, 1781L, 1778L, 
1782L, 1779L, 1778L, 1780L, 1786L, 1779L, 1785L, 1784L, 1779L, 
1784L, 1781L, 1784L, 1782L, 1785L, 1783L, 1781L, 1786L, 1780L, 
1781L, 1780L, 1781L, 1784L, 1787L, 1779L, 1786L, 1781L, 1782L, 
1780L, 1782L, 1786L, 1786L, 1787L, 1782L, 1788L, 1783L, 1785L, 
1788L, 1785L, 1786L, 1787L, 1787L, 1785L, 1784L, 1784L, 1787L, 
1788L, 1787L, 1782L, 1786L, 1784L, 1783L, 1786L, 1782L, 1782L, 
1789L, 1784L, 1783L, 1793L, 1794L, 1793L, 1787L, 1783L, 1782L, 
1786L, 1784L, 1787L, 1783L, 1783L, 1786L, 1789L, 1781L, 1785L, 
1784L, 1788L, 1789L, 1782L, 1784L, 1784L, 1787L, 1787L, 1783L, 
1784L, 1784L, 1783L, 1786L, 1783L, 1785L, 1788L, 1787L, 1788L, 
1783L, 1784L, 1783L, 1783L, 1781L, 1784L, 1786L, 1782L, 1791L, 
1787L, 1781L, 1787L, 1785L, 1787L, 1783L, 1785L, 1782L, 1784L, 
1787L, 1784L, 1783L, 1783L, 1783L, 1784L, 1786L, 1787L, 1782L, 
1789L, 1782L, 1782L, 1783L, 1782L, 1783L, 1783L, 1784L, 1783L, 
1788L, 1786L, 1782L, 1784L, 1781L, 1786L, 1782L, 1779L, 1780L, 
1783L, 1780L, 1786L, 1780L, 1786L, 1784L, 1784L, 1785L, 1777L, 
1783L, 1780L, 1784L, 1783L, 1780L, 1784L, 1781L, 1785L, 1785L, 
1781L, 1780L, 1786L, 1788L, 1787L, 1791L, 1789L, 1787L, 1787L, 
1793L, 1781L, 1784L, 1781L, 1784L, 1779L, 1784L, 1784L, 1784L, 
1780L, 1780L, 1784L, 1787L, 1782L, 1781L, 1784L, 1787L, 1785L, 
1781L, 1785L, 1783L, 1782L, 1782L, 1785L, 1781L, 1782L, 1786L, 
1788L, 1780L, 1787L, 1784L, 1788L, 1787L, 1784L, 1784L, 1785L, 
1780L, 1786L, 1780L, 1780L, 1788L, 1782L, 1793L, 1783L, 1785L, 
1785L, 1781L, 1783L, 1783L, 1787L, 1783L, 1784L, 1784L, 1783L, 
1785L, 1787L, 1788L, 1784L, 1787L, 1787L, 1785L, 1786L, 1784L, 
1786L, 1784L, 1786L, 1787L)

Z <- c(1788L, 1792L, 1787L, 1791L, 1790L, 1789L, 1791L, 1788L, 1792L, 
1794L, 1793L, 1791L, 1792L, 1787L, 1792L, 1792L, 1791L, 1788L, 
1792L, 1794L, 1791L, 1788L, 1794L, 1794L, 1789L, 1792L, 1788L, 
1793L, 1792L, 1788L, 1786L, 1787L, 1791L, 1786L, 1788L, 1792L, 
1787L, 1785L, 1786L, 1790L, 1788L, 1790L, 1792L, 1788L, 1787L, 
1790L, 1786L, 1792L, 1789L, 1787L, 1786L, 1787L, 1793L, 1793L, 
1792L, 1789L, 1786L, 1795L, 1793L, 1788L, 1791L, 1790L, 1792L, 
1790L, 1794L, 1792L, 1789L, 1791L, 1794L, 1788L, 1788L, 1794L, 
1794L, 1792L, 1790L, 1789L, 1788L, 1788L, 1789L, 1789L, 1794L, 
1790L, 1787L, 1791L, 1789L, 1791L, 1790L, 1783L, 1782L, 1781L, 
1781L, 1793L, 1788L, 1795L, 1793L, 1789L, 1791L, 1793L, 1792L, 
1792L, 1784L, 1781L, 1782L, 1795L, 1788L, 1789L, 1793L, 1793L, 
1792L, 1791L, 1791L, 1790L, 1794L, 1792L, 1796L, 1793L, 1791L, 
1793L, 1790L, 1794L, 1795L, 1788L, 1789L, 1790L, 1790L, 1793L, 
1790L, 1795L, 1793L, 1792L, 1778L, 1784L, 1782L, 1791L, 1793L, 
1791L, 1794L, 1793L, 1793L, 1790L, 1792L, 1788L, 1786L, 1790L, 
1794L, 1794L, 1791L, 1787L, 1792L, 1790L, 1791L, 1799L, 1790L, 
1788L, 1795L, 1791L, 1792L, 1787L, 1788L, 1792L, 1795L, 1786L, 
1785L, 1778L, 1794L, 1790L, 1794L, 1792L, 1793L, 1793L, 1793L, 
1792L, 1791L, 1794L, 1791L, 1788L, 1789L, 1790L, 1794L, 1793L, 
1793L, 1791L, 1791L, 1795L, 1790L, 1790L, 1788L, 1793L, 1793L, 
1786L, 1788L, 1795L, 1790L, 1781L, 1781L, 1782L, 1786L, 1794L, 
1787L, 1787L, 1782L, 1786L, 1783L, 1788L, 1784L)

【问题讨论】:

  • 这是一个优化问题。您可以查看lpSolve,对 X、Y 和 Z 中的每个元素使用 15 个二进制变量。X = 2 的二进制变量 xi 的总和,对于 Y = 4 的二进制变量 yi 和 zi Z, 3. obj fn 最小abs(sum(xi*X+yi*Y+zi*Z) - 50)
  • 感谢 lpSolve 软件包,我去看看。
  • 在下面看到您的评论。如果由于维度问题而使用 lpSolve,它也可能会很慢。你可能需要使用某种启发式方法。

标签: r


【解决方案1】:

这是一个带有MixedCombnPerm函数的解决方案,可以在here找到。

此解决方案在于推导所有可能的组合,然后采用最佳组合。

X <-  c(2,3,5,10,15) 
Y <- c(4,6,23,15,12) 
Z <- c(23,34,12,1,5)

set_list <- list(X, Y, Z)
k <- c(2, 4, 3)

combinations <- MixedCombnPerm(set_list, k)
total <- colSums(combinations)
deviation <- abs(total - 50)
is <- which(deviation == min(deviation))
combinations[, is]
# [1]  2  3  4  6 15 12 12  1  5
total[is]
# [1] 60

这是CVXR 的解决方案。结果中的小数值实际上是0。

library(CVXR)
x <- Bool(5)
y <- Bool(5)
z <- Bool(5)
constraintX <- sum(x) == 2
constraintY <- sum(y) == 4
constraintZ <- sum(z) == 3
objective <- Minimize((sum(x*X+y*Y+z*Z) - 50)^2)
problem <- Problem(objective, 
                   constraints = list(constraintX, constraintY, constraintZ))
result <- solve(problem)
result$getValue(x)
#              [,1]
# [1,] 1.000000e+00
# [2,] 1.000000e+00
# [3,] 1.168141e-09
# [4,] 8.964959e-11
# [5,] 2.563038e-11
result$getValue(y)
#              [,1]
# [1,] 1.000000e+00
# [2,] 1.000000e+00
# [3,] 1.841415e-10
# [4,] 1.000000e+00
# [5,] 1.000000e+00
result$getValue(z)
#              [,1]
# [1,] 9.946796e-11
# [2,] 3.816320e-11
# [3,] 1.000000e+00
# [4,] 1.000000e+00
# [5,] 1.000000e+00

编辑

这是一个使用CVXR 处理大数据的解决方案。首先安装包Rglpk

install.packages("Rglpk")

然后做:

result <- solve(problem, solver = "GLPK")

我用

测试过
objective <- Minimize( abs( sum(x*X) + sum(y*Y) + sum(z*Z) - target) )

它成功了。

【讨论】:

  • 我尝试使用所有组合,当你有小数据时效果很好,但当数据组变大时就不行了。我收到此错误,我认为这是因为我无法处理超过 2^31 - 1 个组合...Error in CombinatoricsRcpp(v, m, repetition, freqs, lower, upper, constraintFun, : The number of rows cannot exceed 2^31 - 1.
  • @AuronusBen 查看我编辑的答案以获取另一个解决方案。
  • 感谢第二个解决方案。我会尝试让它在我的数据上运行。
  • @AuronusBen 我不知道。也许看看en.wikipedia.org/wiki/Convex_optimization
  • @AuronusBen 是的,它非常快。别忘了accept the answer
【解决方案2】:

也许outer() 可以帮到你,但是在大数据集的情况下效率可能会低:

k <- c(2,4,3)

L <- list(X,Y,Z)
V <- sapply(seq_along(k), function(q) combn(L[[q]],k[q]))
S <- abs(Reduce(function(x,y) outer(x,y,"+"), Map(colSums,V))-50)
r <- as.numeric(which(S == min(S),arr.ind = T))
res <- sapply(seq_along(r), function(q) V[[q]][,r[q]])

给出:

> res
$X
[1] 2 3

$Y
[1]  4  6 15 12

$Z
[1] 12  1  5

【讨论】:

  • 遗憾的是,就像我说的组合在小数据上效果很好。但是当我获得更大的数据时,就不可能了。我得到invalid 'ncol' value (too large or NA) ,这意味着数据太大了。
  • @AuronusBen 您的数据集有多大?只是好奇
  • 实际上:Length(X) = 304 length(Y) = 205length(Z) = 1057。我想取最好的:X 中的 12 个值,Y 中的 56 个值和 Z 中的 137 个值。这就是为什么我不能使用组合,因为我无法处理它们。
  • @AuronusBen 也许你应该尝试@Stéphane Laurent 提供的解决方案,即使用CVXR
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-16
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
相关资源
最近更新 更多