怎么使生成2和4 的概率不同 c语言代码
时间: 2024-03-11 13:47:26 浏览: 12
可以使用随机数来实现生成2和4的概率不同。一种方法是生成一个随机数,如果这个随机数小于某个值,就生成2,否则生成4。
下面是一段使用C语言实现的代码示例:
```c
#include <stdlib.h>
#include <time.h>
int generate_number() {
// 设置随机数种子
srand((unsigned)time(NULL));
// 生成一个0到99之间的随机数
int rand_num = rand() % 100;
// 如果随机数小于80,生成2
if (rand_num < 80) {
return 2;
}
// 否则生成4
else {
return 4;
}
}
```
在这个示例中,使用了C标准库中的`rand()`函数生成随机数,然后根据随机数的大小来生成2或4。可以根据实际需要调整随机数的范围和生成2和4的概率。
相关问题
用c语言写图的生成代码
对于生成图的代码,在C语言中有不同的库和算法可以实现。其中,比较常用的是使用邻接矩阵或邻接表来表示图,然后通过遍历算法来生成不同类型的图。以下是一个简单的示例,用邻接矩阵表示无向图并生成随机边。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_VERTEX 100 // 最多支持的顶点数
int G[MAX_VERTEX][MAX_VERTEX]; // 邻接矩阵,表示图
int n; // 顶点数
int e; // 边数
// 生成无向图
void generate_graph()
{
srand((unsigned) time(NULL)); // 初始化随机数种子
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (rand() % 2) { // 50%的概率连边
G[i][j] = G[j][i] = 1;
e++;
}
}
}
}
// 输出图结构
void print_graph()
{
printf("Graph:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", G[i][j]);
}
printf("\n");
}
printf("Vertices: %d, Edges: %d\n", n, e);
}
// 主函数
int main()
{
n = 6;
generate_graph();
print_graph();
return 0;
}
```
以上是一个简单的示例,可以生成一个随机的无向图。实际使用中,还需要结合具体的需求选择不同的数据结构和算法。
c语言按概率生成随机数
在C语言中,可以使用rand()函数生成随机数。但是这种方法生成的随机数并不是真正意义上的随机数,而是伪随机数。如果需要按概率生成随机数,可以根据需要的概率范围进行计算,然后使用rand()函数生成一个随机数,并根据计算出的概率范围进行判断和处理。具体的实现方式可以参考以下示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int p = 30; // 生成30%概率的随机数
srand((unsigned)time(NULL)); // 初始化随机数种子
int r = rand() % 100; // 生成0~99的随机数
if (r < p) // 如果生成的随机数小于设定的概率,就输出随机数
printf("随机数:%d\n", r);
else // 否则输出提示信息
printf("未生成随机数。\n");
return 0;
}
```
在这个示例程序中,我们设定了一个30%的概率,如果生成的随机数小于30,就输出随机数,否则输出未生成随机数的提示信息。可以根据需要调整概率范围和输出内容。