1

Do anyone knows an app for android that help you learn $1$ to $100$ times table? I tried a few but none was quite what I need. I want it to:

  1. Ask answers for two digit by one digit multiplication. $23 \times 7$, $39 \times 3$ and so on.
  2. Ask based on a range ($10$-$19$, $20$-$29$, $30$-$39$ and so on), so that I can keep training that specific range for how long I want. I plan to train a few tables each day so I master all on a month.
  3. To type the answer instead of selecting it from the screen. This is really important because it forces me to think.

Ps.: To anyone wondering why, learning 1-100 tables will allow for much faster calculations. Almost twice as fast actually. 2356x43 break in four steps instead of eight (plus the sum, of course). But the biggest advantage comes in doing division and more complex mental arithmetic. Together with learning squares and cubes, it really helps calculation.

  • 4
    Why not try programming your own app :) – Bumblebee Jan 17 '22 at 04:07
  • @Ajay If I only knew how, I would. But still, if it already exist I will do a good review on its page, showing the developer I enjoy his good work. – Oriom Lyra Lisboa Jan 17 '22 at 11:58
  • I can only find websites which meet most of you requirements. I think it would be great if you could try using a python implemented code to question you. Do you know any python? – Bumblebee Jan 17 '22 at 13:31
  • You need not create an app but you can make a simple python code which you can set the requirements for. – Bumblebee Jan 17 '22 at 13:32
  • @Ajay I don't know any programming language, but I'm curious... is it hard to implement this? Also, what sites did you found? – Oriom Lyra Lisboa Jan 17 '22 at 15:02
  • Here's a simple multiplication drill script I just wrote in JavaScript. It runs (offline) in any Web browser. You can save it to your Android phone by downloading the ZIP archive & extracting it. Then you can tell your phone to add it to the Home screen. (You need to view the GitHub page in the Desktop View to see the "Download ZIP" button). – PM 2Ring Jan 17 '22 at 21:43
  • @Ajay Python's a great language, but Oriom wants to run the app on their Android device. So I think JavaScript is more suitable for this task. It is possible to run Python on a phone, but it's not so easy. You can do it using an online server, though. Eg, https://math.stackexchange.com/a/4347217/207316 But the SageMathCell isn't really a good match for this task. – PM 2Ring Jan 17 '22 at 21:48
  • @PM2Ring, true. I was thinking he could use a github repo and then run the code from a terminal line app which can be installed on android. But, java is better, though I think it may be difficult hence why I did not say. – Bumblebee Jan 18 '22 at 00:14
  • @PM2Ring Thank you! Your code looks exactly what I need, but I tried it and it seems its broke. It asks for negative values and do not respect the range I input. If you can fix it, it will be perfect! – Oriom Lyra Lisboa Jan 18 '22 at 15:06
  • @Oriom I originally tested it in the Samsung Android browser & Firefox on my desktop machine, and it worked properly. But I just tested it in Chrome on my phone and it's buggy. :( Sorry about that. But I think I know how to fix it. I'll post the new version shortly. – PM 2Ring Jan 18 '22 at 16:46
  • @PM2Ring Please, post it as an answer so I can thumbs it up and reward your efforts! – Oriom Lyra Lisboa Jan 18 '22 at 16:57
  • Ok. I've found the bug (which was created by an optimisation that doesn't work in Chrome). And I just noticed that the standard Chrome numpad on my phone doesn't allow negative numbers, but I guess that's not a problem for this program. ;) – PM 2Ring Jan 18 '22 at 17:15
  • @Oriom The GitHub has been updated. And you can test it in the live version link in the comment at the bottom of the page. I'll post an actual answer shortly. – PM 2Ring Jan 18 '22 at 17:24

1 Answers1

2

Here is a simple HTML / JavaScript program that can be used for multiplication drill. It should work on all Web browsers. It doesn't depend on any external files, so you can save it on your computer or mobile device, and it will work even if you're not online. I've tested it in Firefox on Linux and in the Chrome & Samsung browsers on my Galaxy S9 phone.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Multiplication Drill</title>
</head>
<body>
<h3>Multiplication Drill</h3>
<input id="aLo" type="number" value="2"><label for="aLo">Low A</label><br>
<input id="aHi" type="number" value="99"><label for="aHi">High A</label><br>
<input id="bLo" type="number" value="2"><label for="bLo">Low B</label><br>
<input id="bHi" type="number" value="99"><label for="bHi">High B</label><br>

<button onclick="reset()">Reset</button> <br><br>

<div id="main"> <div id="quiz"></div> <input id="response" type="number" onchange="check(+this.value)"> <label for="response">Answer</label> <br><br> <div id="product"></div> </div> </body> <script> var product = 0, right = 0, wrong = 0;

function ById(s){ return document.getElementById(s); }

function getRandom(min, max){ return Math.floor(Math.random() * (max - min + 1) + min); }

function go(){ let aLo = +ById("aLo").value, aHi = +ById("aHi").value, bLo = +ById("bLo").value, bHi = +ById("bHi").value;

let a = getRandom(aLo, aHi), b = getRandom(bLo, bHi);
product = a * b;
ById(&quot;response&quot;).value = &quot;&quot;;

let out = &quot;Right: &quot; + right + &quot; Wrong: &quot; + wrong + &quot; Total: &quot; + (right + wrong) + &quot;\n\n&quot;;
out += a + &quot; × &quot; + b;
ById(&quot;quiz&quot;).innerText = out;

}

function check(val){ ById("product").innerText = "Previous: " + product; if (val == product){ right += 1; ById("main").style = "background-color: #cfc"; } else{ wrong += 1; ById("main").style = "background-color: #fcc"; } go(); }

function reset(){ right = wrong = 0; ById("main").style = "background-color: #fff"; go(); }

reset(); </script> </html>

You can simply copy the above code to your device (and save it to a file with the .htm or .html extension), or you can download it from GitHub; on a mobile device you need to view the Desktop site to see the "Download ZIP" button. There's also a live version, which runs on the SageMathCell server, linked in a comment at the bottom of the GitHub page, if you want to test the program or use it without saving it to your device.

The user interface is very basic, it could easily be modified to look a lot prettier, using CSS. And of course various enhancements are possible, eg a timing function.


There's a lot of data to learn if you want to memorise the times tables up to 99 × 99! There are various arithmetic techniques that can be used to speed up two digit multiplication without having to memorise quite so much data. But of course such techniques will be slightly slower.

For example, you can multiply two numbers close to 100 with $$(100-a)(100-b) = 10000 - 100(a+b) + ab = 100(100-a-b) + ab$$

Similarly, $$(50+a)(50+b) = 2500 + 50(a+b) + ab = 100(25+(a+b)/2) + ab$$

Another approach is to use the difference of two squares. $$(u+v)(u-v) = u^2 - v^2$$ Let $$a=u+v, b=u-v$$ Then $$u=(a+b)/2, v=(a-b)/2$$ Eg, $$24 × 18 = (21+3)(21-3) = 21^2-3^2 = 441-9 = 432$$ This method works best when $a$ & $b$ have the same parity (both odd or both even).

PM 2Ring
  • 4,844
  • Thank you so much! It works perfectly and is exactly what I need! Up voted! Also, thank you for teaching some useful techniques. I would up vote it twice if I could. – Oriom Lyra Lisboa Jan 18 '22 at 19:09