### 计算机代写|算法作业代写Algorithm代考|CS120

statistics-lab™ 为您的留学生涯保驾护航 在代写算法Algorithm方面已经树立了自己的口碑, 保证靠谱, 高质且原创的统计Statistics代写服务。我们的专家在代写算法Algorithm代写方面经验极为丰富，各种代写算法Algorithm相关的作业也就用不着说。

• Statistical Inference 统计推断
• Statistical Computing 统计计算
• (Generalized) Linear Models 广义线性模型
• Statistical Machine Learning 统计机器学习
• Longitudinal Data Analysis 纵向数据分析
• Foundations of Data Science 数据科学基础

## 计算机代写|算法作业代写Algorithm代考|Lattice Multiplication

The most familiar method for multiplying large numbers, at least for American students, is the lattice algorithm. This algorithm was popularized by Fibonacci in Liber Abaci, who learned it from Arabic sources including al-Khwārizmī, who in turn learned it from Indian sources including Brahmagupta’s 7th-century treatise Brāhmasphuṭasiddhānta, who may have learned it from Chinese sources. The oldest surviving descriptions of the algorithm appear in The Mathematical Classic of Sunzi, written in China between the 3rd and 5 th centuries, and in Eutocius of Ascalon’s commentaries on Archimedes’ Measurement of the Circle, written around 50ocE, but there is evidence that the algorithm was known much earlier. Eutocius credits the method to a lost treatise of Apollonius of Perga, recorded multiplication tables on clay tablets as early as 2600 . that they may have used the lattice algorithm. ${ }^8$

The lattice algorithm assumes that the input numbers are represented as explicit strings of digits; I’ll assume here that we’re working in base ten, but the algorithm generalizes immediately to any other base. To simplify notation, ${ }^9$ the input consists of a pair of arrays $X[0 \ldots m-1]$ and $Y[0 \ldots n-1]$, representing the numbers
$$x=\sum_{i=0}^{m-1} X[i] \cdot 10^i \text { and } y=\sum_{j=0}^{n-1} Y[j] \cdot 10^j \text {, }$$
and similarly, the output consists of a single array $Z[0 . . m+n-1]$, representing the product
$$z=x \cdot y=\sum_{k=0}^{m+n-1} Z[k] \cdot 10^k .$$
The algorithm uses addition and single-digit multiplication as primitive operations. Addition can be performed using a simple for-loop. In practice, single-digit multiplication is performed using a lookup table, either carved into clay tablets, painted on strips of wood or bamboo, written on paper, stored in read-only memory, or memorized by the computator. The entire lattice algorithm can be summarized by the formula
$$x \cdot y=\sum_{i=0}^{m-1} \sum_{j=0}^{n-1}\left(X[i] \cdot Y[j] \cdot 10^{i+j}\right) .$$
Different variants of the lattice algorithm evaluate the partial products $X[i]$. $Y[j] \cdot 10^{i+j}$ in different orders and use different strategies for computing their sum. For example, in Liber Abaco, Fibonacci describes a variant that considers the $m n$ partial products in increasing order of significance, as shown in modern pseudocode below.

## 计算机代写|算法作业代写Algorithm代考|Duplation and Mediation

The lattice algorithm is not the oldest multiplication algorithm for which we have direct recorded evidence. An even older and arguably simpler algorithm, which does not rely on place-value notation, is sometimes called Russian peasant multiplication, Ethiopian peasant multiplication, or just peasant multiplication.

variant of this algorithm was copied into the Rhind papyrus by the Egyptian scribe Ahmes around 1650всЕ, from a document he claimed was (then) about 350 years old. ${ }^{10}$ This algorithm was still taught in elementary schools in Eastern Europe in the late 20 th century; it was also commonly used by early digital computers that did not implement integer multiplication directly in hardware.
The peasant multiplication algorithm reduces the difficult task of multiplying arbitrary numbers to a sequence of four simpler operations: (1) determining parity (even or odd), (2) addition, (3) duplation (doubling a number), and (4) mediation (halving a number, rounding down).

The correctness of this algorithm follows by induction from the following recursive identity, which holds for all non-negative integers $x$ and $y$ :
$$x \cdot y= \begin{cases}0 & \text { if } x=0 \ \lfloor x / 2\rfloor \cdot(y+y) & \text { if } x \text { is even } \ \lfloor x / 2\rfloor \cdot(y \mid y) \mid y & \text { if } x \text { is odd }\end{cases}$$
Arguably, this recurrenee is the pensant multiplieation algorithm. Don’t let the iterative pseudocode fool you; the algorithm is fundamentally recursive!

As stated, PeasantMultiply performs $O(\log x)$ parity, addition, and mediation operations, but we can improve this bound to $O(\log \min {x, y})$ by swapping the two arguments when $x>y$. Assuming the numbers are represented using any reasonable place-value notation (like binary, decimal, Babylonian hexagesimal, Egyptian duodecimal, Roman numeral, Chinese counting rods, head positions on an abacus, and so on), each operation requires at most $O(\log (x y))=O(\log \max {x, y})$ single-digit operations, so the overall running time of the algorithm is $O(\log \min {x, y} \cdot \log \max {x, y})=O(\log x \cdot \log y)$.

# 算法代考

## 计算机代写|算法作业代写Algorithm代考|Lattice Multiplication

$$x=\sum_{i=0}^{m-1} X[i] \cdot 10^i \text { and } y=\sum_{j=0}^{n-1} Y[j] \cdot 10^j$$

$$z=x \cdot y=\sum_{k=0}^{m+n-1} Z[k] \cdot 10^k .$$

$$x \cdot y=\sum_{i=0}^{m-1} \sum_{j=0}^{n-1}\left(X[i] \cdot Y[j] \cdot 10^{i+j}\right) .$$

## 计算机代写|算法作业代写Algorithm代考|Duplation and Mediation

$x \cdot y={0 \quad$ if $x=0\lfloor x / 2\rfloor \cdot(y+y) \quad$ if $x$ is even $\lfloor x / 2\rfloor \cdot(y \mid y) \mid y \quad$ if $x$ is odd

$O(\log \min x, y \cdot \log \max x, y)=O(\log x \cdot \log y)$

## 有限元方法代写

tatistics-lab作为专业的留学生服务机构，多年来已为美国、英国、加拿大、澳洲等留学热门地的学生提供专业的学术服务，包括但不限于Essay代写，Assignment代写，Dissertation代写，Report代写，小组作业代写，Proposal代写，Paper代写，Presentation代写，计算机作业代写，论文修改和润色，网课代做，exam代考等等。写作范围涵盖高中，本科，研究生等海外留学全阶段，辐射金融，经济学，会计学，审计学，管理学等全球99%专业科目。写作团队既有专业英语母语作者，也有海外名校硕博留学生，每位写作老师都拥有过硬的语言能力，专业的学科背景和学术写作经验。我们承诺100%原创，100%专业，100%准时，100%满意。

## MATLAB代写

MATLAB 是一种用于技术计算的高性能语言。它将计算、可视化和编程集成在一个易于使用的环境中，其中问题和解决方案以熟悉的数学符号表示。典型用途包括：数学和计算算法开发建模、仿真和原型制作数据分析、探索和可视化科学和工程图形应用程序开发，包括图形用户界面构建MATLAB 是一个交互式系统，其基本数据元素是一个不需要维度的数组。这使您可以解决许多技术计算问题，尤其是那些具有矩阵和向量公式的问题，而只需用 C 或 Fortran 等标量非交互式语言编写程序所需的时间的一小部分。MATLAB 名称代表矩阵实验室。MATLAB 最初的编写目的是提供对由 LINPACK 和 EISPACK 项目开发的矩阵软件的轻松访问，这两个项目共同代表了矩阵计算软件的最新技术。MATLAB 经过多年的发展，得到了许多用户的投入。在大学环境中，它是数学、工程和科学入门和高级课程的标准教学工具。在工业领域，MATLAB 是高效研究、开发和分析的首选工具。MATLAB 具有一系列称为工具箱的特定于应用程序的解决方案。对于大多数 MATLAB 用户来说非常重要，工具箱允许您学习应用专业技术。工具箱是 MATLAB 函数（M 文件）的综合集合，可扩展 MATLAB 环境以解决特定类别的问题。可用工具箱的领域包括信号处理、控制系统、神经网络、模糊逻辑、小波、仿真等。