Each day I solve several coding challenges and puzzles from Codr's ranked mode. The goal is to reach genius rank, along the way I explain how I solve them. You do not need any programming background to get started, and you will learn a ton of new and interesting things as you go.
function cross(a, b) {
return [a[1] * b[2] - a[πΌ] * π§[1], a[2] * b[0] - βοΈ[0] * b[2], π[0] * b[1] - a[1] * b[0]];
}
let out = cross([8, 4, 2], [2, 6, 2]);
let A = out[1];
A = Math.abs(A);
// π§ = ? (identifier)
// βοΈ = ? (identifier)
// π = ? (identifier)
// πΌ = ? (number)
// such that A = 12 (number)
This challenge is about some pretty simple mathematical matrix operations. We need to fix 4 bugs, which all appear on the same line:
return [
a[1] * b[2] - a[πΌ] * π§[1],
a[2] * b[0] - βοΈ[0] * b[2],
π[0] * b[1] - a[1] * b[0]
];
To solve this we have to carefully analyze the code. The name of the function cross
already reveals a lot. If you had some algebra you may have heard of the cross-product of two (or more) matrices. If you haven't, or if you already forgot how it works (like me), a quick Google image search gives us the following formula:
Our code looks very similar to this formula, except for the enumeration (the first element is 0 instead of 1). We can also solve these bugs using our prior knowledge of symmetry, since it's a mathematical function.
The first bug πΌ has to be 2.
The 2nd bug π§ has to be b
.
The third bug βοΈ is a
.
The final bug π is a
as well.
By solving these challenges you train yourself to be a better programmer. You'll learn newer and better ways of analyzing, debugging and improving code. As a result you'll be more productive and valuable in business. Join me on the Road to Genius and upgrade your programming skills, at https://nevolin.be/codr/
Top comments (0)