” CSC1001程序 写作、 辅导Programming程序CSC1001: Introduction to Computer ScienceProgramming MethodologyAssignment 2 (Summer Term)Date of handout: 28 June, 2020 (Wednesday)Date of submission: 12 July, 2020 (Sunday)Weight: 15% of the overall assessmentAssignment description:This assignment will be worth 15% of the final grade.You should write your code for each question in a .py file (please name it using thequestion name, e.g. q1.py). Please pack all your .py files into a single .zip file, name itusing your student ID (e.g. if your student ID is 123456, then the file should be namedas 123456.zip), and then submit the .zip file via Moodle.Please also write a text file, which provide the details about how to run your code foreach question. The text file should be included in the .zip file as well.Please note that, the teaching assistant may ask you to explain the meaning of yourprogram, to ensure that the codes are indeed written by yourself. Please also notethat we may check whether your program is too similar to your fellow students codeusing Blackboard.This assignment is due at 5:00PM, 12 July (Sunday). For each day of late submission,you will lose 10% of your mark in this assignment. If you submit more than threedays later than the deadline, you will receive zero in this assignment.Question 1 (10% of this assignment):(Math: approximate the square root) There are several techniques for implementingthe sqrt function in the math module. One such technique is known as the Babylonianfunction. It approximates the square root of a number, n, by repeatedly performing acalculation using the following formula:CSC1001作业 写作、 辅导Programming作业nextGuess = (lastGuess + (n / lastGuess)) / 2When nextGuess and lastGuess are almost identical, nextGuess is the approximatedsquare root. The initial guess can be any positive value (e.g., 1). This value will be thestarting value for lastGuess. If the difference between nextGuess and lastGuess is lessthan a very small number, such as 0.0001, you can claim that nextGuess is theapproximated square root of n. If not, nextGuess becomes lastGuess and theapproximation process continues. Implement the following function that returns thesquare root of n.def sqrt(n):Question 2 (15% of this assignment):(Emirp) An emirp (prime spelled backward) is a nonpalindromic prime number whosereversal is also a prime. For example, both 17 and 71 are prime numbers, so 17 and 71are emirps. Write a program that displays the first 100 emirps. Display 10 numbers perline and align the numbers properly, as follows:Question 3 (15% of this assignment):(Financial: credit card number validation) Credit card numbers follow certain patterns:It must have between 13 and 16 digits, and the number must start with:■ 4 for Visa cards■ 5 for MasterCard credit cards■ 37 for American Express cards■ 6 for Discover cardsIn 1954, Hans Luhn of IBM proposed an algorithm for validating credit card numbers.The algorithm is useful to determine whether a card number is entered correctly orwhether a credit card is scanned correctly by a scanner. Credit card numbers aregenerated following this validity check, commonly known as the Luhn check or theMod 10 check, which can be described as follows (for illustration, consider the cardnumber 4388576018402626):1. Double every second digit from right to left. If doubling of a digit results in atwodigit number, add up the two digits to get a single-digit number.2. Now add all single-digit numbers from Step 1.4 + 4 + 8 + 2 + 3 + 1 + 7 + 8 = 373. Add all digits in the odd places from right to left in the card number.6 + 6 + 0 + 8 + 0 + 7 + 8 + 3 = 384. Sum the results from Steps 2 and 3.37 + 38 = 755. If the result from Step 4 is divisible by 10, the card number is valid; otherwise,it is invalid. For example, the number 4388576018402626 is invalid, but thenumber 4388576018410707 is valid.Write a Program that prompts the user to enter a credit card number as an integer.Display whether the number is valid or invalid. Design your program to use thefollowing functions:Question 4 (15% of this assignment):(Anagrams) Write a function that checks whether two words are anagrams. Two wordsare anagrams if they contain the same letters. For example, silent and listen areanagrams. The header of the function is:def isAnagram(s1, s2):(Hint: Obtain two lists for the two strings. Sort the lists and check if two lists areidentical.)Write a test program that prompts the user to enter two strings and, if they areanagrams, Displays is an anagram; otherwise, it displays is not an anagram.Question 5 (20% of this assignment):(Game: locker puzzle) A school has 100 lockers and 100 students. All lockers are closedon the first day of school. As the students enter, the first student, denoted S1, opensevery locker. Then the second student, S2, begins with the second locker, denoted L2,and closes every other locker. Student S3 begins with the third locker and changesevery third locker (closes it if it was open, and opens it if it was closed). Student S4begins with locker L4 and changes every fourth locker. Student S5 starts with L5 andchanges every Fifth locker, and so on, until student S100 changes L100.After all the Students have passed through the building and changed the lockers, whichlockers are open? Write a program to find your answer.(Hint: Use a list of 100 Boolean elements, each of which indicates whether a locker isopen (True) or closed (False). Initially, all lockers are closed.)Question 6 (25% of this assignment):(Game: Eight Queens) The classic Eight Queens puzzle is to place eight queens on achessboard such that no two queens can attack each other (i.e., no two queens are inthe same row, same column, or same diagonal). There are many possible solutions.Write a program that displays one such solution. A sample output is shown below:Note: you cannot just pre-define a solution and display it.Please use algorithm to display a possible solution.如有需要,请加QQ:99515681 或邮箱:99515681@qq.com
“
添加老师微信回复‘’官网 辅导‘’获取专业老师帮助,或点击联系老师1对1在线指导。