Based on you answer to 7 rewrite newfib using loops instead


1. This problem uses numpy arrays. Numpy arrays support matrix like multiplication. For this problem you will only need to understand how to create numpy arrays and how they are multiplied with the numpy.dot function. The tutorial posted here, https://docs.scipy.org/doc/numpy-dev/user/ quickstart.html, contains all this information and much more. Given the list L1 of 2 x 2 numpy arrays in the assignment 3 file write two reduce operations, one which will multiply the matrices in order based on where they appear in the list and another which will multiply them in the reverse order. At no point should you reverse the list L1. As an example if L1 is denoted [A, B, C] the first reduce operation will compute ABC while the second reduce operation will compute CBA. Here A, B, C are square matrices of the same dimension. Remember to use np . dot for matrix multiplication.

2. (Given the directory assignment3txtfiles create a Counter whose keys are all the words which occur in the files and the values are the number of times the word appears in all of the files combined. For example if the directory had only three files and the occurred 5 times in the first file,4 times in the second file and once in the last file then the Counter entry would be the:10. To get the words you may simply apply split although this is not the best way to do this as discussed in class. The list L2 contains the paths to the files. Besides the creation of the Counter you may use only list comprehensions. Thus you solution will need to be a sequence of list comprehensions followed by the creation of the Counter.

3. The file partial_adurt.csv contains records which were derived from a previous census. The records are partial in that they contain only a subset of the fields. The file is in csv format which indicates that fields are comma separated. The final field will be referred to as the class label. Find all records which are identical except perhaps in the class label which in this case is 50K.

You will need to produce a dictionary. The keys should represent the at-tributes of the records, without the class label, in some way, and the values should be lists where the first entry is the number of times the attribute combination occurred, the second element is the number of records with those attributes such that the individual did not earn over 50K and the last element is the number of individuals with those attributes who did earn over 50K. Keep in mind that the lines in the file will be read in as strings.

4. In the binary search algorithm if we replace the condition a <= b by simply a < b the algorithm fails. Find a list L4 and a number num4 for which such an implementation gives the wrong answer. Store your answers in the file.

5. There are two implementations of the binary search algorithm given in the assignment file, one,bin_search_lecture, which was presented in lecture, and another which is a recursive implementation. The second is significantly slower as determined by the time print outs(uncomment and run to see). Why? Note it is not because the implementation is recursive. In the next problem you will give a recursive implementation which runs in time much closer to that presented in lecture. Store your answer inside the triply quoted string.

6. Give an efficient recursive implementation of the binary search algorithm. Use a similar time test to show that it performs much closer to the implementation given in class than the recursive implementation given in problem 5. You will need to determine the parameters that the function will receive. You may use a helper function if you like.

7. Using the function Fib and Fib_wrapper2 from the lectures detente at which value of n it takes Fib longer than a minute to calculate Fib (n). Does Fib_wrapper2 have this problem? What is the largest integer Fib_ wrapper2 can calculate in under a minute? Store your answers in the aRsignment3.py file.

8. Based on you answer to 7 rewrite NewFib using loops instead of recursion. Your implementation should be able to compute the millionth Fibonacci number in under a minute. Printing it out in Spyder is not a good idea. It is not necessary to actually print it. Storing it in a variable will suffice. Do not use any other parameters besides those already given.

Assignment - https://www.dropbox.com/s/pewqshz7oylv26w/Assignment.rar?dl=0.

Request for Solution File

Ask an Expert for Answer!!
Computer Engineering: Based on you answer to 7 rewrite newfib using loops instead
Reference No:- TGS01646895

Expected delivery within 24 Hours