Beispiel #1
0
def part2(start):
    circle = nums_1m(nums(start))
    for i in range(10_000):
        circle = nth(iterate(move, circle), 1000)
        print(i)
Beispiel #2
0
def labels_after_1(circle):
    where = circle.index(1)
    rotated = circle[where + 1:] + circle[:where]
    return strs(rotated)


def test_move():
    start = nums("389125467")
    assert labels_after_1(nth(iterate(move, start), 10)) == "92658374"
    assert labels_after_1(nth(iterate(move, start), 100)) == "67384529"


if __name__ == '__main__':
    start = nums("469217538")
    ans = labels_after_1(nth(iterate(move, start), 100))
    print(f"Part 1: labels after 1 are {ans}")

# Part 2: let's try just running it.


def nums_1m(s, n=1_000_000):
    start = nums(s)
    next1 = max(start) + 1
    start.extend(range(next1, next1 + (n - len(start))))
    return start


def test_nums_1m():
    n1m = nums_1m("469217538")
    assert len(n1m) == 1_000_000
Beispiel #3
0
def test_move():
    start = nums("389125467")
    assert labels_after_1(nth(iterate(move, start), 10)) == "92658374"
    assert labels_after_1(nth(iterate(move, start), 100)) == "67384529"
Beispiel #4
0
def transform(subject, loop_size):
    return nth(transformed_values(subject), loop_size)
Beispiel #5
0
def part1(start):
    return nth(memory_game(start), 2020 - 1)
Beispiel #6
0
def part1(cells):
    cells6 = nth(generations(cells), 6)
    return len(cells6)
Beispiel #7
0
def partn(cells):
    cells6 = nth(iterate(next_genn_targeted, cells), 6)
    return len(cells6)
Beispiel #8
0
import os
import time

import channel
import decode
import encode
import helpers
import interleave
import lookup_tables
import simcore

FRAME_LEN = 1000
EBN0S = [0.1, 0.2, 0.3, 0.6, 1.0, 2.0]
COUNT = 10

permutation = helpers.nth(permutations(range(FRAME_LEN)), 101)
make_permutation = lambda  len: helpers.nth(permutations(range(len)), 101)
interleaver = interleave.Interleaver(permutation)


def pass_decode(sequence, ebn0):
    return list(helpers.demodulaten(sequence))


def map_decode(sequence, ebn0):
    rel = channel._decibel_to_ratio(ebn0) * 2
    return decode.binary_maximum_a_posteriori(lookup_tables.abrantes_convo213, sequence, rel, True)


def make_turbo_decode(k):
    def turbo_decode(sequence, ebn0):
Beispiel #9
0
from itertools import permutations

import channel
import decode
import encode
import helpers
import interleave
import lookup_tables
import simcore

EBN0S = [0.01, 0.25, 0.5, 0.75, 1.0, 1.5, 2.0]
make_permutation = lambda n, k=101: helpers.nth(permutations(range(n)), k)
LENGTH = 1000
R = [1, 10, 50, 50, 50, 50, 50]
I = 2


def pass_decode(sequence, ebn0):
    return list(helpers.demodulaten(sequence))


def map_decode(sequence, ebn0):
    rel = channel._decibel_to_ratio(ebn0) * 2
    return decode.binary_maximum_a_posteriori(lookup_tables.abrantes_convo213,
                                              sequence, rel, True)


def make_turbo_decode(k, table, interleaver):
    def turbo_decode(sequence, ebn0):
        # rel = channel._decibel_to_ratio(ebn0) * 2
        rel = ebn0 * 2

if __name__ == '__main__':

    # Test running_count; you can add your own test cases
    print('\nTesting running_count')
    for i in running_count('bananastand', lambda x: x in 'aeiou'):  # is vowel
        print(i, end=' ')
    print()

    for i in running_count(hide('bananastand'),
                           lambda x: x in 'aeiou'):  # is vowel
        print(i, end=' ')
    print()

    print(nth(running_count(primes(), lambda x: x % 10 == 3), 1000))

    # Test stop_when; you can add your own test cases
    print('\nTesting stop_when')
    for c in stop_when('abcdefghijk', lambda x: x >= 'd'):
        print(c, end='')
    print()

    for c in stop_when(hide('abcdefghijk'), lambda x: x >= 'd'):
        print(c, end='')
    print('\n')

    print(nth(stop_when(primes(), lambda x: x > 100000), 100))

    # Test group_when; you can add your own test cases
    print('\nTesting yield_and_skip')