1. Куча / Говнокод #11459

    +129

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    F[numbers_, setNumber_, ParenNum_] := 
     Block[{func = {"+", "-", "*", "/"}[[setNumber]], 
       parens = {{"", "", "", "", "", ""}, {"", "(", "", "", ")", 
           ""}, {"", "", "", "(", "", ")"}, {"", "(", "", "", "", 
           ")"}, {"(", "", ")", "(", "", ")"}}[[ParenNum]], e}, 
      e = ToExpression[
        ToString[
         StringJoin[parens[[1]], ToString[numbers[[1]]], func[[1]], 
          parens[[2]], ToString[numbers[[2]]], parens[[3]], func[[2]], 
          parens[[4]], ToString[numbers[[3]]], parens[[5]], func[[3]], 
          ToString[numbers[[4]]], parens[[6]]]]]; e];Timing[c = 0; d = 0; 
     b = Permutations[{1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4}, {3}]; 
     For[n1 = 1, n1 < 10, n1++, 
      For[n2 = 1, n2 < n1, n2++, 
       For[n3 = 1, n3 < n2, n3++, 
        For[n4 = 1, n4 < n3, n4++, 
         a = Permutations[{n1, n2, n3, n4}, {4}]; sol = {}; 
         For[i = 1, i <= Length[a], i++, 
          For[j = 1, j <= 64, j++, 
           For[n = 1, n <= 5, n++, g = F[a[[i]], b[[j]], n]; 
            If[IntegerQ[g] && g > 0, AppendTo[sol, g]]]]; 
          m = Sort[DeleteDuplicates[sol]]; 
          l = Complement[Range[1000], m][[1]]; 
          If[l > c, c = l; d = {n1, n2, n3, n4}]]]]]]; 
     FromDigits[Reverse[d]]]

    http://projecteuler.net/problem=93
    http://projecteuler.net/thread=93&page=6


    Язык, кстати, Mathematica.

    Запостил: TheHamstertamer, 22 Июля 2012

    Комментарии (7) RSS

    • А что значит "Q" в конце идентификаторов?
      Ответить
    • Number. Parens. To expression.
      String join parens. Permutation.

      http://www.youtube.com/watch?v=UoPplpBPQxQ
      Ответить
    • Меня впечатлил Anvar из этого треда
      http://projecteuler.net/thread=99;page=8
      Реализация на BASIC. Я бы запостил сюда, да кода больно много...
      Ответить
      • Да ладно, ничего особенного, индус обыкновенный.
        Ответить
        • Уж очень трудолюбивый попался. Не верю, что он не регекспами файл в исходники перевёл...
          Ответить

    Добавить комментарий