【问题标题】:A hard Question? [closed]一个很难的问题? [关闭]
【发布时间】:2011-02-26 02:20:30
【问题描述】:

我试图找到一个问题的解决方案.... 我们有一个数字,例如:20 ... 我们有 6 个数字:{ a ,b , c , d , e , f}

我们选择31:

a = 22 b = 21 c = 14 d = 11 e = 9 f = 5

我们有: 22 - 21 = 1; 11 - 9 = 2; 14 - 11 = 3; 9 - 5 = 4; f = 5 ; 11 - 5 = 6; 21 - 14 = 7; …… …… …… …… …… 21 + 9 = 30; 9 + 22 = 31 ;

【问题讨论】:

  • 看起来您走在正确的道路上。数字加起来。
  • 如果是作业,您应该将其标记为作业。看看常见问题:meta.stackexchange.com/questions/10811/…
  • 该问题可以使用英文校对检查 - 它不可读。
  • 我不确定我是否理解您的问题。您正在处理的问题是:找到 6 个数字的组合,例如两个数字之间的差异集合并集两个数字的总和作为子集,{1, 2, 3, 4, 5 , ..., 17, 18, 19, 20}?
  • Daniel Trebbien : 就是这 6 个数字

标签: discrete-mathematics arithmetic-expressions


【解决方案1】:

这看起来像是家庭作业,所以我会尽量给你一些提示。

您想遍历数组中两个数字的所有组合。为此,您可以使用一个循环遍历所有数字的外循环,然后在该循​​环内使用一个也循环遍历所有数字的内循环。

具体取决于您想要做什么,您需要决定是否要将x, yy, x 分开处理

【讨论】:

    【解决方案2】:

    给定一个自然数n,找出6个正整数abc的所有组合, def 使得 {abc, d, e, f} ∪ {a + b, a + c, ..., a + f, b em> + c, b + d, ..., b + f, ..., e + f} ∪ {a - b, a em> - c, ..., a - f, b - c, b - d, ..., b - f, ..., e - f, b - a, c - a, ..., f - a, c - b, d - b, ..., f - b, ..., f - e} 包含 1、2、3、4、...、n - 1 和 n

    我没有过多考虑这个问题,但在我看来,这确实是一个难题。也许有一个技巧,我不确定,但如果我必须解决这个问题,我会首先尝试找到无限有 not 的最小 n -许多解决方案(例如,如果 n 为 1,则包含两个连续自然数的 6 个自然数的任意组合都可以)。

    我认为在数学讨论论坛中找到这个问题的解决方案会更好。

    【讨论】:

      【解决方案3】:
      void FindCombinations(int n, int [] values)
      {
         for(int i = 0; i < values.length; i++)
         {
           int left = values[i];
           for(int j = 0; k < values.length; j++)
           {
             int right = values[j];
      
             if (left == right)
                continue;
      
             if (left + right < n)
                Console.Write(string.Format("{0} + {1} = {2} < {3}", left, right, left+right, n);
             if (left - right < n)
                Console.Write(string.Format("{0} - {1} = {2} < {3}", left, right, left-right, n);
           }
         }
      }
      

      虽然这个问题有点家庭作业的味道,但其实并没有那么难(尽管可以说很难解释)。

      注意:这个解决方案是O(n^2),不是高效,请记住这一点。

      【讨论】:

      • 您可能应该忽略i == j 的组合。
      • -1 在发布代码之前没有尝试理解问题。
      猜你喜欢
      • 1970-01-01
      • 2011-11-14
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多