Welcome

Notes on code, career, hiking, and travel.

The Josephus Problem

Introduction The Josephus Problem is a count-out game which is regarded as a theoretical problem in Computer Science or Mathematics. In this game, n people stand in a circle s is the starting number of people. s is holding a sword where s kills s+k-1’th people from his position and gives his sword to s+k’th people. Thus s+k becomes new s. Going in the same direction this procedure is repeated until one person is left. Remaining one person is marked as a winner. The gif below explains the procedure. Here n = 12, k = 3 & s = 1. ...

February 8, 2018 · 2 min · Adnatull Al Masum

How many regions do N lines divide a plane?

Explanations: N straight lines are drawn on a plane paper. Each line intersects with rest all lines. That means N’th line intersects N-1 lines. You can assume infinite number of lines can be drawn on that paper. You have to find total regions after N lines are drawn. An image is given below to understand the problem clearly. Solve Approach: From above picture we see that base case L[0] = 1 (here, L = Lines). Whenever a line is drawn it intersects all other lines. Lets try to find the pattern from the picture. L[1] = 2, When 1st line is drawn it intersects 0 line. So, L[1] = 1+L[0] = 1. When 2’th line is drawn it intersects 1 lines. So, L[2] = 2+L[1] . Because when intersecting 1 line it creates 2 new regions. You can see for yourself by drawing on text paper. Again, when 3rd line is drawn it intersects 2 lines and creates 3 new regions. Thus, L[3] = 3+L[2]. From observation we see that, when N’th line is drawn and it intersects N-1 lines and creates N new regions. The total regions become new regions + old regions. So, for N lines, L[n] = N+L[n-1]. To know answer of L[n] we need to know L[n-1], To know L[n-1] we need to know L[n-2]….and in ending stage L[0]. Thus, we can say that recurrent solution exists for this problem. ...

January 29, 2018 · 2 min · Adnatull Al Masum

The Tower of Hanoi Solution

Definition: The Tower of Hanoi problem is a puzzle which can be solved by mathematically and can be implemented in programming code as well. The tower is also called Tower of Brahma or Lucas’ Tower. In this, game there are three pegs and one one of them hold n disks. n disks are ordered from higher radius to lower radius from the bottom to top. ...

January 29, 2018 · 4 min · Adnatull Al Masum

UVA 11879 - Multiple of 17

11879 - Multiple of 17 Problem Link: https://uva.onlinejudge.org/external/118/11879.pdf Algorithm: This problem is quite easy. In this, there will be a number which is greater at most 100 digits. So, Its not possible to store it in “long long int” in c++. We will write a program which will take input a string. If the string contains only 0 then the program will be break, otherwise it will enter in another loop. Before entering I will declare two integer variables ‘reminder’ and ‘i’. I will initialize the reminder variable to 0; ...

January 29, 2018 · 2 min · Adnatull Al Masum

UVA 11876 - N + NOD (N)

Description: For a number N, first have to calculate N-1+divisors(N-1) & store it in array (e.g. arr[i]=arr[i-1]+divisors(arr[i-1])). Make a sequence from 1 to until arr[i] becomes greater than 1000000. Then you will be given two numbers A & B, and you will have to find the number of integers from the above sequence which lies within the range [A,B]. Hints = No critical case. Easy problem. Algorithm: Step 1: First find the prime numbers from 1 to 1000000 and store them in an array (was not sure about the range, thats why I calculated till 1000000) . Step 2: Calculate number of divisors for each numbers from 1 to 1000000 and store divisors in each array. (e.g. divisors of 6 are 1,2,3,6. Total 4 divisors. So divisor[6]=4. ) Step 3: To find the divisors of each number, I took help of prime numbers. There is a good tutorial in lightoj.com to find divisors using primes. Link is give below: http://lightoj.com/article_show.php?article=1003 ...

January 29, 2018 · 4 min · Adnatull Al Masum