在这里我们将学习如何使用 C 生成空心金字塔和菱形图案。我们可以很容易地生成实心金字塔图案。为了使其成为空心的,我们必须添加一些技巧。空心金字塔对于金字塔的第一行,它将打印一颗星,而对于最后一行,它将打印 n 个星。对于其他行,它将在行的开头和结尾打印恰好两颗星,并且这两颗星之间会有一些空格。示例代码#include int main() { int n, i, j; printf("Enter number of lines: ... 阅读更多
乘法进位法是 Marsaglia 和 Zaman (1991) 引入的加法进位生成器的变体。这种方法的主要优点是它调用简单的计算机整数算术,并导致非常快速地生成具有巨大周期(范围从大约 260 到 22000000)的随机数序列。在 MWC 基数 b 中,选择等于计算机字大小,乘数 a 和滞后 r 确定模数 p = abr−1。在这里,选择 a 使模数为素数,并且乘数具有长周期。算法开始声明最大_序列_元素、b、r、c[最大_序列 ... 阅读更多
PGM 是可移植灰度图。如果我们想将 C 中的二维数组存储为 PNG、JPEG 或任何其他图像格式的图像,我们必须在写入文件之前完成大量工作才能以某种指定格式对数据进行编码。Netpbm 格式提供了一种简单且可移植的解决方案。Netpbm 是一个开源图形程序包,主要用于 Linux 或 Unix 平台。它也可以在 Microsoft Windows 系统下工作。每个文件都以两个字节的幻数开头。此幻数用于标识文件的类型 ... 阅读更多
Naor-Reingold 伪随机函数是另一种生成随机数的方法。Moni Naor 和 Omer Reingold 在 1997 年描述了各种密码原语在私钥和公钥密码学中的有效构造。设 p 和 l 是素数,其中 l |p−1。选择乘法阶为 l 的元素 g ε Fp*。然后对于每个 n 维向量 a = (a0, a1, ..., an)。他们定义函数fa(x)=ga0.a1x1a2x2…..anxn ε Fp其中 x = x1 … xn 是整数 x 的位表示,0 ≤ x ≤ 2 n−1此函数可用作许多密码方案的基础,包括对称加密,... 阅读更多