Computer Science- Algorithms
Please refer the pdf below.
// Assignment 1—100 points
Task 1: Computational Complexity–75 Running the executables 1. Your first task is to fill up this table ; (10 points) Problem 1 Problem 2
O(n3)
O(n2)
O(nlogn)
Function
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) is the best complexity possible for computing problem1 and problem2 ? of the problem. Explain your answer. (5)
Task 2: Christmas Lights—15 How many lights will be red at the end of N time steps ? Give a pseudocode of your algorithm and its complexity. 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 2. Given a function over positive integers, where F(0)=0; and F(n)=1+F(floor(n/2)). Then show that
// create_input.cpp
//
//
// Created by Bhowmick, Sanjukta on 1/20/20.
//
#include
#include
#include
#include
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
Due February 13th
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.
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/]
(what does the
code do?)
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
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
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
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
from1; i.e. F(1)=1; F(2)=1; F(3)=F(1)+F(2)=2; (5 points)
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)