DMUG-Archiv 2008

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re[3]: optimale Code in Mathematica

Guten Morgen Manfred,

die Multiplikationsbedingung ist restriktiv, es
kommen nur die Zahlen

Union[Sort[
   Flatten[Most[Rest[Divisors[#]]]& /@ Range[L + 1, R - 1]]]]

als Testkandidaten in Frage, nicht der gesamte Range[L + 1, R - 1].

Es ist aber

In[19]:= And @@ ((Union[
       Sort[Flatten[Most[Rest[Divisors[#]]]& /@ Range[2, #]]]] ==
      Range[2, Floor[#/2]])& /@
   Table[RandomInteger[{2, 100000}], {17}])

Out[19]= True

eine experimentelle Wahrheit und somit reicht

In[21]:= With[{L = 1, R = 37},
 o = {};
 For[i = L + 1, i <=  Floor[(R - 1)/(L + 1)], i++,
  For[j = i, j <= Floor[(R - 1)/(L + 1)], j++,
   If[fS[L, i, j, R],
    If[fA[L, i, j, R], o = {o, {i, j}},
     If[fA[L, j, i, R], o = {o, {j, i}}]]]
   ]
  ];
 Sort[Partition[Flatten[o], 2]] /. {x_, y_} -> {{x, y}, x + y, x - y,
    x y, x/y}
 ]

hin. Sie könnten die anderen 3 Operationsbedingungen auch auf ihre Restriktivität (= Anzahl der Treffer für diese Operation) prüfen
und die endgültige Lösung durch Vermeidung der Ausführung von
fS und fA auf Nichtkandidatentupeln optimieren.

Gruss
Udo.

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html