Exemplo n.º 1
0
        public void Day10_result_part1()
        {
            var result = _knotHashCalculator
                         .Calculate(
                new CircularList(256),
                new[] { 165, 1, 255, 31, 87, 52, 24, 113, 0, 91, 148, 254, 158, 2, 73, 153 });

            result
            .FirstTwoNumbersMultiplied
            .Should()
            .Be(4114);
        }
Exemplo n.º 2
0
        public void Run()
        {
            var numbers = new int[256];

            for (var i = 0; i < numbers.Length; i++)
            {
                numbers[i] = i;
            }

            const string input    = "129,154,49,198,200,133,97,254,41,6,2,1,255,0,191,108";
            var          lengths  = input.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(i => Convert.ToInt32(i)).ToArray();
            var          knotHash = new KnotHash(new ListReverser());

            var result = knotHash.Calculate(numbers, lengths);

            Console.WriteLine($"Result: {result}");

            var hex = knotHash.Calculate(input);

            Console.WriteLine($"Knot hash: {hex}");
        }
        public byte[][] CreateGrid(string input)
        {
            var grid = new List <byte[]>();

            for (var i = 0; i < 128; i++)
            {
                var key      = $"{input}-{i}";
                var knotHash = _knotHash.Calculate(key);
                var gridRow  = ConvertHexStringToBinaryArray(knotHash);
                grid.Add(gridRow);
            }
            return(grid.ToArray());
        }