This discussion board is a place to discuss our Daily Challenges and the math and science
related to those challenges. Explanations are more than just a solution — they should
explain the steps and thinking strategies that you used to obtain the solution. Comments
should further the discussion of math and science.
When posting on Brilliant:
Use the emojis to react to an explanation, whether you're congratulating a job well done , or just really confused .
Ask specific questions about the challenge or the steps in somebody's explanation. Well-posed questions can add a lot to the discussion, but posting "I don't understand!" doesn't help anyone.
Try to contribute something new to the discussion, whether it is an extension, generalization or other idea related to the challenge.
Stay on topic — we're all here to learn more about math and science, not to hear about your favorite get-rich-quick scheme or current world events.
Markdown
Appears as
*italics* or _italics_
italics
**bold** or __bold__
bold
- bulleted - list
bulleted
list
1. numbered 2. list
numbered
list
Note: you must add a full line of space before and after lists for them to show up correctly
# I indented these lines
# 4 spaces, and now they show
# up as a code block.
print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.
print "hello world"
Math
Appears as
Remember to wrap math in \( ... \) or \[ ... \] to ensure proper formatting.
2 \times 3
2×3
2^{34}
234
a_{i-1}
ai−1
\frac{2}{3}
32
\sqrt{2}
2
\sum_{i=1}^3
∑i=13
\sin \theta
sinθ
\boxed{123}
123
Comments
Since "self-referential means" referring to itself, a self-referential data structure is something that contains a reference to an object of the same type as itself.
To be more specific, a self-referential structure is a class, one of whose fields is a reference to a (different) copy of the same class.
A specific example of a self-referential class is the class that describes an element of a list. An element of a list not only has a value, but also should contain information about where it is in that list. This could be done by storing the index number of that element (is it the first, second, third,... element in the list?) as well as its value, but this proves to be less effective than having a data structure which "tells" each element what its predecessor in the list is, and what its successor in the list is. Here is some (Pascal) code which would define such a structure:
TListElement = class Record
Val: Integer;
Prior: TListElement;
Next: TListElement;
end;
Note that there are fields inside the TLIstElement class which are of type TListElement - that is why this is a self-referential data structure.
A list consisting of a single value 10 would be contained in a single variable a of type TListElement with
a.Val := 10; a.Prior := null; a.Next := null;
A list consisting of the number 23 followed by the number 25 would be contained in two variables a,b of type TListElement with
This structure enables you to find things like "the value of the term in the list three places earlier than the element with the variable name a" as
a.Prior.Prior.Prior.Val;
Of course, if the element a is the first, second or third element of the list, then this code will throw an exception, dealing with that sort of problem is what programming is about!
The first element in the list is the single element of the list whose "Prior" field is null. The last element in the list is the single element whose "Next" field is null.
Easy Math Editor
This discussion board is a place to discuss our Daily Challenges and the math and science related to those challenges. Explanations are more than just a solution — they should explain the steps and thinking strategies that you used to obtain the solution. Comments should further the discussion of math and science.
When posting on Brilliant:
*italics*
or_italics_
**bold**
or__bold__
paragraph 1
paragraph 2
[example link](https://brilliant.org)
> This is a quote
\(
...\)
or\[
...\]
to ensure proper formatting.2 \times 3
2^{34}
a_{i-1}
\frac{2}{3}
\sqrt{2}
\sum_{i=1}^3
\sin \theta
\boxed{123}
Comments
Since "self-referential means" referring to itself, a self-referential data structure is something that contains a reference to an object of the same type as itself.
To be more specific, a self-referential structure is a class, one of whose fields is a reference to a (different) copy of the same class.
A specific example of a self-referential class is the class that describes an element of a list. An element of a list not only has a value, but also should contain information about where it is in that list. This could be done by storing the index number of that element (is it the first, second, third,... element in the list?) as well as its value, but this proves to be less effective than having a data structure which "tells" each element what its predecessor in the list is, and what its successor in the list is. Here is some (Pascal) code which would define such a structure:
Note that there are fields inside the TLIstElement class which are of type TListElement - that is why this is a self-referential data structure.
A list consisting of a single value 10 would be contained in a single variable a of type TListElement with
A list consisting of the number 23 followed by the number 25 would be contained in two variables a,b of type TListElement with
and an element z of value 25 can be inserted between successive elements x and y in a list by defining:
This structure enables you to find things like "the value of the term in the list three places earlier than the element with the variable name a" as
Of course, if the element a is the first, second or third element of the list, then this code will throw an exception, dealing with that sort of problem is what programming is about!
The first element in the list is the single element of the list whose "Prior" field is null. The last element in the list is the single element whose "Next" field is null.
what is mean self referential structure?