## Spherical triangles of area Pi

Recently I stumbled upon this page and found out a very nice result:

If a spherical triangle has area then four copies of it can tile the sphere.

Here we are talking about triangles on the unit sphere whose edges are geodesics. The above result is a simple consequence of the following facts:

- If a spherical triangle has angles then its area is . Therefore if a triangle has area , then .
- If is a triangle of area and is obtained by symmetrizing with respect to the midpoint of on the sphere, then and are congruent triangles.
- Using angles and the fact that on the sphere similar triangles are congruent, we obtain that the triangles are all congruent.

Here are a few examples of such partitions:

## Mesh a hollow sphere

This is an interesting experiment I’ve done today and I’d like to share it. There are nice software out there which allow you to mesh regular surfaces, like the sphere, torus or other examples.

I needed something different: I wanted to mesh a sphere with a hole and an inner surface. This kind of surfaces may be useful for those who want to design objects for 3D printing. When using 3D printers, the cost is usually proportional to the volume of material used, since this also consumes impression time. If you manage to make a hollow object, the cost goes down immediately (as the resistance of the object…). However, to make a hole, you need to consider an inner parallel surface. I’ll not handle this here, since it’s more complicated. I’ll just mesh a hollow sphere.

I did this in Matlab using the nice library Distmesh, which is free and really easy to use. The whole difficulty was making a function whose zero level set is the hollow sphere. Recall that it is possible to find the union of two shapes using the minimum of two level set function and the intersection using the maximum. This is all that you need to understand what I did below. You can see the details in the Matlab code below.

function [p,t] = Hole_Spher_Mesh(mh) R = 0.5; r = 0.4; rh = 0.1; fh=@(p) sqrt(min(p(:,1).^2+p(:,2).^2,ones(size(p(:,1))))); fh=@(p) sqrt((p(:,1).^2+p(:,2).^2)); [p,t]=distmeshsurface(@(x)fd(x,R,r,rh),@huniform,mh,[-1.1,-1.1,-1.1;1.1,1.1,1.1]); points = p'; npt = prod(size(points))/3 clf patch('Faces',t,'Vertices',p,'FaceColor',[0,0.7,0.9],'EdgeColor','none','FaceAlpha',0.5); function res = fd(p,R,r,rh) res1 = sqrt(sum(p.^2,2))-R; res2 = (rh-sqrt(p(:,1).^2+p(:,2).^2)); res3 = p(:,3); res2 = max(-res2,res3); res4 = sqrt(sum(p.^2,2))-r; res2 = min(res2,res4); res = max(res1,-res2);

And here is the resulting surface for the parameter mh = 0.01 (if you put a higher precision computations will take longer).

## Romanian Masters in Mathematics contest – 2018

**Problem 1.** Let be a cyclic quadrilateral an let be a point on the side The diagonals meets the segments at The line through parallel to mmets the extension of the side beyond at The line through parallel to meets the extension of the side beyond at Prove that the circumcircles of the triangles and are tangent .

**Problem 2.** Determine whether there exist non-constant polynomials and with real coefficients satisfying

**Problem 3.** Ann and Bob play a game on the edges of an infinite square grid, playing in turns. Ann plays the first move. A move consists of orienting any edge that has not yet been given an orientation. Bob wins if at any point a cycle has been created. Does Bob have a winning strategy?

**Problem 4.** Let be positive integers such that and . Let be the set of values attained by as runs through the positive integers. Show that is the set of all positive divisors of some positive integer.

**Problem 5.** Let be positive integer and fix distinct points on a circle. Determine the number of ways to connect the points with arrows (oriented line segments) such that all of the following conditions hold:

- each of the points is a startpoint or endpoint of an arrow;
- no two arrows intersect;
- there are no two arrows and such that , , and appear in clockwise order around the circle (not necessarily consecutively).

**Problem 6.** Fix a circle , a line to tangent , and another circle disjoint from such that and lie on opposite sides of . The tangents to from a variable point on meet at and . Prove that, as varies over , the circumcircle of is tangent to two fixed circles.

Source: Art of Problem Solving forums

**Some quick ideas:** For Problem 1 just consider the intersection of the circle with the circle . You’ll notice immediately that this point belongs to the circle . Furthermore, there is a common tangent to the two circles at this point.

For Problem 2 we have . Eliminate the highest order term from both sides and look at the next one to get a contradiction.

Problem 4 becomes easy after noticing that if divides and then divides .

In Problem 5 try to prove that the choice of start points determines that of the endpoints. Then you have a simple combinatorial proof.

Problem 6 is interesting and official solutions use inversions. Those are quite nice, but it may be worthwhile to understand what happens in the non-inverted configuration.

I will come back to some of these problems in some future posts.

## Regular tetrahedron – computing various quantities in terms of the side-length

Sometimes one needs to find certain quantities related to the regular tetrahedron in , like volume, radius of the circumscribed sphere, radius of inscribed sphere, distance between opposite sides, etc. in terms of the side-length which we’ll note in the following with . In the past I needed to find the angle under which every side is seen when looking from the center of the regular tetrahedron.

Here’s a trick which can help you find rather easily everything you need related to the regular tetrahedron: *just embed it into a cube*. We can see rather easily that when drawing certain diagonals of the faces of a cube, like in the figure below, we can recover a regular tetrahedron. Now it becomes rather easy to solve all questions above. We note that the ratio between the side of the cube (denoted by ) and the side of the embedded tetrahedron (denoted by ) is : .

Here are a few ideas:

**1. Finding the volume of the tetrahedron in terms of its sides.**

The volume of the cube is . The volume of the tetrahedron can be obtained by cutting four corner pyramids with volumes (recall that volume of a pyramid is (area of base) (height) ). Therefore the volume of the regular tetrahedron is . Replacing we get that the volume of the tetrahedron is .

**2. Finding the circumradius .**

It is not difficult to see that the sphere passing through the vertices of the tetrahedron also passes through the vertices of the cube. Therefore its radius is a long diagonal of the cube divided by . This gives . Replacing we get that the circumradius is .

**3. Finding the inradius .**

Once we have the volume and the circumradius, finding the inradius is not that difficult, since the symmetry of the figure shows that , where is the distance from a vertex to the opposite face, also called the height. We can find the height from the formula of the volume (recalled above), and then find . Also note that since the center of the tetrahedron is also the centroid, we must have , so we have another quick finish solution.

However, let’s use the cube to do this. We can choose a system of coordinates putting the origin at the center of the cube (and tetrahedron). Put the cube so that its vertices have coordinates and suppose that the tetrahedron corresponds to the vertices , , , . All we need to do is to compute the distance from the origin to the plane . This is immediate if we know the equation of this plane. Fortunately, it is really easy to see that the coordinates of verify (if not, then note that the normal to is the vector and figure out the remaining translation constant). We know that if a plane is defined by the equation then the distance from to this plane is

Apply this to our problem and the distance from the origin to becomes . Replace and we get .

**4. Find distance between opposite sides.**

This is particularly easy with the cube. The distance between the opposite sides is exactly the distance between two parallel faces of the cube and that is .

**5. Find angle made by two rays connecting the center with vertices.**

Use the coordinate system introduced in **3.** and just compute the angle between vectors and , for example. If is the angle between and we get that

Therefore .

## Project Euler – Problem 264

Today I managed to solve problem 264 from Project Euler. This is my highest rating problem until now: 85%. You can click the link for the full text of the problem. The main idea is to find all triangles ABC with vertices having integer coordinates such that

- the circumcenter O of each of the triangles is the origin
- the orthocenter H (the intersection of the heights) is the point of coordinates (0,5)
- the perimeter is lower than a certain bound

I will not give detailed advice or codes. You can already find a program online for this problem (I won’t tell you where) and it can serve to verify the final code, before going for the final result. Anyway, following the hints below may help you get to a solution.

The initial idea has to do with a geometric relation linking the points A, B, C, O and H. Anyone who did some problems with vectors and triangles should have come across the needed relation at some time. If not, just search for important lines in triangles, especially the line passing through O and H (and another important point).

Once you find this vectorial relation, it is possible to translate it in coordinates. The fact that points A, B, C are on a circle centered in O shows that their coordinates satisfy an equation of the form , where is a positive integer, not necessarily a square… It is possible to enumerate all solutions to the following equation for fixed , simply by looping over and . This helps you find all lattice points on the circle of radius .

Once these lattice points are found one needs to check the orthocenter condition. The relations are pretty simple and in the end we have two conditions to check for the sum of the x and y coordinates. The testing procedure is a triple loop. We initially have a list of points on a circle, from the previous step. We loop over them such that we dont count triangles twice: i from 1 to m, j from i+1 to m, k from j+1 to m, etc. Once a suitable solution is found, we compute the perimeter using the classical distance formula between two points given in coordinates. Once the perimeter is computed we add it to the total.

Since the triple loop has cubic complexity, one could turn it in a double loop. Loop over pairs and construct the third point using the orthocenter condition. Then just check if the point is also on the circle. I didn’t manage to make this double loop without overcounting things, so I use it as a test: use double loops to check every family of points on a given circle. If you find something then use a triple loop to count it properly. It turns out that cases where the triple loop is needed are quite rare.

So now you have the ingredients to check if on a circle of given radius there are triangles with the desired properties. Now we just iterate over the square of the radius. The problem is to find the proper upper bound for this radius in order to get all the triangles with perimeter below the bound. It turns out that a simple observation can get you close to a near optimal bound. Since in the end the radii get really large and the size of the triangles gets really large, the segment OH becomes small, being of fixed length 5. When OH is very small, the triangle is almost equilateral. Just use the upper bound for the radius for an equilateral triangle of perimeter equal to the upper bound of 100000 given in the problem.

Using these ideas you can build a bruteforce algorithm. Plotting the values of the radii which give valid triangles will help you find that you only need to loop over a small part of the radii values. Factoring these values will help you reduce even more the search space. I managed to solve the problem in about 5 hours in Pari GP. This means things could be improved. However, having an algorithm which can give the result in “reasonable” time is fine by me.

I hope this will help you get towards the result.

## Balkan Mathematical Olympiad 2017 – Problems

**Problem 1.** Find all ordered pairs of positive integers such that:

**Problem 2.** Consider an acute-angled triangle with and let be its circumscribed circle. Let and be the tangents to the circle at points and , respectively, and let be their intersection. The straight line passing through the point and parallel to intersects in point . The straight line passing through the point and parallel to intersects in point . The circumcircle of the triangle intersects in , where is located between and . The circumcircle of the triangle intersects the line (or its extension) in , where is located between and .

Prove that , , and are concurrent.

**Problem 3.** Let denote the set of positive integers. Find all functions such that

for all

**Problem 4.** On a circular table sit students. First, each student has just one candy. At each step, each student chooses one of the following actions:

- (A) Gives a candy to the student sitting on his left or to the student sitting on his right.
- (B) Separates all its candies in two, possibly empty, sets and gives one set to the student sitting on his left and the other to the student sitting on his right.

At each step, students perform the actions they have chosen at the same time. A distribution of candy is called legitimate if it can occur after a finite number of steps. Find the number of legitimate distributions.

(Two distributions are different if there is a student who has a different number of candy in each of these distributions.)

Source: AoPS

## Project Euler Problem 285

Another quite nice problem from Project Euler is number 285. The result of the problem depends on the computation of a certain probability, which in turn is related to the computation of a certain area. Below is an illustration of the computation for k equal to 10.

To save you some time, here’s a picture of the case k=1 which I ignored and spent quite a lot of time debugging… Plus, it only affects the last three digits or so after the decimal point…

Here’s a Matlab code which can construct the pictures above and can compute the result for low cases. To solve the problem, you should compute explicitly all these areas.

function problem285(k) N = 100000; a = rand(1,N); b = rand(1,N); ind = find(abs(sqrt((k*a+1).^2+(k*b+1).^2)-k)<0.5); plot(a(ind),b(ind),'.'); axis equal M = k; pl = 1; for k=1:M if mod(k,100)==0 k end r1 = (k+0.5)/k; r2 = (k-0.5)/k; f1 = @(x) (x<=(-1/k+r1)).*(x>=(-1/k-r1)).*(sqrt(r1^2-(x+1/k).^2)-1/k).*(x>=0).*(x<=1); f1 = @(x) f1(x).*(f1(x)>=0); f2 = @(x) (x<=(-1/k+r2)).*(x>=(-1/k-r2)).*(sqrt(r2^2-(x+1/k).^2)-1/k).*(x>=0).*(x<=1); f2 = @(x) f2(x).*(f2(x)>=0); if k == pl thetas = linspace(0,pi/2,200); hold on plot(-1/k+r1*cos(thetas),-1/k+r1*sin(thetas),'r','LineWidth',2); plot(-1/k+r2*cos(thetas),-1/k+r2*sin(thetas),'r','LineWidth',2); plot([0 1 1 0 0],[0 0 1 1 0],'k','LineWidth',3); hold off axis off end A(k) = integral(@(x) f1(x)-f2(x),0,1); end xs = xlim; ys = ylim; w = 0.01; axis([xs(1)-w xs(2)+w ys(1)-w ys(2)+w]); sum((1:k).*A)