Posted on Categories:Combinatorics, 数学代写, 组合学

# 数学代写|组合学代写Combinatorics代考|Calculating UNRANK

avatest™

## avatest™帮您通过考试

avatest™的各个学科专家已帮了学生顺利通过达上千场考试。我们保证您快速准时完成各时长和类型的考试，包括in class、take home、online、proctor。写手整理各样的资源来或按照您学校的资料教您，创造模拟试题，提供所有的问题例子，以保证您在真实考试中取得的通过率是85%以上。如果您有即将到来的每周、季考、期中或期末考试，我们都能帮助您！

•最快12小时交付

•200+ 英语母语导师

•70分以下全额退款

## 数学代写|组合学代写Combinatorics代考|Calculating UNRANK

The basic principle for unranking is greed.
Definition 3.3 Greedy algorithm A greedy algorithm is a multistep algorithm that obtains as much as possible at the present step with no concern for the future.

The method of long division is an example of a greedy algorithm: If $d$ is the divisor, then at each step you subtract off the largest possible number of the form $\left(k \times 10^n\right) d$ from the dividend that leaves a nonnegative number and has $1 \leq k \leq 9$.

The greedy algorithm for computing UNRANK is to choose $D_1$, then $D_2$ and so on, each $D_i$ as large as possible at the time it is chosen. What do we mean by “as large as possible?” Suppose we are calculating UNRANK $(m)$. If $D_1, \ldots, D_{i-1}$ have been chosen, then make $D_i$ as big as possible subject to the condition that $\sum_{j=1}^i \Delta\left(e_j\right) \leq m$.

Why does this work? Suppose that $D_1, \ldots, D_{i-1}$ have been chosen by the greedy algorithm and are part of the correct path. (This is certainly true when $i=1$ because the sequence is empty!) We will prove that $D_i$ chosen by the greedy algorithm is also part of the correct path.

Suppose that a path starts $D_1, \ldots, D_{i-1}, D_i^{\prime}$. If $D_i^{\prime}>D_i$, this cannot be part of the correct path because the definition of $D_i$ gives $\Delta\left(e_1\right)+\cdots+\Delta\left(e_{i-1}\right)+\Delta\left(e_i^{\prime}\right)>m$.

Now suppose that $D_i^{\prime}<D_i$. Let $x$ be the leftmost leaf reachable from the decision sequences that start $D_1, \ldots, D_i$. Clearly $\operatorname{RANK}(x)=\Delta\left(e_1\right)+\cdots+\Delta\left(e_i\right) \leq m$. Thus any leaf to the left of $x$ will have rank less than $m$. Since all leaves reachable from $D_i^{\prime}$ are to the left of $x, D_i^{\prime}$ is not part of the correct decision sequence.

We have proven that if $D_i^{\prime} \neq D_i$, then $D_1, \ldots, D_{i-1}, D_i^{\prime}$ is not part of the correct path. It follows that $D_1, \ldots, D_{i-1}, D_i$ must be part of the correct path.

As we shall see, it’s a straightforward matter to apply the greedy algorithm to unranking if we have the values of $\Delta$ available for various edges in the decision tree.

## 数学代写|组合学代写Combinatorics代考|Gray Codes

Suppose we want to write a program that will have a loop that runs through all permutations of $n$. One way to do this is to run through numbers $0, \ldots, n !-1$ and apply UNRANK to each of them. This may not be the best way to construct such a loop. One reason is that computing UNRANK may be time consuming. Another, sometimes more important reason is that it may be much easier to deal with a permutation that does not differ very much from the previous one. For example, if we had $n$ large blocks of data of various lengths that had to be in the order given by the permutation, it would be nice if we could produce the next permutation simply by swapping two adjacent blocks of data.

Methods that list the elements of a set so that adjacent elements in the list are, in some natural sense, close together are called Gray codes.

Suppose we are given a set of objects and a notion of closeness. How does finding a Gray code compare with finding a ranking and unranking algorithm? The manner in which the objects are defined often suggests a natural way of listing the objects, which leads to an efficient ranking algorithm (and hence a greedy unranking algorithm). In contrast, the notion of closeness seldom suggests a Gray code. Thus finding a Gray code is usually harder than finding a ranking algorithm. If we are able to find a Gray code, an even harder problem appears: Find, if possible, an efficient ranking algorithm for listing the objects in the order given by the Gray code.
All we’ll do is discuss one of the simplest Gray codes.

## 数学代写|组合学代写Combinatorics代考|Calculating UNRANK

3.3贪心算法贪心算法是一种多步算法，它在当前步骤中获取尽可能多的东西，而不考虑未来。

## MATLAB代写

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