Discrete maths problem - tracing an algorithm

In summary, the indexing in this algorithm is counting the number of 1's in the input. When the loop is finished, the indexing will have counted to 7.
  • #1
Sterling1
2
0
Hello,

I'm working on a discrete mathematics for computing paper and am stuck on what a symbol is trying to convey. Sorry if this seems like a stupid question (I feel stupid for not being able to work it out myself), I've just started this subject and am still getting used to it.

My question is what does the Xc mean in this algorithm (picture attached)? I understand that X1, X2 etc are the different variables, but does the Xc have something to do with the variable C := 1? If so, what does that symbol mean? I.e. what am I supposed to do with the variable in relation to C?

I hope this is clear enough and that once it's been explained to me I can crack on with the paper. Thank you very much in advance.

DM screen.PNG
 
Last edited by a moderator:
Physics news on Phys.org
  • #2
It's indexing. So you have a bunch of values, $x_1, x_2, \dots,x_n,$ right? As you're looping through the repeat section, you're updating $c$. When you start, you have $c=1,$ so that $x_c=x_1.$ The next time you come through the loop, $c$ has been incremented by one, which is what the $c:=c+1$ line does. That means this time through the loop, $c=2,$ making $x_c=x_2.$ So essentially, the incrementing of $c$ allows you to examine each of the $x_1, x_2,\dots,x_n$ values one-by-one. Does that help?
 
  • #3
Ackbach said:
It's indexing. So you have a bunch of values, $x_1, x_2, \dots,x_n,$ right? As you're looping through the repeat section, you're updating $c$. When you start, you have $c=1,$ so that $x_c=x_1.$ The next time you come through the loop, $c$ has been incremented by one, which is what the $c:=c+1$ line does. That means this time through the loop, $c=2,$ making $x_c=x_2.$ So essentially, the incrementing of $c$ allows you to examine each of the $x_1, x_2,\dots,x_n$ values one-by-one. Does that help?

Ah right, so essentially the i variable is counting how many 1's are in the input? I.e. in this algorithm i would equal 4 by the end? And the loop stops when C = 7? If I'm correct in that thinking then I've understood your explanation, and if I'm wrong then clearly I've missed something.

Thank you very much for your help, it makes sense to me (I think) now. It seems stupid to have not understood such a basic concept as indexing. Thank you.
 
  • #4
Sterling said:
Ah right, so essentially the i variable is counting how many 1's are in the input?

Yep!

Sterling said:
I.e. in this algorithm i would equal 4 by the end?

Yes, I would agree.

Sterling said:
And the loop stops when C = 7?

Also correct.

Sterling said:
If I'm correct in that thinking then I've understood your explanation, and if I'm wrong then clearly I've missed something.

Thank you very much for your help, it makes sense to me (I think) now. It seems stupid to have not understood such a basic concept as indexing. Thank you.

You're very welcome!
 

FAQ: Discrete maths problem - tracing an algorithm

What is discrete math?

Discrete math is a branch of mathematics that deals with discrete objects and structures, rather than continuous ones. It involves the study of mathematical structures such as graphs, trees, and networks, and their applications in computer science, engineering, and other fields.

What is an algorithm?

An algorithm is a step-by-step procedure or set of rules used to solve a problem or perform a task. It is a fundamental concept in computer science and is used in various fields, including mathematics, engineering, and economics.

How do you trace an algorithm?

To trace an algorithm, you follow each step of the algorithm and record the values of the variables involved at each step. This helps you understand how the algorithm works and identify any errors or inefficiencies.

What is the importance of tracing an algorithm?

Tracing an algorithm allows you to check for correctness and efficiency, as well as understand the logic behind it. It also helps identify any errors or bugs in the algorithm, which can then be fixed to improve its performance.

What are some common techniques used in tracing an algorithm?

Some common techniques used in tracing an algorithm include hand tracing, which involves manually following each step of the algorithm, and using a debugger, which allows you to track the values of variables as the algorithm runs. Other techniques include using flowcharts or pseudocode to visually represent the algorithm and identify any errors.

Similar threads

Replies
4
Views
2K
Replies
6
Views
1K
Replies
4
Views
9K
Replies
1
Views
1K
Replies
1
Views
1K
Replies
12
Views
1K
Replies
4
Views
1K
Back
Top