Advertisement
Guest User

Fuente de la vida

a guest
Jan 16th, 2011
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.04 KB | None | 0 0
  1.         public bool Gauss(double[,] a, double[] r)
  2.         {
  3.  
  4.             double t, s;
  5.  
  6.             int i, l, j, k, m, n;
  7.  
  8.  
  9.  
  10.             try
  11.             {
  12.  
  13.                 n = r.Length - 1;
  14.  
  15.                 m = n + 1;
  16.  
  17.                 for (l = 0; l <= n - 1; l++)
  18.                 {
  19.  
  20.                     j = l;
  21.  
  22.                     for (k = l + 1; k <= n; k++)
  23.                     {
  24.  
  25.                         if (!(Math.Abs(a[j, l]) >= Math.Abs(a[k, l]))) j = k;
  26.  
  27.                     }
  28.  
  29.                     if (!(j == l))
  30.                     {
  31.  
  32.                         for (i = 0; i <= m; i++)
  33.                         {
  34.  
  35.                             t = a[l, i];
  36.  
  37.                             a[l, i] = a[j, i];
  38.  
  39.                             a[j, i] = t;
  40.  
  41.                         }
  42.  
  43.                     }
  44.  
  45.                     for (j = l + 1; j <= n; j++)
  46.                     {
  47.  
  48.                         t = (a[j, l] / a[l, l]);
  49.  
  50.                         for (i = 0; i <= m; i++) a[j, i] -= t * a[l, i];
  51.  
  52.                     }
  53.  
  54.                 }
  55.  
  56.                 r[n] = a[n, m] / a[n, n];
  57.  
  58.                 for (i = 0; i <= n - 1; i++)
  59.                 {
  60.  
  61.                     j = n - i - 1;
  62.  
  63.                     s = 0;
  64.  
  65.                     for (l = 0; l <= i; l++)
  66.                     {
  67.  
  68.                         k = j + l + 1;
  69.  
  70.                         s += a[j, k] * r[k];
  71.  
  72.                     }
  73.  
  74.                     r[j] = ((a[j, m] - s) / a[j, j]);
  75.  
  76.                 }
  77.  
  78.                 return true;
  79.  
  80.             }
  81.  
  82.             catch
  83.             {
  84.  
  85.                 return false;
  86.  
  87.             }
  88.  
  89.         }
  90.        
  91.         public double elixirdelamuerte(int elixir, int veneno, int piscina)
  92.         {
  93.             if (elixir > veneno)
  94.                 return -1;
  95.             else
  96.             {
  97.                 double[,] a = { { elixir, -1, -piscina}, { veneno, -1, 0 } };
  98.                 double[] r = new double[2];
  99.                 Gauss(a, r);
  100.                 return r[0];
  101.             }
  102.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement