Calculating Logs Manually
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Mock In-Class Test COMS10007 Algorithms 2018/2019
Mock In-class Test COMS10007 Algorithms 2018/2019 Throughout this paper log() denotes the binary logarithm, i.e, log(n) = log2(n), and ln() denotes the logarithm to base e, i.e., ln(n) = loge(n). 1 O-notation 1. Let f : N ! N be a function. Define the set Θ(f(n)). Proof. Θ(f(n)) = fg(n) : There exist positive constants c1; c2 and n0 s.t. 0 ≤ c1f(n) ≤ g(n) ≤ c2f(n) for all n ≥ n0g 2. Give a formal proof of the statement: p 10 n 2 O(n) : p Proof. We need to show that there are positive constants c; n0 such that 10 n ≤ c · n, 10 p for every n ≥ n0. The previous inequality is equivalent to c ≤ n, which in turn 100 100 gives c2 ≤ n. Hence, we can pick c = 1 and n0 = 12 = 100. 3. Use the racetrack principle to prove the following statement: n 2 O(2n) : Hint: The following facts can be useful: • The derivative of 2n is ln(2)2n. 1 • 2 ≤ ln(2) ≤ 1 holds. n Proof. We need to show that there are positive constants c; n0 such that n ≤ c·2 . We n pick c = 1 and n0 = 1. Observe that n ≤ 2 holds for n = n0(= 1). It remains to show n that n ≤ 2 also holds for every n ≥ n0. To show this, we use the racetrack principle. Observe that the derivative of n is 1 and the derivative of 2n is ln(2)2n. Hence, by n the racetrack principle it is enough to show that 1 ≤ ln(2)2 holds for every n ≥ n0, 1 1 1 1 or log( ln 2 ) ≤ n. -
Optimizing MPC for Robust and Scalable Integer and Floating-Point Arithmetic
Optimizing MPC for robust and scalable integer and floating-point arithmetic Liisi Kerik1, Peeter Laud1, and Jaak Randmets1,2 1 Cybernetica AS, Tartu, Estonia 2 University of Tartu, Tartu, Estonia {liisi.kerik, peeter.laud, jaak.randmets}@cyber.ee Abstract. Secure multiparty computation (SMC) is a rapidly matur- ing field, but its number of practical applications so far has been small. Most existing applications have been run on small data volumes with the exception of a recent study processing tens of millions of education and tax records. For practical usability, SMC frameworks must be able to work with large collections of data and perform reliably under such conditions. In this work we demonstrate that with the help of our re- cently developed tools and some optimizations, the Sharemind secure computation framework is capable of executing tens of millions integer operations or hundreds of thousands floating-point operations per sec- ond. We also demonstrate robustness in handling a billion integer inputs and a million floating-point inputs in parallel. Such capabilities are ab- solutely necessary for real world deployments. Keywords: Secure Multiparty Computation, Floating-point operations, Protocol design 1 Introduction Secure multiparty computation (SMC) [19] allows a group of mutually distrust- ing entities to perform computations on data private to various members of the group, without others learning anything about that data or about the intermedi- ate values in the computation. Theory-wise, the field is quite mature; there exist several techniques to achieve privacy and correctness of any computation [19, 28, 15, 16, 21], and the asymptotic overheads of these techniques are known. -
CS 270 Algorithms
CS 270 Algorithms Week 10 Oliver Kullmann Binary heaps Sorting Heapification Building a heap 1 Binary heaps HEAP- SORT Priority 2 Heapification queues QUICK- 3 Building a heap SORT Analysing 4 QUICK- HEAP-SORT SORT 5 Priority queues Tutorial 6 QUICK-SORT 7 Analysing QUICK-SORT 8 Tutorial CS 270 General remarks Algorithms Oliver Kullmann Binary heaps Heapification Building a heap We return to sorting, considering HEAP-SORT and HEAP- QUICK-SORT. SORT Priority queues CLRS Reading from for week 7 QUICK- SORT 1 Chapter 6, Sections 6.1 - 6.5. Analysing 2 QUICK- Chapter 7, Sections 7.1, 7.2. SORT Tutorial CS 270 Discover the properties of binary heaps Algorithms Oliver Running example Kullmann Binary heaps Heapification Building a heap HEAP- SORT Priority queues QUICK- SORT Analysing QUICK- SORT Tutorial CS 270 First property: level-completeness Algorithms Oliver Kullmann Binary heaps In week 7 we have seen binary trees: Heapification Building a 1 We said they should be as “balanced” as possible. heap 2 Perfect are the perfect binary trees. HEAP- SORT 3 Now close to perfect come the level-complete binary Priority trees: queues QUICK- 1 We can partition the nodes of a (binary) tree T into levels, SORT according to their distance from the root. Analysing 2 We have levels 0, 1,..., ht(T ). QUICK- k SORT 3 Level k has from 1 to 2 nodes. Tutorial 4 If all levels k except possibly of level ht(T ) are full (have precisely 2k nodes in them), then we call the tree level-complete. CS 270 Examples Algorithms Oliver The binary tree Kullmann 1 ❚ Binary heaps ❥❥❥❥ ❚❚❚❚ ❥❥❥❥ ❚❚❚❚ ❥❥❥❥ ❚❚❚❚ Heapification 2 ❥ 3 ❖ ❄❄ ❖❖ Building a ⑧⑧ ❄ ⑧⑧ ❖❖ heap ⑧⑧ ❄ ⑧⑧ ❖❖❖ 4 5 6 ❄ 7 ❄ HEAP- ⑧ ❄ ⑧ ❄ SORT ⑧⑧ ❄ ⑧⑧ ❄ Priority 10 13 14 15 queues QUICK- is level-complete (level-sizes are 1, 2, 4, 4), while SORT ❥ 1 ❚❚ Analysing ❥❥❥❥ ❚❚❚❚ QUICK- ❥❥❥ ❚❚❚ SORT ❥❥❥ ❚❚❚❚ 2 ❥❥ 3 ♦♦♦ ❄❄ ⑧ Tutorial ♦♦ ❄❄ ⑧⑧ ♦♦♦ ⑧ 4 ❄ 5 ❄ 6 ❄ ⑧⑧ ❄❄ ⑧ ❄ ⑧ ❄ ⑧⑧ ❄ ⑧⑧ ❄ ⑧⑧ ❄ 8 9 10 11 12 13 is not (level-sizes are 1, 2, 3, 6). -
CS211 ❒ Overview • Code (Number Guessing Example)
CS211 1. Number Guessing Example ASYMPTOTIC COMPLEXITY 1.1 Code ❒ Overview import java.io.*; • code (number guessing example) public class NumberGuess { • approximate analysis to motivate math public static void main(String[] args) throws IOException { int guess; • machine model int count; final int LOW=Integer.parseInt(args[0]); • analysis (space, time) final int HIGH=Integer.parseInt(args[1]); final int STOP=HIGH-LOW+1; • machine architecture and time assumptions int target = (int)(Math.random()*(HIGH-LOW+1))+(int)(LOW); BufferedReader in = new BufferedReader(new • code analysis InputStreamReader(System.in)); • more assumptions System.out.print("\nGuess an integer: "); guess = Integer.parseInt(in.readLine()); • Big Oh notation count = 1; • examples while (guess != target && guess >= LOW && • extra material (theory, background, math) guess <= HIGH && count < STOP ) { if (guess < target) System.out.println("Too low!"); else if (guess>target) System.out.println("Too high!"); else System.exit(0); System.out.print("\nGuess an integer: "); guess = Integer.parseInt(in.readLine()); count++ ; } if (target == guess) System.out.println("\nCongratulations!\n"); } } 12 1.2 Solution Algorithms 1.4 More General • random: • count only comparisons of guess to target - pick any number (same number as guesses) - worst-case time could be infinite • other examples: • linear: range linea binar pattern r y - guess one number at a time 1111→1 - start from bottom and head to top 1–10 10 5 5→7→8→9→10 1–100 100 8 50→75→87→93→96→98→99→100 - worst-case time could -
Mathematical Constants and Sequences
Mathematical Constants and Sequences a selection compiled by Stanislav Sýkora, Extra Byte, Castano Primo, Italy. Stan's Library, ISSN 2421-1230, Vol.II. First release March 31, 2008. Permalink via DOI: 10.3247/SL2Math08.001 This page is dedicated to my late math teacher Jaroslav Bayer who, back in 1955-8, kindled my passion for Mathematics. Math BOOKS | SI Units | SI Dimensions PHYSICS Constants (on a separate page) Mathematics LINKS | Stan's Library | Stan's HUB This is a constant-at-a-glance list. You can also download a PDF version for off-line use. But keep coming back, the list is growing! When a value is followed by #t, it should be a proven transcendental number (but I only did my best to find out, which need not suffice). Bold dots after a value are a link to the ••• OEIS ••• database. This website does not use any cookies, nor does it collect any information about its visitors (not even anonymous statistics). However, we decline any legal liability for typos, editing errors, and for the content of linked-to external web pages. Basic math constants Binary sequences Constants of number-theory functions More constants useful in Sciences Derived from the basic ones Combinatorial numbers, including Riemann zeta ζ(s) Planck's radiation law ... from 0 and 1 Binomial coefficients Dirichlet eta η(s) Functions sinc(z) and hsinc(z) ... from i Lah numbers Dedekind eta η(τ) Functions sinc(n,x) ... from 1 and i Stirling numbers Constants related to functions in C Ideal gas statistics ... from π Enumerations on sets Exponential exp Peak functions (spectral) .. -
Survey of Math: Chapter 21: Consumer Finance Savings Page 1
Survey of Math: Chapter 21: Consumer Finance Savings Page 1 Geometric Series Consider the following series: 1 + x + x2 + x3 + ··· + xn−1. We need to figure out a way to write this without the ···. Here’s how: s = 1 + x + x2 + x3 + ··· + xn−1 subtract xs = x + x2 + x3 + ··· + xn−1 + xn s − sx = 1 − 0 − 0 − 0 − · · · − 0 − xn s − sx = 1 − xn Now solve for s: 1 − xn xn − 1 s(1 − x) = 1 − xn ⇒ s = = . 1 − x x − 1 xn − 1 Therefore, a geometric series has the following sum: 1 + x + x2 + x3 + ··· + xn−1 = . x − 1 Exponential and Natural Logarithms As we have seen, some of our equations involve exponents. To effectively deal with exponents, we need to be able to work with exponentials and logarithms. The exponential and natural logarithm functions are inverse functions, and related by the following rules 1 m e = 1 + for m large m e = 2.71828 ... ln(eA) = A where A is a constant eln(A) = A If the base of the exponent is not e, we can use the following rule: ln(bA) = A ln(b) where A and b are constants ln(2A) = A ln(2) ln((1 + r)A) = A ln(1 + r) Note: • The natural logarithm acts on a number, so we read ln(2) as “The natural logarithm of 2”. • We would never write ln(2) = 2 ln, since this loses the fact that the natural logarithm must act on something. It is a functional evaluation, not a multiplication. • This is similar to trigonometric functions, like sin(π). -
Binary Search Algorithm Anthony Lin¹* Et Al
WikiJournal of Science, 2019, 2(1):5 doi: 10.15347/wjs/2019.005 Encyclopedic Review Article Binary search algorithm Anthony Lin¹* et al. Abstract In In computer science, binary search, also known as half-interval search,[1] logarithmic search,[2] or binary chop,[3] is a search algorithm that finds a position of a target value within a sorted array.[4] Binary search compares the target value to an element in the middle of the array. If they are not equal, the half in which the target cannot lie is eliminated and the search continues on the remaining half, again taking the middle element to compare to the target value, and repeating this until the target value is found. If the search ends with the remaining half being empty, the target is not in the array. Binary search runs in logarithmic time in the worst case, making 푂(log 푛) comparisons, where 푛 is the number of elements in the array, the 푂 is ‘Big O’ notation, and 푙표푔 is the logarithm.[5] Binary search is faster than linear search except for small arrays. However, the array must be sorted first to be able to apply binary search. There are spe- cialized data structures designed for fast searching, such as hash tables, that can be searched more efficiently than binary search. However, binary search can be used to solve a wider range of problems, such as finding the next- smallest or next-largest element in the array relative to the target even if it is absent from the array. There are numerous variations of binary search. -
Introduction to Algorithms
CS 5002: Discrete Structures Fall 2018 Lecture 9: November 8, 2018 1 Instructors: Adrienne Slaughter, Tamara Bonaci Disclaimer: These notes have not been subjected to the usual scrutiny reserved for formal publications. They may be distributed outside this class only with the permission of the Instructor. Introduction to Algorithms Readings for this week: Rosen, Chapter 2.1, 2.2, 2.5, 2.6 Sets, Set Operations, Cardinality of Sets, Matrices 9.1 Overview Objective: Introduce algorithms. 1. Review logarithms 2. Asymptotic analysis 3. Define Algorithm 4. How to express or describe an algorithm 5. Run time, space (Resource usage) 6. Determining Correctness 7. Introduce representative problems 1. foo 9.2 Asymptotic Analysis The goal with asymptotic analysis is to try to find a bound, or an asymptote, of a function. This allows us to come up with an \ordering" of functions, such that one function is definitely bigger than another, in order to compare two functions. We do this by considering the value of the functions as n goes to infinity, so for very large values of n, as opposed to small values of n that may be easy to calculate. Once we have this ordering, we can introduce some terminology to describe the relationship of two functions. 9-1 9-2 Lecture 9: November 8, 2018 Growth of Functions nn 4096 n! 2048 1024 512 2n 256 128 n2 64 32 n log(n) 16 n 8 p 4 n log(n) 2 1 1 2 3 4 5 6 7 8 From this chart, we see: p 1 log n n n n log(n) n2 2n n! nn (9.1) Complexity Terminology Θ(1) Constant Θ(log n) Logarithmic Θ(n) Linear Θ(n log n) Linearithmic Θ nb Polynomial Θ(bn) (where b > 1) Exponential Θ(n!) Factorial 9.2.1 Big-O: Upper Bound Definition 9.1 (Big-O: Upper Bound) f(n) = O(g(n)) means there exists some constant c such that f(n) ≤ c · g(n), for large enough n (that is, as n ! 1). -
Comparison of Parallel Sorting Algorithms
Comparison of parallel sorting algorithms Darko Božidar and Tomaž Dobravec Faculty of Computer and Information Science, University of Ljubljana, Slovenia Technical report November 2015 TABLE OF CONTENTS 1. INTRODUCTION .................................................................................................... 3 2. THE ALGORITHMS ................................................................................................ 3 2.1 BITONIC SORT ........................................................................................................................ 3 2.2 MULTISTEP BITONIC SORT ................................................................................................. 3 2.3 IBR BITONIC SORT ................................................................................................................ 3 2.4 MERGE SORT .......................................................................................................................... 4 2.5 QUICKSORT ............................................................................................................................ 4 2.6 RADIX SORT ........................................................................................................................... 4 2.7 SAMPLE SORT ........................................................................................................................ 4 3. TESTING ENVIRONMENT .................................................................................... 5 4. RESULTS ................................................................................................................ -
1 Introduction
1 Introduction Definition 1. A rational number is a number which can be expressed in the form a/b where a and b are integers with b > 0. Theorem 1. A real number α is a rational number if and only if it can be expressed as a repeating decimal, that is if and only if α = m.d1d2 . dkdk+1dk+2 . dk+r, where m = [α] if α ≥ 0 and m = −[|α|] if α < 0, where k and r are non-negative integers with r ≥ 1, and where the dj are digits. Proof. If α = m.d1d2 . dkdk+1dk+2 . dk+r, then (10k+r − 10k)α ∈ Z and it easily follows that α is rational. If α = a/b with a and b integers and b > 0, then α = m.d1d2 ... for some digits dj. If {x} denotes the fractional part of x, then j {10 |α|} = 0.dj+1dj+2 .... (1) On the other hand, {10j|α|} = {10ja/b} = u/b for some u ∈ {0, 1, . , b − 1}. Hence, by the pigeon-hole principle, there exist non-negative integers k and r with r ≥ 1 and {10k|α|} = {10k+r|α|}. From (1), we deduce that 0.dk+1dk+2 ··· = 0.dk+r+1dk+r+2 ... so that α = m.d1d2 . dkdk+1dk+2 . dk+r, and the result follows. Definition 2. A number is irrational if it is not rational. Theorem 2. A real number α which can be expressed as a non-repeating decimal is irrational. Proof 1. From the argument above, if α = m.d1d2 .. -
Introducing Mathematica
Introducing Mathematica John H. Lowenstein Preface This informal introduction to Mathematica®(a product of Wolfram Research, Inc.) is offered as a downloadable resource for users of the textbook Essentials of Hamiltonian Dynamics (Cambridge University Press, 2012). The aim is to familiarize the student with the core concepts and functions of Mathematica programming, so that he or she can very quickly become comfortable with computational methods in dealing with the illustrative examples and exercises in the textbook. The scope of Mathematica obviously greatly exceeds what can be covered in these few pages, and so it is highly recommended that the student take full advantage of the excellent documentation which is included with the software (accessible via the Help menu). 1. Getting started Mathematica conducts a dialogue with the user: you type in a mathematical expression, press Enter , and Mathemat- ica evaluates the expression according to rules which are either built-in or have been prescribed by you, displaying the result as output. The input/output alternation continues until you quit the session, with all steps recorded in the cells of your notebook. The simplest expressions involve ordinary numbers (e.g. 1, 2, 3, . , 1/2, 2/3, . , 3.14159), and the familiar operations and relations of arithmetic and logic. Elementary numerical operations: + (plus), - (minus), * (times), / (divided by), ^ (to the power) Elementary numerical relations: == (is equal to), != (is not equal to), < (is less than), > (is greater than), <= (is less than or equal to), >= (is greater than or equal to) Elementary logical relations: || (or), && (and), ! (not) For example, 2+2 evaluates to 4 , 1<2 evaluates to True , and !(2>1) evaluates to False . -
ON the GENESIS of BBP FORMULAS 3 Where R0 and R1 Are Rational Numbers
ON THE GENESIS OF BBP FORMULAS DANIEL BARSKY, VICENTE MUNOZ,˜ AND RICARDO PEREZ-MARCO´ Abstract. We present a general procedure to generate infinitely many BBP and BBP-like formu- las for the simplest transcendental numbers. This provides some insight and a better understanding into their nature. In particular, we can derive the main known BBP formulas for π. We can under- stand why many of these formulas are rearrangements of each other. We also understand better where some null BBP formulas representing 0 come from. We also explain what is the observed re- lation between some BBP formulas for log 2 and π, that are obtained by taking real and imaginary parts of a general complex BBP formula. Our methods are elementary, but motivated by transal- gebraic considerations, and offer a new way to obtain and to search many new BBP formulas and, conjecturally, to better understand transalgebraic relations between transcendental constants. 1. Introduction More than 20 years ago, D.H. Bailey, P. Bowein and S. Plouffe ([5]) presented an efficient algorithm to compute deep binary or hexadecimal digits of π without the need to compute the previous ones. Their algorithm is based on a series representation for π given by a formula discovered by S. Plouffe, +∞ 1 4 2 1 1 π = . (1) 16k 8k +1 − 8k +4 − 8k +5 − 8k +6 kX=0 Formulas of similar form for other transcendental constants were known from long time ago, like the classical formula for log 2, that was known to J. Bernoulli, +∞ 1 1 log 2 = . 2k k Xk=1 arXiv:1906.09629v3 [math.NT] 22 Jul 2020 The reader can find in [4] an illustration of the way to extract binary digits from this type of formulae.