public IHttpActionResult Post(Radical radical)
        {
            if (!ModelState.IsValid) {
                return BadRequest(this.ModelState);
            }

            var user = this.User as ClaimsPrincipal;
            if (user.HasClaim("CanAddRadicals", "true")) {
                _service.SaveRad(radical);
                return Created("", radical);
            }
            else { return Unauthorized(); }
        }
Exemplo n.º 2
0
        public void CalculateTest(double firstValue, double expected)
        {
            var calculator   = new Radical();
            var actualResult = calculator.Calculate(firstValue);

            Assert.AreEqual(expected, actualResult);
        }
Exemplo n.º 3
0
        public static Entry[] GetFields(object obj, bool seen)
        {
            var type      = obj.GetType();
            var accessors = GetAccessors(type);

#if US_LOGGING
            if (Radical.IsLogging())
            {
                Radical.Log("[Available Fields]");
                Radical.IndentLog();
                accessors[1].Select(a => { Radical.Log("{0}", a.FieldInfo.Name); return(a); }).ToList();
                Radical.OutdentLog();
                Radical.Log("[/Available Fields]");
            }
#endif

            return((from a in accessors[seen ? 1 : 3]
                    let value = a.Get(obj)
                                select new Entry()
            {
                FieldInfo = a.FieldInfo,
                MustHaveName = true,
                Value = value,
                IsStatic = a.IsStatic
            }).ToArray());
        }
Exemplo n.º 4
0
        // Token: 0x0600000D RID: 13 RVA: 0x00002290 File Offset: 0x00000490
        public GameObject GetHullPlate()
        {
            bool       flag = this.Texture == null;
            GameObject result;

            if (flag)
            {
                result = null;
            }
            else
            {
                GameObject   gameObject  = Resources.Load <GameObject>("Submarine/Build/DioramaHullPlate");
                GameObject   gameObject2 = UnityEngine.Object.Instantiate <GameObject>(gameObject);
                MeshRenderer component   = Radical.FindChild(gameObject2, "Icon").GetComponent <MeshRenderer>();
                component.material.mainTexture = this.Texture;
                PrefabIdentifier component2 = gameObject2.GetComponent <PrefabIdentifier>();
                component2.ClassId = this.Info.InternalName;
                TechTag component3 = gameObject2.GetComponent <TechTag>();
                component3.type = this.TechType;
                Constructable component4 = gameObject2.GetComponent <Constructable>();
                component4.techType = this.TechType;
                result = gameObject2;
            }
            return(result);
        }
Exemplo n.º 5
0
        public void CalculateRadicalTest(double firstValue, double expected)
        {
            IOneArgumentCalculator calculator = new Radical();
            double result = calculator.Calculate(firstValue);

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 6
0
        public void NormalizeCoefficients()
        {
            RadicalSumRatio total = 0;

            foreach (KeyValuePair <Tuple <Rational, Rational>, CBNode> kvp in grid)
            {
                if (kvp.Value.m1 + kvp.Value.m2 == m)
                {
                    total += (kvp.Value.rawCoefficient * kvp.Value.rawCoefficient);
                }
            }
            foreach (KeyValuePair <Tuple <Rational, Rational>, CBNode> kvp in grid)
            {
                if (kvp.Value.m1 + kvp.Value.m2 == m)
                {
                    if (total.IsRational)
                    {
                        var normalizer = new Radical(total.ToRational());
                        kvp.Value.normalizedCoefficient = kvp.Value.rawCoefficient / normalizer;
                        kvp.Value.status = CBNode.NormalizationStatus.NORMALIZED;
                    }
                    else
                    {
                        kvp.Value.normalizedCoefficient = (kvp.Value.rawCoefficient * kvp.Value.rawCoefficient) / total;
                        kvp.Value.sign   = kvp.Value.rawCoefficient >= 0 ? 1 : -1;
                        kvp.Value.status = CBNode.NormalizationStatus.NORM_SQUARED;
                    }
                }
            }
        }
Exemplo n.º 7
0
        public void ConversionTests()
        {
            // [3*sqrt(2) + (7/2)*sqrt(3)] / [(-9/3)*sqrt(2) + (-14/4)*sqrt(3)] = -1
            var b11 = new Radical(3, 2);
            var b12 = new Radical(new Rational(7, 2), 3);
            var b13 = new Radical(new Rational(-9, 3), 2);
            var b14 = new Radical(new Rational(-14, 4), 3);
            var c11 = new RadicalSum(new Radical[2] {
                b11, b12
            });
            var c12 = new RadicalSum(new Radical[2] {
                b13, b14
            });
            var  cr1        = new RadicalSumRatio(c11, c12);
            bool actual11   = cr1.IsRational;
            var  actual12   = cr1.ToRational();
            bool expected11 = true;
            var  expected12 = new Rational(-1);

            // (3*sqrt(2)) / ((5/3)*sqrt(3)) = (9/5)*sqrt(2/3) = (3/5)*sqrt(6)
            var    b21        = new RadicalSumRatio(3, 2);
            var    b22        = new RadicalSumRatio(new Rational(5, 3), 3);
            var    b23        = b21 / b22;
            var    actual21   = b23.IsRational;
            var    actual22   = b23.ToDouble();
            var    expected21 = false;
            double expected22 = 1.4696938456699068589183704448235;

            Assert.Equal(expected11, actual11);
            Assert.Equal(expected12, actual12);
            Assert.Equal(expected21, actual21);
            Assert.Equal(expected22.ToString("0.000000"), actual22.ToString("0.000000"));
        }
Exemplo n.º 8
0
    void OnGUI()
    {
        if (GUILayout.Button("Save"))
        {
            //Save the game with a prefix of Game
            var t = DateTime.Now;
            LevelSerializer.SaveGame("Game");
            Radical.CommitLog();
            Debug.Log(string.Format("{0:0.000}", (DateTime.Now - t).TotalSeconds));
        }

        //Check to see if there is resume info
        if (LevelSerializer.CanResume)
        {
            if (GUILayout.Button("Resume"))
            {
                LevelSerializer.Resume();
            }
        }

        if (LevelSerializer.SavedGames.Count > 0)
        {
            GUILayout.Label("Available saved games");
            //Look for saved games under the given player name
            foreach (var g in LevelSerializer.SavedGames[LevelSerializer.PlayerName])
            {
                if (GUILayout.Button(g.Caption))
                {
                    g.Load();
                }
            }
        }
    }
Exemplo n.º 9
0
 void IDeserialized.Deserialized()
 {
     try
     {
         Loom.QueueOnMainThread(delegate
         {
             foreach (RadicalRoutine current in this.Running)
             {
                 try
                 {
                     if (current.trackedObject)
                     {
                         current.trackedObject.StartCoroutine(current.enumerator);
                     }
                     else
                     {
                         base.StartCoroutine(current.enumerator);
                     }
                 }
                 catch (Exception ex2)
                 {
                     Radical.LogError("Problem starting radical coroutine " + ex2.ToString());
                 }
             }
         }, 0.02f);
     }
     catch (Exception ex)
     {
         Radical.LogError("Problem queing restart for radical routines " + ex.ToString());
     }
 }
Exemplo n.º 10
0
 private void Update()
 {
     if (TheForest.Utils.Input.GetButtonDown("Save"))
     {
         DateTime now = DateTime.Now;
         LevelSerializer.SaveGame("Game");
         Radical.CommitLog();
         Debug.Log(string.Format("{0:0.000}", (DateTime.Now - now).TotalSeconds));
     }
     if (LevelSerializer.CanResume && GUILayout.Button("Resume", new GUILayoutOption[0]))
     {
         LevelSerializer.Resume();
     }
     if (LevelSerializer.SavedGames.Count > 0)
     {
         GUILayout.Label("Available saved games", new GUILayoutOption[0]);
         foreach (LevelSerializer.SaveEntry saveEntry in LevelSerializer.SavedGames[LevelSerializer.PlayerName])
         {
             if (GUILayout.Button(saveEntry.Caption, new GUILayoutOption[0]))
             {
                 saveEntry.Load();
             }
         }
     }
 }
        public GetSetGeneric(PropertyInfo info)
        {
            Name           = info.Name;
            Info           = info;
            CollectionType = Info.PropertyType.GetInterface("IEnumerable", true) != null;
            var getMethod = info.GetGetMethod(true);
            var setMethod = info.GetSetMethod(true);

            if (getMethod == null)
            {
                Get = (o) => {
                    return(info.GetValue(o, null));
                };
                Set = (o, v) => {
                    info.SetValue(o, v, null);
                };
                return;
            }
            Get = (o) => {
                return(getMethod.Invoke(o, null));
            };
            Set = (o, v) => {
                try {
                    setMethod.Invoke(o, new [] { v });
                } catch (Exception e) {
                    Radical.LogWarning(string.Format("When setting {0} to {1} found {2}:", o.ToString(), v.ToString(), e.ToString()));
                }
            };
        }
 void IDeserialized.Deserialized()
 {
     try
     {
         Loom.QueueOnMainThread(() => {
             foreach (var routine in Running)
             {
                 try
                 {
                     if (routine.trackedObject)
                     {
                         routine.trackedObject.StartCoroutine(routine.enumerator);
                     }
                     else
                     {
                         StartCoroutine(routine.enumerator);
                     }
                 }
                 catch (Exception e)
                 {
                     Radical.LogError("Problem starting radical coroutine " + e.ToString());
                 }
             }
         }, 0.02f);
     }
     catch (Exception e)
     {
         Radical.LogError("Problem queing restart for radical routines " + e.ToString());
     }
 }
Exemplo n.º 13
0
    public override object Load(object[] data, object instance)
    {
        if (instance != null)
        {
            return(instance);
        }
#if US_LOGGING
        if (!((bool)data [1]))
        {
            Radical.Log("[[Disabled, will not be set]]");
        }
        Radical.Log("GameObject: {0}", data [0]);
#endif
        if (data.Length > 3)
        {
            var asset = SaveGameManager.Instance.GetAsset((SaveGameManager.AssetReference)data[3]) as GameObject;
            return(asset);
        }
        return(instance ?? new UnitySerializer.DeferredSetter((d) => {
            return UniqueIdentifier.GetByName((string)data [0]);
        })
        {
            enabled = (bool)data [1]
        });
    }
Exemplo n.º 14
0
    public override object Load(object[] data, object instance)
    {
#if US_LOGGING
        Radical.Log("Vector3: {0},{1},{2}", data [0], data [1], data [2]);
#endif
        return(new Vector2((float)data [0], (float)data [1]));
    }
Exemplo n.º 15
0
        public void NthRootTest()
        {
            var testCases = new List <Tuple <Radical, Radical> >()
            {
                // Nth-Root[n:3](8)
                new Tuple <Radical, Radical>(
                    Radical.NthRoot(8, 3),
                    new Radical(2, 1)),
                // Nth-Root[n:4](4) = 2^(2/4) = 2^(1/2) = Sqrt(2)
                new Tuple <Radical, Radical>(
                    Radical.NthRoot(4, 4),
                    new Radical(2)),
                // Nth-Root[n:2](Sqrt(2)) = Nth-Root[n:4](2)
                new Tuple <Radical, Radical>(
                    Radical.NthRoot(Radical.Sqrt(2), 2),
                    new Radical(1, 2, 4)),
                // Nth-Root[n:3](125) = 5
                new Tuple <Radical, Radical>(
                    Radical.NthRoot(125, 3),
                    5),
                // Nth-Root[m:5]((5/7)*Nth-Root[n:3](11))
                //              = (1/7)Nth-Root[n:15](125*‭13841287201‬*11)
                //              = (1/7)Nth-Root[n:15](‭19031769901375‬‬)
                //              = ‭1.0969847037974137166744190628521‬
                new Tuple <Radical, Radical>(
                    Radical.NthRoot(new Radical(new Rational(5, 7), 11, 3), 5),
                    new Radical(new Rational(1, 7), BigInteger.Parse("19031769901375"), 15)),
            };

            foreach (var testCase in testCases)
            {
                Assert.Equal(testCase.Item2, testCase.Item1);
            }
        }
Exemplo n.º 16
0
        public static Entry[] GetFields(object obj)
        {
            var type      = obj.GetType().TypeHandle;
            var accessors = GetAccessors(type);

#if US_LOGGING
            if (Radical.IsLogging())
            {
                Radical.Log("[Available Fields]");
                Radical.IndentLog();
                accessors[1].Select(a => { Radical.Log("{0}", a.FieldInfo.Name); return(a); }).ToList();
                Radical.OutdentLog();
                Radical.Log("[/Available Fields]");
            }
#endif

            return((from a in accessors[1]
                    let value = a.Get(obj)
                                where value != null && !value.Equals(a.Vanilla)
                                select new Entry()
            {
                FieldInfo = a.FieldInfo,
                MustHaveName = true,
                Value = value
            }).ToArray());
        }
Exemplo n.º 17
0
        public void Bruteforce2()
        {
            Stopwatch clock = Stopwatch.StartNew();

            long result = 0;
            long limit  = 120000;


            Radical[] radicals = new Radical[limit + 1];
            for (int i = 0; i < radicals.Length; i++)
            {
                radicals[i] = new Radical(1, i);
            }

            for (int i = 2; i <= limit; i++)
            {
                if (radicals[i].rad == 1)
                {
                    radicals[i].rad = i;

                    for (int j = i + i; j < limit; j += i)
                    {
                        radicals[j].rad *= i;
                    }
                }
            }

            Radical[] sortedRadicals = new Radical[limit];
            Array.Copy(radicals, 1, sortedRadicals, 0, limit);
            Array.Sort(sortedRadicals);

            for (long c = 3; c <= limit; c++)
            {
                long radc  = radicals[c].rad;
                long chalf = c / 2;

                foreach (var a in sortedRadicals)
                {
                    if (a.rad * radicals[c].rad > chalf)
                    {
                        break;
                    }
                    if (a.number >= chalf)
                    {
                        continue;
                    }

                    long b = c - a.number;
                    if (a.rad * radicals[b].rad * radc < c && GCD(a.rad, radicals[b].rad) == 1)
                    {
                        result += c;
                    }
                }
            }

            clock.Stop();
            Console.WriteLine("sum of c = {0}", result);
            Console.WriteLine("Solution took {0} ms", clock.Elapsed.TotalMilliseconds);
        }
Exemplo n.º 18
0
        public void CalculateTest()
        {
            var calculator = new Radical();
            var testresult = calculator.Calculate(124);
            var result     = Math.Sqrt(124);

            Assert.AreEqual(1, 1);
        }
Exemplo n.º 19
0
 public void Dispose()
 {
     _deferredLoggingEnabled--;
     if (_deferredLoggingEnabled == 0)
     {
         Radical.CommitLog();
     }
 }
Exemplo n.º 20
0
        static void Main(string[] args)
        {
            IOperation  operation  = new Radical(16, 2);
            ICalculator calculator = new ClassLibrary.Calculator(operation);

            Console.WriteLine(calculator.CallOperation());
            Console.ReadKey(true);
        }
Exemplo n.º 21
0
 public void Dispose()
 {
     Radical.LogNow("{0} - {1:0.000}", new object[]
     {
         this._caption,
         (DateTime.Now - this._start).TotalSeconds
     });
 }
Exemplo n.º 22
0
    public IEnumerator Load()
    {
        var t = DateTime.Now;

        LevelSerializer.LoadSavedLevelFromFile("DROD RPG Savefile.txt");
        Radical.CommitLog();
        Debug.Log(string.Format("{0:0.000}", (DateTime.Now - t).TotalSeconds));
        yield return(new WaitForSeconds(0));
    }
Exemplo n.º 23
0
        private static void TestRadicalHashing()
        {
            Random       rand = new Random();
            List <Point> p    = new List <Point>();

            DateTime now = DateTime.Now;

            int randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));

            p.Add(new Point(1, 1, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            p.Add(new Point(2, 2, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            p.Add(new Point(4, 2, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            p.Add(new Point(5, 3, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            p.Add(new Point(6, 2, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            p.Add(new Point(6, 3, new DateTime(now.Ticks - randNext)));

            List <Point> q = new List <Point>();

            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            q.Add(new Point(2, 4, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            q.Add(new Point(3, 5, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            q.Add(new Point(5, 5, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            q.Add(new Point(6, 6, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            q.Add(new Point(7, 5, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            q.Add(new Point(7, 6, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            q.Add(new Point(8, 7, new DateTime(now.Ticks - randNext)));
            randNext = rand.Next((int)Math.Pow(10, 4), (int)Math.Pow(10, 5));
            q.Add(new Point(9, 8, new DateTime(now.Ticks - randNext)));

            Stroke s  = new Stroke(p);
            Stroke s2 = new Stroke(p);
            Stroke r  = new Stroke(q);

            List <Stroke> strokelist = new List <Stroke>();

            strokelist.Add(s);
            strokelist.Add(s2);
            strokelist.Add(r);

            Radical rad = new Radical(strokelist);

            BinaryWriter bw = new BinaryWriter(new FileStream("test", FileMode.Create, FileAccess.Write, FileShare.None));

            bw.Write(rad.Hash(true));
            bw.Close();
        }
Exemplo n.º 24
0
    public void Start()
    {
        var primeList          = new PrimeList();
        var primeDecomposition = new PrimeDecomposition(primeList);
        var radical            = new Radical(primeDecomposition);

        _abc = new Abc(radical);
        Calc();
    }
        public void CGCalculatorTest()
        {
            // Test cases taken from here:
            // https://en.wikipedia.org/wiki/Table_of_Clebsch%E2%80%93Gordan_coefficients
            // The cases are formatted as:
            // Items 1-6: j1, j2, m, j, m1, m2
            // Item 7: Expected result (in radical form)
            var testCases = new List <Tuple <Rational, Rational, Rational, Rational, Rational, Rational, Radical> >()
            {
                new Tuple <Rational, Rational, Rational, Rational, Rational, Rational, Radical>(
                    (Rational)1 / 2, (Rational)1 / 2, 1, 1, (Rational)1 / 2, (Rational)1 / 2,
                    Radical.One),
                new Tuple <Rational, Rational, Rational, Rational, Rational, Rational, Radical>(
                    (Rational)1 / 2, (Rational)1 / 2, -1, 1, -(Rational)1 / 2, (Rational)(-1) / 2,
                    Radical.One),
                new Tuple <Rational, Rational, Rational, Rational, Rational, Rational, Radical>(
                    (Rational)1 / 2, (Rational)1 / 2, 0, 1, (Rational)1 / 2, (Rational)(-1) / 2,
                    Radical.Sqrt((Rational)1 / 2)),
                new Tuple <Rational, Rational, Rational, Rational, Rational, Rational, Radical>(
                    (Rational)1 / 2, (Rational)1 / 2, 0, 1, (Rational)(-1) / 2, (Rational)1 / 2,
                    Radical.Sqrt((Rational)1 / 2)),
                new Tuple <Rational, Rational, Rational, Rational, Rational, Rational, Radical>(
                    (Rational)1 / 2, (Rational)1 / 2, 0, 0, (Rational)1 / 2, (Rational)(-1) / 2,
                    Radical.Sqrt((Rational)1 / 2)),
                new Tuple <Rational, Rational, Rational, Rational, Rational, Rational, Radical>(
                    (Rational)1 / 2, (Rational)1 / 2, 0, 0, (Rational)(-1) / 2, (Rational)1 / 2,
                    -Radical.Sqrt((Rational)1 / 2)),
                new Tuple <Rational, Rational, Rational, Rational, Rational, Rational, Radical>(
                    (Rational)5 / 2, 2, (Rational)1 / 2, (Rational)7 / 2, (Rational)3 / 2, -1,
                    Radical.Sqrt((Rational)121 / 315)),
                new Tuple <Rational, Rational, Rational, Rational, Rational, Rational, Radical>(
                    (Rational)5 / 2, 2, (Rational)1 / 2, (Rational)3 / 2, (Rational)(-3) / 2, 2,
                    -Radical.Sqrt((Rational)32 / 105)),
                new Tuple <Rational, Rational, Rational, Rational, Rational, Rational, Radical>(
                    (Rational)5 / 2, (Rational)5 / 2, 0, 4, (Rational)(-3) / 2, (Rational)3 / 2,
                    -Radical.Sqrt((Rational)9 / 28)),
            };

            foreach (var testCase in testCases)
            {
                var        j1       = testCase.Item1;
                var        j2       = testCase.Item2;
                var        m        = testCase.Item3;
                var        j        = testCase.Item4;
                var        m1       = testCase.Item5;
                var        m2       = testCase.Item6;
                var        expected = testCase.Item7;
                CBScenario scenario = new CBScenario(j1: j1, j2: j2, j: j, m: m);
                scenario.InitializeGrid();
                scenario.CalculateRawCoefficients();
                scenario.NormalizeCoefficients();
                var actual  = scenario.grid[new Tuple <Rational, Rational>(m1, m2)];
                var isEqual = expected == actual.normalizedCoefficient;
                Assert.True(isEqual);
            }
        }
    public override object Load(object[] data, object instance)
    {
#if US_LOGGING
        Radical.Log("Vector3: {0},{1},{2}", data [0], data [1], data [2]);
#endif
        return(new UnitySerializer.DeferredSetter(d => {
            return new Vector3((float)data [0], (float)data [1], (float)data [2]);
        }
                                                  ));
    }
Exemplo n.º 27
0
        public static Polynomial Divide(Polynomial left, Radical right)
        {
            var terms = new PolynomialTerm[left.Terms.Length];

            for (int i = 0; i < left.Terms.Length; i++)
            {
                terms[i] = new PolynomialTerm(left.Terms[i].Coefficient / right, left.Terms[i].Degree);
            }
            return(new Polynomial(terms));
        }
        public IHttpActionResult Post(Radical radical)
        {
            if (!ModelState.IsValid) {
                return BadRequest(this.ModelState);
            }

            _repo.SaveRad(radical);

            return Created("", radical);
        }
Exemplo n.º 29
0
        public double Execute_CalculateNumbersRadical_ReturnsThatRealEqualsToExpected(double first, double second)
        {
            //Arrange
            IOperation operation = new Radical(first, second);

            //Act
            var result = operation.Execute();

            //Assert
            return(result);
        }
Exemplo n.º 30
0
        public async Task <Radical> GetRadicalByIdAsync(int id)
        {
            Radical radical =
                await _context.Radicals
                .Include(r => r.KanjiWithReadingAndWordsRadicals)
                .Include(r => r.KanjiWithReadingRadicals)
                .Include(r => r.KanjiWithWordsRadicals)
                .FirstOrDefaultAsync(r => r.Id == id);

            return(radical);
        }
Exemplo n.º 31
0
 public static RadicalModel Create(Radical entity)
 {
     return(new RadicalModel
     {
         Id = entity.Id,
         Word = entity.Word,
         HanViet = entity.HanViet,
         Meaning = entity.Meaning,
         Stroke = entity.Stroke,
     });
 }
        public IHttpActionResult Post(Radical radical)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(this.ModelState));
            }

            _repo.SaveRad(radical);

            return(Created("", radical));
        }
Exemplo n.º 33
0
        public void Bruteforce2()
        {
            Stopwatch clock = Stopwatch.StartNew();

            long result = 0;
            long limit = 120000;

            Radical[] radicals = new Radical[limit + 1];
            for (int i = 0; i < radicals.Length; i++)
            {
                radicals[i] = new Radical(1, i);
            }

            for (int i = 2; i <= limit; i++)
            {
                if (radicals[i].rad == 1)
                {
                    radicals[i].rad = i;

                    for (int j = i + i; j < limit; j += i)
                    {
                        radicals[j].rad *= i;
                    }
                }
            }

            Radical[] sortedRadicals = new Radical[limit];
            Array.Copy(radicals, 1, sortedRadicals, 0, limit);
            Array.Sort(sortedRadicals);

            for (long c = 3; c <= limit; c++)
            {
                long radc = radicals[c].rad;
                long chalf = c / 2;

                foreach (var a in sortedRadicals)
                {
                    if (a.rad * radicals[c].rad > chalf) break;
                    if (a.number >= chalf) continue;

                    long b = c - a.number;
                    if (a.rad * radicals[b].rad * radc < c && GCD(a.rad, radicals[b].rad) == 1)
                        result += c;
                }
            }

            clock.Stop();
            Console.WriteLine("sum of c = {0}", result);
            Console.WriteLine("Solution took {0} ms", clock.Elapsed.TotalMilliseconds);
        }
Exemplo n.º 34
0
 //var categories = (from m in _db.Categories select m).ToList();
 //    return categories;
 //    Character.Where(p => p.Id == id).FirstOrDefault();
 public void SaveRad(Radical radToSave)
 {
     if (radToSave.Id == 0) {
         _db.Radicals.Add(radToSave);
         _db.SaveChanges();
     } else {
         var original = this.Find(radToSave.Id);
         original.Symbol = radToSave.Symbol;
         original.Pinyin = radToSave.Pinyin;
         original.Meaning = radToSave.Meaning;
         original.StrokesNum = radToSave.StrokesNum;
         _db.SaveChanges();
     }
 }
Exemplo n.º 35
0
        public void Bruteforce()
        {
            Stopwatch clock = Stopwatch.StartNew();

            int target = 10000;
            int limit = 100000 + 1;

            Radical[] radicals = new Radical[limit];
            for (int i = 0; i < radicals.Length; i++)
            {
                radicals[i] = new Radical(1, i);
            }

            for (int i = 2; i < limit; i++)
            {
                if (radicals[i].rad == 1)
                {
                    radicals[i].rad = i;

                    for (int j = i + i; j < limit; j += i)
                    {
                        radicals[j].rad *= i;
                    }
                }
            }

            Array.Sort(radicals);

            //for (int i = 0; i < limit-1; i++) {
            //    Console.WriteLine(radicals[i].number + " " + radicals[i].rad + " " + (i + 1));
            //}

            clock.Stop();
            Console.WriteLine("E({1}) = {0}", radicals[target].number, target);
            Console.WriteLine("Solution took {0} ms", clock.Elapsed.TotalMilliseconds);
        }