Difference between revisions of "161-A5.1"

From Microlab Classes
Jump to navigation Jump to search
Line 10: Line 10:
  
 
== Expected Output ==
 
== Expected Output ==
 +
 +
{| class="wikitable"
 +
|-
 +
|
 +
| <math>n = 2</math>
 +
| <math>n = 4</math>
 +
| <math>n = 16</math>
 +
| <math>n = 256</math>
 +
| <math>n = 65536</math>
 +
|-
 +
| <math>\epsilon = 0.1</math>
 +
| 1
 +
| 1
 +
| 4
 +
| 39
 +
| 7291
 +
|-
 +
| <math>\epsilon = 0.3</math>
 +
| 1
 +
| 1
 +
| 6
 +
| 86
 +
| 20158
 +
|-
 +
| <math>\epsilon = 0.8</math>
 +
| 1
 +
| 3
 +
| 11
 +
| 193
 +
| 51758
 +
|-
 +
|}

Revision as of 04:30, 8 May 2021

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.

Expected Output

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