Problem 221. Boolean algebra
Your contractor from Elbonia has sent you the prototype of the new logical unit. It turns out that the only logical relation it understands is "nand":
nand(a,b) := ~(a&b)
Your team has been developing code using the usual logical operators following MATLAB syntax: ~,& and |. To save the project you need to write a translator that expresses MATLAB logical expressions using only the nand function.
Input
- expr: a string containing a valid logical expression in MATLAB, that relates the two logical variables a and b
Output
- out: a string containing an equivalent logical expression that may only use the function nand(a,b).
Example 1:
expr = 'a|(~b)' =>out = 'nand(nand(a,a),b)'
Example 2:
expr = '(a & ~a) | ~(a|b)' =>out = 'nand(nand(nand(a,a),nand(b,b)),nand(nand(a,a),nand(b,b)))'
Remarks:
It is not necessary to provide the shortest solution. A solution always exists. The input string is non-empty and always evaluates to true or false, if a and b are logical variables. All substrings in the output that are not 'a','b','0','1','true','false','(',')' or'nand' will be ignored.
Solution Stats
Problem Comments
-
5 Comments
Hi Dyuman, thanks for being on the case! To answer your questions:
1. It's been happening on this problem and problem 1, which I tried submitting solutions to yesterday to work out where exactly the problem was. I got the error once, but ONLY once, on problem 1; on this problem, on the other hand, it has happened every single time. I've not tried to solve other problems recently.
2. Windows 11 (x64); I've tried both Firefox and Opera (the latter is based on Chrome). Same problem with both
3. I've not tried; too much to do at work right now to be able to sneak in Cody time...
Christian, the problem has been fixed by the Cody team.
I have successfully used the scratch pad with multiple tests.
You can try solving the problem again; utilizing the scratch pad for testing solutions.
Let me know if you still face this (or any other) problem.
Thanks, Dyuman! It's working now — thanks to you and the entire Cody team for being on the case and tracking down and fixing this issue!
Solution Comments
Show commentsProblem Recent Solvers10
Suggested Problems
-
1540 Solvers
-
Project Euler: Problem 5, Smallest multiple
1496 Solvers
-
Flip the main diagonal of a matrix
823 Solvers
-
1118 Solvers
-
Sum the entries of each column of a matrix which satisfy a logical condition.
163 Solvers
More from this Author7
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!