To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
We begin our journey by taking a closer look at some familiar notions, such as quadratic equations and inequalities. And, rather than using mechanical computations and algorithms, we focus on more fundamental questions: Where does the quadratic formula come from and how can we prove it? What are the rules that can be used with inequalities, and how can we justify them? These questions will lead us to looking at a few proofs and mathematical arguments. We highlight some of the main features of a mathematical proof, and discuss the process of constructing mathematical proofs. We also review informally the types of numbers often used in mathematics and introduce relevant terminology.
In this chapter, we introduce and discuss fundamental notions in mathematics: sets, functions, and axioms. Sets and functions show up everywhere in mathematics and science and are common tools used in mathematical arguments. Moreover, proving statements about sets and functions can further develop our proof-writing and communication skills. We also demonstrate, in Section 2.3, how axioms are used in mathematics as initial assumptions, from which other statements can be derived.
In this chapter, we take a step back to discuss, more generally, the language of mathematics and some proof techniques and strategies. In the previous chapters, we have seen numerous mathematical notions, theorems, proofs, and examples. As you have probably noticed, communicating mathematical arguments and ideas in a coherent and precise way is at the core of the subject.
This chapter is devoted to studying, in more depth, the set of integers Z, its structure, and properties. The integers play a fundamental role in many areas of mathematics, science, and beyond. The integers are closely related to the set of natural numbers and thus are often used in problems involving counting, sequences, and structures with finitely many elements (such as finite fields).
This chapter tackles the simple problem of intersecting two (sorted) lists of increasing integers, which constitutes the backbone of every query resolver in databases and (Web) search engines. In dealing with this problem, the chapter describes several approaches of increasing sophistication and elegance, which eventually turn out to be efficient/optimal in terms of time and I/O complexities. A final solution will deploy a proper compression of the input integers and a two-level scheme aimed at reducing the final space occupancy and working efficiently over hierarchical memories.
This chapter describes a data compression technique devised by Mike Burrows and David Wheeler in 1994 at DEC Systems Research Center. This technique is known as the Burrows–Wheeler Transform (or BWT) and offers a revolutionary alternative to dictionary-based and statistical compressors. It is the algorithmic core of a new class of data compressors (such as bzip2), as well as of new powerful compressed indexes (such as the FM-index). The chapter describes the algorithmic details of the BWT and of two other simple compressors, Move-to-Front and Run-Length Encoding, whose combination constitutes the design core of bzip-based compressors. This description is accompanied by the theoretical analysis of the impact of BWT on data compression, in terms of the k-th order empirical entropy of the input data, and by a sketch of the main algorithmic issues that underlie the design of the first provably compressed suffix array to date, namely the FM-index. Given the technicalities involved in the description of the BWT and the FM-index, this chapter offers several running examples and illustrative figures which should ease their understanding.
This chapter deals with a classic topic in data compression and information theory, namely the design of compressors based on the statistics of the symbols present in the text to be compressed. This topic is addressed by means of an algorithmic approach that gives much attention to the time efficiency and algorithmic properties of the discussed statistical coders, while also evaluating their space performance in terms of the empirical entropy of the input text. The chapter deals in detail with the classic Huffman coding and arithmetic coding, and also discusses their engineered versionsc known as canonical Huffman coding and range coding. Its final part is dedicated to describing and commenting on the prediction by partial matching (PPM) coder, whose algorithmic structure is at the core of some of the best statistical coders to date.