你知道如何向量化 14 个嵌套循环吗?(18个,但每个块的最后一个for
是由同一块中的其他块预先确定的。我使用for
它是因为它更容易阅读)
max2=0
for(M_P in 0:9)
{
for(M_D in 0:(9-M_P))
{
for(M_A in 0:(9-M_P-M_D))
{
for(M_CC in 0:(9-M_P-M_D-M_A))
{
for(M_CD in (9-M_P-M_D-M_A-M_CC))
{
for(G_D in 0:9)
{
for(G_A in 0:(9-G_D))
{
for(G_CC in 0:(9-G_D-G_A))
{
for(G_CD in (9-G_D-G_A-G_CC))
{
for(S_D in 0:9)
{
for(S_A in 0:(9-S_D))
{
for(S_CC in 0:(9-S_D-S_A))
{
for(S_CD in (9-S_D-S_A-S_CC))
{
for(Q_P in 0:3)
{
for(Q_D in 0:(3-Q_P))
{
for(Q_A in 0:(3-Q_P-Q_D))
{
for(Q_CC in 0:(3-Q_P-Q_D-Q_A))
{
for(Q_CD in (3-Q_P-Q_D-Q_A-Q_CC))
{
max1=1.1*M_P+2.1*M_D+3.1*M_A+4.1*M_CC+4*M_CD+2*G_D+5*G_A+1.5*G_CC+3*G_CD+5*S_D+4*S_A+3*S_CC+6*S_CD+2*Q_P+3*Q_D+2.2*Q_A+3*Q_CC+4*Q_CD
if(max1>max2)
{
max2=max1
}}}}}}}}}}}}}}}}}}}
print(max2)
我需要做这个小的优化工作,但我不知道如何对它进行验证,因为我是 R 和编程的新手!基本上我有 3 组 9 个插槽和 1 组 3 个插槽。在插槽中,我可以放置某种具有特定价值的徽章,并且那些嵌套循环会搜索可能的最佳徽章组合。当然,在本示例中,您只是放置具有更高值的徽章,但在实际情况下,max1
计算会更复杂且不简单(如果您需要,我可以给您整个代码)。