Page 2: How Many Five-Letter Words Are There?
Unit 5, Lab 1, Page 2
TG and solutions need to be checked. –MF, 12/19/18
On this page, you will see how long it takes to run a linear search algorithm.
On Unit 2 Lab 3 Page 6: Solving a Word Puzzle, you built a block and used it with keep
to find words of a specific length in a word list. How long does a process like that take?
-
This project provides the variables 1,000 words, 10,000 words, and 100,000 words (each containing a list of words) and a copy of the
does () have () letters?
predicate. - How many five-letter words are in the 10,000 words list?
- Use the block provided in this project to determine how long it takes for the computer to answer that question.
The computation time
block takes any reporter (with its inputs filled in), computes the result but ignores it, and instead reports how long it took to do the computation (in milliseconds).
In this example, it took 27 milliseconds to compute the list of integers from 1 to 1000. (The report you see will depend on how fast your computer is and what other programs are running on it.)
You can look inside computation time
to see how it works: Right-click (or control-click on a mac) the block and select “edit…” from the menu that appears.
-
Click on the
computation time
expression you just used to answer the previous question three more times and note the range of answers. They’re not exactly the same because of other things that your computer is doing at the same time, so you should always take whatever result it gives you as approximate. - How long do you think it would take to count five-letter words if the list had 100,000 words?
-
Use
computation time
to check using the 100,000 words list.
Searching for all the five-letter words in a specific word list is an instance of a more general problem: searching for all the words of any particular length.
: Problem and Instance of a Problem
AAP-4.A.1
- A problem is a general description of a task that may (or may not) be solved algorithmically.
- An instance of a problem is one case of a problem, with specific inputs.
-
Suppose instead, we count the seven-letter words. Will this take…
- More time because seven letters is more than five letters?
- Less time because there are fewer seven-letter words than five-letter words?
- The same time because it’s not the word length that matters; it’s the size of the dictionary?
I was thrown off by the format of this exercise and rephrased it as a question. –MF, 5/31/20
Should this maybe be a quizlet? Not sure… –MF, 7/13/20
- Experiment to find out for sure.
The only way to answer a “How many words…” problem is to check every single word in the dictionary. So if you have ten times as many words in the dictionary, it takes ten times as long to check them all.
: Linear Search or Sequential Search
-
An algorithm takes linear time if multiplying the input size by ten multiplies the time required by ten.
- A linear search (or sequential search) algorithm checks each element of a list in order, a process which takes linear time.
AAP-2.O.5