161-A5.1

From Microlab Classes
Jump to navigation Jump to search

In this module, you have learned that it is possible to synthesize extremal channels from multiple copies of a given binary-input channel. In particular, the binary erasure channel (BEC) has the property that all synthesized channels are equivalent to BECs.

Task Description

Your task in Module 5 is simple: given the erasure probability of a BEC, you are to count the number of synthetic channels with erasure probability that is better (lower) than the original BEC.

You need to write a function count_bad_channels which will take two arguments:

  • blocklength - an int that is a power of two, denoting the blocklength or, equivalently, the number of synthetic channels produced via the polar transform.
  • erasure_prob - a float, a positive real number between 0 and 1, indicating the erasure probability of the original BEC.

The function must return an int corresponding to the number of synthetic BECs with erasure probabilities strictly less than erasure_prob.

Python test script for execution
Header
import math
Student submission (function only)
def count_bad_channels(blocklength, erasure_prob):
    # your code..
    # more code..

    return ans
}
Main test script
# Main test script goes here, and will not be visible to students.
# The script will test if the submitted code does the prescribed functionality.
# For successfully validated scripts, test results will be sent via email.

Expected Output

1 1 4 39 7291
1 1 6 86 20158
1 3 11 193 51758