Counting Problems; and Recursion! CSCI 2824, Fall 2012!
|
|
- Buck Barber
- 6 years ago
- Views:
Transcription
1 Counting Problems; and Recursion! CSCI 2824, Fall 2012!!!
2 Assignments To read this week: Sections (Ensley/Crawley Problem Set 3 has been sent out today. Challenge problem today!!!!!
3 So, to recap Order matters, repetition allowed ( password problem) Order matters, repetition not allowed ( traveling salesman problem) Order doesn t matter, repetition not allowed ( committee problem) Order doesn t matter, repetition allowed ( mixed nuts problem)
4 Practice Problems Problem 1: How many potential Mastermind codes are there (6 colors of pegs) with 2 or 3 pegs the same color? Problem 2: How many poker hands are there with one pair? Problem 3: Suppose you have 10 disks all of the same size (indistinguishable). How many ways are there of placing all these disks on the three Tower of Hanoi pegs?
5 Problem 1 No. of 2-of-a-kind No. of 3-of-a-kind (C(4,2) * 6 * 5 * 4) + (C(4,3) * 6 * 5)
6 Problem 1 (alternative) All the ways of getting 4 of a kind: 6 All the ways of getting 4 distinct: 6 * 5 * 4 * 3 All the ways of getting 2 of a kind in the form 2+2 (as opposed to 3+1): (1/2) * C(4,2) * 6 * 5 Now subtract the sum of all these from 6 4
7 Problem 2 (13 * C(4, 2)) * (C(12,3) * 4 * 4 * 4)
8 Problem 3 This is a mixed nuts problem (think of the pegs as meaning almonds, Brazils, cashews, and we have to fill a bag of 10 items): C(10+2, 2) = C(12, 2) = 66
9 Another type of problem How many numbers, from 1 to 100, are not multiples of 2, 3, or 5?
10 We could start with a simpler problem (as Polya suggests) How many numbers between 1 and 100 are neither multiples of 2 or 3? (2 or 5? 3 or 5?)
11 What we re after here is a set union The union of all multiples of 2, multiples of 3, and multiples of 5 chosen from 1 through 100. The way to do this is to (a) take the sum of the sizes of all sets, (b) subtract the sum of all 2-set intersections, then (c) add back the size of the 3-set intersection
12 Inclusion/Exclusion The general idea here is that, to get the size of the union of n sets, you need to calculate: Add C(n,1) sets (that is, all the original sets) Subtract C(n,2) 2-set intersections Add C(n,3) 3-set intersections Subtract C(n,4) 4-set intersections Add (-1) n-1 C(n,n) n-set intersections
13 Suppose an item is in the intersection of m sets. How many times will it be added in? C(m, 1) C(m, 2) + C(m, 3) +. (-1) m-1 C(m,m) Recall from our discussion of Pascal s triangle: 0 = Σ 0<=k<=m C(m,k) x k So we re adding in our item exactly 1 (that is, C(m,0) ) times, since C(m,0) is the only term missing from that top line!
14 A Practice Problem How many poker hands have at least one card of every suit?
15 Challenge Problem No. 3 (due Thursday Nov. 1) The Secret Santa problem: Suppose we have 8 children in a classroom, and we want to assign each of them a Secret Santa. Naturally, we don t want to assign any kid to be his or her own Santa. How many distinct legal arrangements are there? And now that you ve solved the problem for 8, write an expression that solves the problem for n in general. As n gets large, what is the probability that any Secret Santa arrangement will be a legal one?
16 RECURSION: the basic definition In a computer program, a procedure or function is recursive if its definition involves a call to itself. There are slightly more broad definitions that still make sense: for instance, a set of functions or procedures that mutually call each other can be said to be recursive as well. Or we might say of a definition of some sort of object that the definition itself has some element of recursion.
17 A 0-level cat is a cat wearing a hat. A n-level cat is a cat tipping its hat to reveal an n-1 level cat.
18 A well-known recursive definition in mathematics Factorial (n) IF (n = 0) THEN 1 ELSE ( n * Factorial(n -1) )
19 Another recursive definition: here, assume n1 and n2 are nonnegative integers Add (n1 n2) IF (= n2 0) THEN n1 ELSE Add (Increment n1) (Decrement n2)
20
21
22
23
24 Our earlier recursive solution to the Tower of Hanoi puzzle: To solve the puzzle with 1 disc, just move the disc directly. To solve the n-disc puzzle with pegs labelled SOURCE, SPARE, TARGET: Solve the (n-1) disc puzzle with pegs relabelled SOURCE TARGET SPARE Move the largest (bottom) disc from SOURCE to TARGET Solve the (n-1) disc puzzle with pegs relabelled SPARE SOURCE TARGET
25
26
Recursive Sequences. Lecture 24 Section 5.6. Robb T. Koether. Hampden-Sydney College. Wed, Feb 27, 2013
Recursive Sequences Lecture 24 Section 5.6 Robb T. Koether Hampden-Sydney College Wed, Feb 27, 2013 Robb T. Koether (Hampden-Sydney College) Recursive Sequences Wed, Feb 27, 2013 1 / 21 1 Recursive Sequences
More informationRecursive Sequences. Lecture 24 Section 5.6. Robb T. Koether. Hampden-Sydney College. Wed, Feb 26, 2014
Recursive Sequences Lecture 24 Section 5.6 Robb T. Koether Hampden-Sydney College Wed, Feb 26, 2014 Robb T. Koether (Hampden-Sydney College) Recursive Sequences Wed, Feb 26, 2014 1 / 26 1 Recursive Sequences
More informationRecursive Definitions
Recursion Objectives Explain the underlying concepts of recursion Examine recursive methods and unravel their processing steps Explain when recursion should and should not be used Demonstrate the use of
More informationAPCS-AB: Java. Recursion in Java December 12, week14 1
APCS-AB: Java Recursion in Java December 12, 2005 week14 1 Check point Double Linked List - extra project grade Must turn in today MBCS - Chapter 1 Installation Exercises Analysis Questions week14 2 Scheme
More informationHanoi, Counting and Sierpinski s triangle Infinite complexity in finite area
Hanoi, Counting and Sierpinski s triangle Infinite complexity in finite area Math Circle December 5, 2017 1. Per usual we are going to be watching a video today, but we aren t going to be watching it right
More informationCSE 2123 Recursion. Jeremy Morris
CSE 2123 Recursion Jeremy Morris 1 Past Few Weeks For the past few weeks we have been focusing on data structures Classes & Object-oriented programming Collections Lists, Sets, Maps, etc. Now we turn our
More informationCS1 Lecture 15 Feb. 19, 2018
CS1 Lecture 15 Feb. 19, 2018 HW4 due Wed. 2/21, 5pm (changed from original 9am so people in Wed. disc. sections can get help) Q2: find *any* solution. Don t try to find the best/optimal solution or all
More information8/5/10 TODAY'S OUTLINE. Recursion COMP 10 EXPLORING COMPUTER SCIENCE. Revisit search and sorting using recursion. Recursion WHAT DOES THIS CODE DO?
8/5/10 TODAY'S OUTLINE Recursion COMP 10 EXPLORING COMPUTER SCIENCE Revisit search and sorting using recursion Binary search Merge sort Lecture 8 Recursion WHAT DOES THIS CODE DO? A function is recursive
More informationPacket #6: Counting & Graph Theory. Applied Discrete Mathematics
Packet #6: Counting & Graph Theory Applied Discrete Mathematics Table of Contents Counting Pages 1-8 Graph Theory Pages 9-16 Exam Study Sheet Page 17 Counting Information I. Product Rule: A B C = A * B
More informationProgramming and Data Structure
Programming and Data Structure Dr. P.P.Chakraborty Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture # 09 Problem Decomposition by Recursion - II We will
More informationRecursion is a fundamental programming technique that can provide an elegant solution certain kinds of problems. COMP Week 8 & 9 1
Recursion is a fundamental programming technique that can provide an elegant solution certain kinds of problems COMP 202 - Week 8 & 9 1 A recursive definition is one which uses the word or concept being
More informationChapter 15: Recursion
Chapter 15: Recursion Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 15 discusses the following main topics: Introduction to Recursion
More informationSummary. csci 210: Data Structures Recursion. Recursive algorithms. Recursion. Topics READING:
Summary csci 210: Data Structures Recursion Topics recursion overview simple eamples Sierpinski gasket counting blobs in a grid Hanoi towers READING: LC tetbook chapter 7 Recursion Recursive algorithms
More informationcsci 210: Data Structures Recursion
csci 210: Data Structures Recursion Summary Topics recursion overview simple eamples Sierpinski gasket counting blobs in a grid Hanoi towers READING: LC tetbook chapter 7 Recursion A method of defining
More informationCOUNTING AND PROBABILITY
CHAPTER 9 COUNTING AND PROBABILITY Copyright Cengage Learning. All rights reserved. SECTION 9.3 Counting Elements of Disjoint Sets: The Addition Rule Copyright Cengage Learning. All rights reserved. Counting
More informationAnalysis of Algorithm. Chapter 2
Analysis of Algorithm Chapter 2 Outline Efficiency of algorithm Apriori of analysis Asymptotic notation The complexity of algorithm using Big-O notation Polynomial vs Exponential algorithm Average, best
More informationRecursion. Chapter 5
Recursion Chapter 5 Chapter Objectives To understand how to think recursively To learn how to trace a recursive method To learn how to write recursive algorithms and methods for searching arrays To learn
More informationrecursive algorithms 1
COMP 250 Lecture 11 recursive algorithms 1 Oct. 2, 2017 1 Example 1: Factorial (iterative)! = 1 2 3 1 factorial( n ){ // assume n >= 1 result = 1 for (k = 2; k
More information11/2/2017 RECURSION. Chapter 5. Recursive Thinking. Section 5.1
RECURSION Chapter 5 Recursive Thinking Section 5.1 1 Recursive Thinking Recursion is a problem-solving approach that can be used to generate simple solutions to certain kinds of problems that are difficult
More informationCmpSci 187: Programming with Data Structures Spring 2015
CmpSci 187: Programming with Data Structures Spring 2015 Lecture #9 John Ridgway February 26, 2015 1 Recursive Definitions, Algorithms, and Programs Recursion in General In mathematics and computer science
More informationRecursive Thinking. Chapter 8: Recursion. Recursive Definitions. Recursion. Java Software Solutions for AP* Computer Science A 2nd Edition
Chapter 8: Recursion Presentation slides for Recursive Thinking Recursion is a programming technique in which a method can call itself to solve a problem Java Software Solutions for AP* Computer Science
More informationSolving problems by recursion
Solving problems by recursion How can you solve a complex problem? Devise a complex solution Break the complex problem into simpler problems Sometimes, the simpler problem is similar to (but smaller than)
More informationLecture 6: Combinatorics Steven Skiena. skiena
Lecture 6: Combinatorics Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Learning to Count Combinatorics problems are
More informationRecursion. Chapter 7. Copyright 2012 by Pearson Education, Inc. All rights reserved
Recursion Chapter 7 Contents What Is Recursion? Tracing a Recursive Method Recursive Methods That Return a Value Recursively Processing an Array Recursively Processing a Linked Chain The Time Efficiency
More informationdef F a c t o r i a l ( n ) : i f n == 1 : return 1 else : return n F a c t o r i a l ( n 1) def main ( ) : print ( F a c t o r i a l ( 4 ) )
116 4.5 Recursion One of the most powerful programming techniques involves a function calling itself; this is called recursion. It is not immediately obvious that this is useful; take that on faith for
More informationProgramming with Recursion. What Is Recursion?
Chapter 7 Programming with Recursion Fall 2017 Yanjun Li CS2200 1 What Is Recursion? How is recursion like a set of Russian dolls? Fall 2017 Yanjun Li CS2200 2 What Is Recursion? Recursive call A method
More informationSECTION 5.1. Sequences
SECTION 5.1 Sequences Sequences Problem: count number of ancestors one has 2 parents, 4 grandparents, 8 greatgrandparents,, written in a row as 2, 4, 8, 16, 32, 64, 128, To look for pattern of the numbers,
More information6.001 Notes: Section 4.1
6.001 Notes: Section 4.1 Slide 4.1.1 In this lecture, we are going to take a careful look at the kinds of procedures we can build. We will first go back to look very carefully at the substitution model,
More informationCSE548, AMS542: Analysis of Algorithms, Fall 2012 Date: October 16. In-Class Midterm. ( 11:35 AM 12:50 PM : 75 Minutes )
CSE548, AMS542: Analysis of Algorithms, Fall 2012 Date: October 16 In-Class Midterm ( 11:35 AM 12:50 PM : 75 Minutes ) This exam will account for either 15% or 30% of your overall grade depending on your
More informationResources matter. Orders of Growth of Processes. R(n)= (n 2 ) Orders of growth of processes. Partial trace for (ifact 4) Partial trace for (fact 4)
Orders of Growth of Processes Today s topics Resources used by a program to solve a problem of size n Time Space Define order of growth Visualizing resources utilization using our model of evaluation Relating
More informationCSE 101- Winter 18 Discussion Section Week 8
CSE 101- Winter 18 Discussion Section Week 8 Topics for today Reductions Max Flow and LP Number Puzzle Circulation problem Maximum bipartite matching Bob diet plan and pill salesman USB Problem from PA3
More informationEE 368. Weeks 4 (Notes)
EE 368 Weeks 4 (Notes) 1 Read Chapter 3 Recursion and Backtracking Recursion - Recursive Definition - Some Examples - Pros and Cons A Class of Recursive Algorithms (steps or mechanics about performing
More informationLecture 24 Tao Wang 1
Lecture 24 Tao Wang 1 Objectives Introduction of recursion How recursion works How recursion ends Infinite recursion Recursion vs. Iteration Recursion that Returns a Value Edition 2 Introduction If we
More informationCS200: Recursion and induction (recap from cs161)
CS200: Recursion and induction (recap from cs161) Prichard Ch. 6.1 & 6.3 1 2 Backtracking n Problem solving technique that involves moves: guesses at a solution. n Depth First Search: in case of failure
More informationReading 8 : Recursion
CS/Math 40: Introduction to Discrete Mathematics Fall 015 Instructors: Beck Hasti, Gautam Prakriya Reading 8 : Recursion 8.1 Recursion Recursion in computer science and mathematics refers to the idea of
More informationRecursion. Jordi Cortadella Department of Computer Science
Recursion Jordi Cortadella Department of Computer Science Recursion Introduction to Programming Dept. CS, UPC 2 Principle: Reduce a complex problem into a simpler instance of the same problem Recursion
More informationCMPSCI 187: Programming With Data Structures. Lecture #15: Thinking Recursively David Mix Barrington 10 October 2012
CMPSCI 187: Programming With Data Structures Lecture #15: Thinking Recursively David Mix Barrington 10 October 2012 Thinking Recursively Recursive Definitions, Algorithms, and Programs Computing Factorials
More informationUNIT 5A Recursion: Basics. Recursion
UNIT 5A Recursion: Basics 1 Recursion A recursive operation is an operation that is defined in terms of itself. Sierpinski's Gasket http://fusionanomaly.net/recursion.jpg 2 1 Recursive Definitions Every
More informationSolutions to Problem Set 1
CSCI-GA.3520-001 Honors Analysis of Algorithms Solutions to Problem Set 1 Problem 1 An O(n) algorithm that finds the kth integer in an array a = (a 1,..., a n ) of n distinct integers. Basic Idea Using
More informationChapter 10: Recursive Problem Solving
2400 COMPUTER PROGRAMMING FOR INTERNATIONAL ENGINEERS Chapter 0: Recursive Problem Solving Objectives Students should Be able to explain the concept of recursive definition Be able to use recursion in
More informationIntroduction. CS243: Discrete Structures. Combinatorics. Product Rule. Basic Counting Rules. Example 2. Example 1
Introduction CS243: Discrete Structures Combinatorics Işıl Dillig Consider a set of objects and a property of interest Often, we want to know how many of these objects have the desired property Example:
More informationBig picture. Definitions. Internal sorting. Exchange sorts. Insertion sort Bubble sort Selection sort Comparison. Comp Sci 1575 Data Structures
Internal sorting Comp Sci 1575 Data Structures Admin notes Advising appointments will eclipse office hours this week, so no guarantees about availability during normal times. With 130 appointments at 15
More informationUNIT 5A Recursion: Basics. Recursion
UNIT 5A Recursion: Basics 1 Recursion A recursive function is one that calls itself. Infinite loop? Not necessarily. 2 1 Recursive Definitions Every recursive definition includes two parts: Base case (non
More informationEASY
Downloaded from: justpaste.it/hsfm ------------------------------- EASY ------------------------------- NUMBERS Even or Odd Write a program that accepts a number and returns whether the number is equal
More informationRecursive Algorithms II
Recursive Algorithms II Margaret M. Fleck 23 October 2009 This lecture wraps up our discussion of algorithm analysis (section 4.4 and 7.1 of Rosen). 1 Recap Last lecture, we started talking about mergesort,
More information12/30/2013 S. NALINI,AP/CSE
12/30/2013 S. NALINI,AP/CSE 1 UNIT I ITERATIVE AND RECURSIVE ALGORITHMS Iterative Algorithms: Measures of Progress and Loop Invariants-Paradigm Shift: Sequence of Actions versus Sequence of Assertions-
More informationRecursive Algorithms. CS 180 Sunil Prabhakar Department of Computer Science Purdue University
Recursive Algorithms CS 180 Sunil Prabhakar Department of Computer Science Purdue University Recursive Algorithms Within a given method, we are allowed to call other accessible methods. It is also possible
More informationRandomized Algorithms: Element Distinctness
Randomized Algorithms: Element Distinctness CSE21 Winter 2017, Day 24 (B00), Day 16-17 (A00) March 13, 2017 http://vlsicad.ucsd.edu/courses/cse21-w17 Element Distinctness: WHAT Given list of positive integers
More informationCombinatorics: The Fine Art of Counting
Week Three Solutions Note: in these notes multiplication is assumed to take precedence over division, so 4!/2!2! = 4!/(2!*2!), and binomial coefficients are written horizontally: (4 2) denotes 4 choose
More informationLecture Notes 4 More C++ and recursion CSS 501 Data Structures and Object-Oriented Programming Professor Clark F. Olson
Lecture Notes 4 More C++ and recursion CSS 501 Data Structures and Object-Oriented Programming Professor Clark F. Olson Reading for this lecture: Carrano, Chapter 2 Copy constructor, destructor, operator=
More information/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17
01.433/33 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/2/1.1 Introduction In this lecture we ll talk about a useful abstraction, priority queues, which are
More informationTest Bank Ver. 5.0: Data Abstraction and Problem Solving with C++: Walls and Mirrors, 5 th edition, Frank M. Carrano
Chapter 2 Recursion: The Mirrors Multiple Choice Questions 1. In a recursive solution, the terminates the recursive processing. a) local environment b) pivot item c) base case d) recurrence relation 2.
More informationCS302 Data Structures using C++
CS302 Data Structures using C++ Study Guide for the Midterm Exam Fall 2018 This document serves to help you prepare towards the midterm exam for the Fall 2018 semester. 1. What topics are to be covered
More informationUCSD CSE 21, Spring 2014 [Section B00] Mathematics for Algorithm and System Analysis
UCSD CSE 21, Spring 2014 [Section B00] Mathematics for Algorithm and System Analysis Lecture 11 Class URL: http://vlsicad.ucsd.edu/courses/cse21-s14/ Lecture 11 Notes Goals for this week (Tuesday) Linearity
More informationRecursion. CSCI 112: Programming in C
Recursion CSCI 112: Programming in C 1 What is recursion? Recursion looks at a large problem as a bunch of smaller versions of the same problem. 2 2 What is recursion? Recursion looks at a large problem
More informationAlgorithm Design Techniques. Hwansoo Han
Algorithm Design Techniques Hwansoo Han Algorithm Design General techniques to yield effective algorithms Divide-and-Conquer Dynamic programming Greedy techniques Backtracking Local search 2 Divide-and-Conquer
More informationDr. Amotz Bar-Noy s Compendium of Algorithms Problems. Problems, Hints, and Solutions
Dr. Amotz Bar-Noy s Compendium of Algorithms Problems Problems, Hints, and Solutions Chapter 1 Searching and Sorting Problems 1 1.1 Array with One Missing 1.1.1 Problem Let A = A[1],..., A[n] be an array
More informationData Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 20 Priority Queues Today we are going to look at the priority
More informationTaking Stock. IE170: Algorithms in Systems Engineering: Lecture 5. The Towers of Hanoi. Divide and Conquer
Taking Stock IE170: Algorithms in Systems Engineering: Lecture 5 Jeff Linderoth Department of Industrial and Systems Engineering Lehigh University January 24, 2007 Last Time In-Place, Out-of-Place Count
More informationIntermediate Math Circles Fall 2018 Patterns & Counting
Intermediate Math Circles Fall 2018 Patterns & Counting Michael Miniou The Centre for Education in Mathematics and Computing Faculty of Mathematics University of Waterloo December 5, 2018 Michael Miniou
More informationRecursion. COMS W1007 Introduction to Computer Science. Christopher Conway 26 June 2003
Recursion COMS W1007 Introduction to Computer Science Christopher Conway 26 June 2003 The Fibonacci Sequence The Fibonacci numbers are: 1, 1, 2, 3, 5, 8, 13, 21, 34,... We can calculate the nth Fibonacci
More informationMore Counting Sort and Sorting-by-Key
Tony Gong ITEE University of Queensland In the lectures last week we looked at the counting sort algorithm for sorting a set of integers that come from some specific domain, i.e. every integer is in some
More informationSolutions to Problem 1 of Homework 3 (10 (+6) Points)
Solutions to Problem 1 of Homework 3 (10 (+6) Points) Sometimes, computing extra information can lead to more efficient divide-and-conquer algorithms. As an example, we will improve on the solution to
More informationSolutions to In Class Problems Week 9, Fri.
Massachusetts Institute of Technology 6.042J/18.062J, Fall 05: Mathematics for Computer Science November 4 Prof. Albert R. Meyer and Prof. Ronitt Rubinfeld revised November 4, 2005, 1254 minutes Solutions
More informationUnit-5 Dynamic Programming 2016
5 Dynamic programming Overview, Applications - shortest path in graph, matrix multiplication, travelling salesman problem, Fibonacci Series. 20% 12 Origin: Richard Bellman, 1957 Programming referred to
More informationGoals: Define computational problem instance of a computational problem algorithm pseudocode Briefly discuss recursive procedure big-o notation
Goals: Define computational problem instance of a computational problem algorithm pseudocode Briefly discuss recursive procedure big-o notation algorithms 1 p.1/19 Informal Definitions: A computational
More informationMath 6 Midterm Review Solutions
Math Midterm Review Solutions 1. a statement b not a statement truth or falsity depends on the reference for the pronoun she c statement d not a statement truth or falsity depends on the reference for
More informationCSC 148 Lecture 3. Dynamic Typing, Scoping, and Namespaces. Recursion
CSC 148 Lecture 3 Dynamic Typing, Scoping, and Namespaces Recursion Announcements Python Ramp Up Session Monday June 1st, 1 5pm. BA3195 This will be a more detailed introduction to the Python language
More informationCSC-140 Assignment 4
CSC-140 Assignment 4 Please do not Google a solution to these problem, cause that won t teach you anything about programming - the only way to get good at it, and understand it, is to do it! 1 Introduction
More informationCOMP 250 Fall Recursive algorithms 1 Oct. 2, 2017
Recursion Recursion is a technique for solving problems in which the solution to the problem of size n is based on solutions to versions of the problem of size smaller than n. Many problems can be solved
More informationCombinatorics: The Fine Art of Counting
This week s menu is divided into two sections. The first part is a set of appetizer problems which can all be solved using a straight-forward application of concepts covered in class. The second part consists
More informationCS 171: Introduction to Computer Science II. Quicksort
CS 171: Introduction to Computer Science II Quicksort Roadmap MergeSort Recursive Algorithm (top-down) Practical Improvements Non-recursive algorithm (bottom-up) Analysis QuickSort Algorithm Analysis Practical
More informationIntroduction to Counting, Some Basic Principles
Introduction to Counting, Some Basic Principles These are the class notes for week. Before we begin, let me just say something about the structure of the class notes. I wrote up all of these class notes
More informationCS1 Recitation. Week 2
CS1 Recitation Week 2 Sum of Squares Write a function that takes an integer n n must be at least 0 Function returns the sum of the square of each value between 0 and n, inclusive Code: (define (square
More informationTwo Approaches to Algorithms An Example (1) Iteration (2) Recursion
2. Recursion Algorithm Two Approaches to Algorithms (1) Iteration It exploits while-loop, for-loop, repeat-until etc. Classical, conventional, and general approach (2) Recursion Self-function call It exploits
More informationMC302 GRAPH THEORY SOLUTIONS TO HOMEWORK #1 9/19/13 68 points + 6 extra credit points
MC02 GRAPH THEORY SOLUTIONS TO HOMEWORK #1 9/19/1 68 points + 6 extra credit points 1. [CH] p. 1, #1... a. In each case, for the two graphs you say are isomorphic, justify it by labeling their vertices
More informationSubset sum problem and dynamic programming
Lecture Notes: Dynamic programming We will discuss the subset sum problem (introduced last time), and introduce the main idea of dynamic programming. We illustrate it further using a variant of the so-called
More information1 Recursion. 2 Recursive Algorithms. 2.1 Example: The Dictionary Search Problem. CSci 235 Software Design and Analysis II Introduction to Recursion
1 Recursion Recursion is a powerful tool for solving certain kinds of problems. Recursion breaks a problem into smaller problems that are identical to the original, in such a way that solving the smaller
More informationDiscrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Discussion 8A Solutions
CS 70 Discrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Discussion 8A Solutions 1. Sock etiquette In your second week of Charm School you learn that you should only wear matching
More informationCMSC 132: Object-Oriented Programming II. Recursive Algorithms. Department of Computer Science University of Maryland, College Park
CMSC 132: Object-Oriented Programming II Recursive Algorithms Department of Computer Science University of Maryland, College Park Recursion Recursion is a strategy for solving problems A procedure that
More informationFractions and Decimals
Chapter Fractions and Decimals FRACTION: A fraction is a number representing a part of a whole. The whole may be a single object or a group of objects. 5 is a fraction with numerator and denominator 5.
More information1.2 Adding Integers. Contents: Numbers on the Number Lines Adding Signed Numbers on the Number Line
1.2 Adding Integers Contents: Numbers on the Number Lines Adding Signed Numbers on the Number Line Finding Sums Mentally The Commutative Property Finding Sums using And Patterns and Rules of Adding Signed
More informationRecursion Chapter 17. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013
Recursion Chapter 17 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Scope Introduction to Recursion: The concept of recursion Recursive methods Infinite recursion When to use (and
More informationRandomized Algorithms, Hash Functions
Randomized Algorithms, Hash Functions Lecture A Tiefenbruck MWF 9-9:50am Center 212 Lecture B Jones MWF 2-2:50pm Center 214 Lecture C Tiefenbruck MWF 11-11:50am Center 212 http://cseweb.ucsd.edu/classes/wi16/cse21-abc/
More informationRecursion. Let s start by looking at some problems that are nicely solved using recursion. First, let s look at generating The Fibonacci series.
Recursion The programs we have discussed so far have been primarily iterative and procedural. Code calls other methods in a hierarchical manner. For some problems, it is very useful to have the methods
More informationDiscrete Structures. Fall Homework3
Discrete Structures Fall 2015 Homework3 Chapter 5 1. Section 5.1 page 329 Problems: 3,5,7,9,11,15 3. Let P(n) be the statement that 1 2 + 2 2 + +n 2 = n(n + 1)(2n + 1)/6 for the positive integer n. a)
More informationCombinatorics Prof. Dr. L. Sunil Chandran Department of Computer Science and Automation Indian Institute of Science, Bangalore
Combinatorics Prof. Dr. L. Sunil Chandran Department of Computer Science and Automation Indian Institute of Science, Bangalore Lecture - 5 Elementary concepts and basic counting principles So, welcome
More informationDynamic Programming Homework Problems
CS 1510 Dynamic Programming Homework Problems 1. Consider the recurrence relation T(0) = T(1) = 2 and for n > 1 n 1 T(n) = T(i)T(i 1) i=1 We consider the problem of computing T(n) from n. (a) Show that
More informationTotal Score /15 /20 /30 /10 /5 /20 Grader
NAME: NETID: CS2110 Fall 2009 Prelim 2 November 17, 2009 Write your name and Cornell netid. There are 6 questions on 8 numbered pages. Check now that you have all the pages. Write your answers in the boxes
More informationDesign and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis
Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute Week 02 Module 06 Lecture - 14 Merge Sort: Analysis So, we have seen how to use a divide and conquer strategy, we
More informationI2204 ImperativeProgramming Semester: 1 Academic Year: 2018/2019 Credits: 5 Dr Antoun Yaacoub
Lebanese University Faculty of Science Computer Science BS Degree I2204 ImperativeProgramming Semester: 1 Academic Year: 2018/2019 Credits: 5 Dr Antoun Yaacoub I2204- Imperative Programming Schedule 08h00-09h40
More informationIntroduction to Computers & Programming
16.070 Introduction to Computers & Programming Ada: Recursion Prof. Kristina Lundqvist Dept. of Aero/Astro, MIT Recursion Recursion means writing procedures and functions which call themselves. Recursion
More informationProblem A - EPIC. Line Width of Letters (# characters) EEEEEEEEEE EEEEEEEEEE EE EE EEEEEEEEEE EEEEEEEEEE EE EE EEEEEEEEEE EEEEEEEEEE
Problem A - EPIC Professor Plum likes the idea of visiting EPIC for MICS 4. He wants you to write a program to generate ASC art printing EPIC vertically for a sign to tape to the back of the van on the
More informationRecursion. Thinking Recursively. Tracing the Recursive Definition of List. CMPT 126: Lecture 10. Recursion
Recursion CMPT 126: Lecture 10 Recursion Tamara Smyth, tamaras@cs.sfu.ca School of Computing Science, Simon Fraser University October 25, 2007 Recursion is the process of defining something in terms of
More informationAlgorithm. Building blocks of algorithm
UNIT I ALGORITHMIC PROBLEM SOLVING 9 Algorithms, building blocks of algorithms (statements, state, control flow, functions), notation (pseudo code, flow chart, programming language), algorithmic problem
More informationRepetition Through Recursion
Fundamentals of Computer Science I (CS151.02 2007S) Repetition Through Recursion Summary: In many algorithms, you want to do things again and again and again. For example, you might want to do something
More informationChapter 1. Unit 1: Transformations, Congruence and Similarity
www.ck12.org Chapter 1. Unit 1: Transformations, Congruence and Similarity 1.16 Vertical Angles Here you ll learn to identify adjacent and vertical angles formed by intersecting lines and then find missing
More informationCSE 373: Data Structures and Algorithms
CSE 373: Data Structures and Algorithms Lecture 4: Asymptotic Analysis part 3 Code Style, Recurrence Relations, Formal Big-O & Cousins Instructor: Lilian de Greef Quarter: Summer 2017 Today: Code Style
More informationCOMP 250 Fall recurrences 2 Oct. 13, 2017
COMP 250 Fall 2017 15 - recurrences 2 Oct. 13, 2017 Here we examine the recurrences for mergesort and quicksort. Mergesort Recall the mergesort algorithm: we divide the list of things to be sorted into
More informationScan and its Uses. 1 Scan. 1.1 Contraction CSE341T/CSE549T 09/17/2014. Lecture 8
CSE341T/CSE549T 09/17/2014 Lecture 8 Scan and its Uses 1 Scan Today, we start by learning a very useful primitive. First, lets start by thinking about what other primitives we have learned so far? The
More information