mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-23 21:11:08 +00:00
Create multiplexer.py (#11064)
* Create multiplexer.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Doctests should show how the algorithm fails --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Christian Clauss <cclauss@me.com>
This commit is contained in:
parent
e3eb9daba4
commit
5019561681
42
boolean_algebra/multiplexer.py
Normal file
42
boolean_algebra/multiplexer.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
def mux(input0: int, input1: int, select: int) -> int:
|
||||
"""
|
||||
Implement a 2-to-1 Multiplexer.
|
||||
|
||||
:param input0: The first input value (0 or 1).
|
||||
:param input1: The second input value (0 or 1).
|
||||
:param select: The select signal (0 or 1) to choose between input0 and input1.
|
||||
:return: The output based on the select signal. input1 if select else input0.
|
||||
|
||||
https://www.electrically4u.com/solved-problems-on-multiplexer
|
||||
https://en.wikipedia.org/wiki/Multiplexer
|
||||
|
||||
>>> mux(0, 1, 0)
|
||||
0
|
||||
>>> mux(0, 1, 1)
|
||||
1
|
||||
>>> mux(1, 0, 0)
|
||||
1
|
||||
>>> mux(1, 0, 1)
|
||||
0
|
||||
>>> mux(2, 1, 0)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Inputs and select signal must be 0 or 1
|
||||
>>> mux(0, -1, 0)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Inputs and select signal must be 0 or 1
|
||||
>>> mux(0, 1, 1.1)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Inputs and select signal must be 0 or 1
|
||||
"""
|
||||
if all(i in (0, 1) for i in (input0, input1, select)):
|
||||
return input1 if select else input0
|
||||
raise ValueError("Inputs and select signal must be 0 or 1")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import doctest
|
||||
|
||||
doctest.testmod()
|
Loading…
Reference in New Issue
Block a user