Computer Science- Algorithms
Please refer the pdf below.
Please refer the pdf below.
Please refer the pdf below.
Assignment 1—100 points Due February 13th
Task 1: Computational Complexity--75 In the folder assignment1_codes there are 6 executable codes. These codes represent two different problems, and 3 algorithms of different complexities each of these problems. Running the executables Use the code create_input.cpp to create the input file, input.txt When you run the codes, as in ./m1.out, it will automatically read in input.txt You can change the range and the number of entries by giving appropriate parameters to the executable of create_input.cpp This might be a helpful link [https://mycurvefit.com/]
1. Your first task is to fill up this table ; (10 points)
Problem 1 Problem 2
O(n3)
O(n2)
O(nlogn)
Function (what does the code do?)
2. Explain how you computed the complexity of each of the source codes. Provide graphs for each
executable to support your work (6*5=30 points) 3. Explain how you figured out what the codes do (2*10=20 points) 4. Given that we do not know anything about the inputs other than that they are a set of integers what
is the best complexity possible for computing problem1 and problem2 ? a. Give the pseudocode for each problem and the complexity (2*5=10 points) b. Give an example of an input of length more than 2 that will give the same results for either
of the problem. Explain your answer. (5)
Task 2: Christmas Lights—15 Consider that you have a set of N Christmas lights, which can turn red or green. The lights are numbered from 1 to N. Initially at time step 1 they are all red. The mechanism is set such that at time t, all lights whose id is divisible by t will change color (i.e. red to green, or green to red). For example, given 6 lights, numbered 1,2,3,4,5,6 at time step 1→ R R R R R R at time step 2→ R G R G R G at time step 3 → R G G G R R How many lights will be red at the end of N time steps ? Give a pseudocode of your algorithm and its complexity. If the algorithm complexity is O(n2) then you get 5 points If the algorithm complexity is O(n) then you get 10 points If the algorithm complexity is less than O(n) then you get 15 points Task 3: Proof by Induction--10
1. Given that F(n) is the nth Fibonacci number prove that F(n)>=(3/2)n-2. Consider the numbers starting from1; i.e. F(1)=1; F(2)=1; F(3)=F(1)+F(2)=2; (5 points)
2. Given a function over positive integers, where F(0)=0; and F(n)=1+F(floor(n/2)). Then show that F(n)=1+floor(log2(n)). Here floor(n/2)=(n-1)/2 if n is odd and n/2 if n is even. (5 points)
// // create_input.cpp // // // Created by Bhowmick, Sanjukta on 1/20/20. // #include <iostream> #include <fstream> #include <stdio.h> #include <time.h> using namespace std; int main(int argc, char *argv[]) { if ( argc < 3) { cout << "Two inputs needed: First the number of entries; Second the range from -r to r \n"; return 0; } int n=atoi(argv[1]); int r=atoi(argv[2]); ofstream myfile; int v; int q; myfile.open ("input.txt"); srand(time(NULL)); for (int i=0;i<n;i++) { /* generate number between 0 and n: */ v = rand() % (r+1) ; if(v==0){q=1;} else{ q=rand()%3; } if(q==0) myfile << -v <<"\n"; else myfile << v <<"\n"; } myfile.close(); return 0; }