小编Mat*_*sel的帖子

C中的偏置随机数生成器函数

尝试在C中创建以下函数:

bool randBool(double bias)
Run Code Online (Sandbox Code Playgroud)

返回01随机返回.

绊倒我的部分是我想允许用户输入[-1.0,1.0]范围内的"偏差",这表示输出将是0或的可能性1.

以下是输入偏差应如何影响功能的几个示例:

================================================== =====

randBool(-1.0)应该0100%返回.

randBool(1.0)应该1100%返回.

randBool(-0.5)返回的可能性0比50%高1.

randBool(0.05)返回的可能性1比5%多0.

randBool(0.0)是没有更多的可能返回01.

================================================== =====

我几乎可以肯定这是一个概率问题,但我对这个主题并不熟悉,所以我对如何实现这个功能感到困惑.

c random probability

4
推荐指数
1
解决办法
137
查看次数

C:在编译时构建和使用字符串文字的预处理器宏?

我有一个 C 函数,用于格式化具有以下签名的字符串:

int
string_format
(   char*       dst
,   const char* fmt
,   ...
);
Run Code Online (Sandbox Code Playgroud)

我通常这样称呼它:

char buf[20];
const char* name = "Jeff";
string_format ( buf , "Hello %s!\n" , name );
Run Code Online (Sandbox Code Playgroud)

我现在尝试使用 ANSI 颜色代码处理彩色文本。理想情况下,我想在我的字符串文字中使用它们,如下所示:

char buf[20];
const char* name = "Jeff";
string_format ( buf , COLOR_RED "Hello %s!\n" , name );
Run Code Online (Sandbox Code Playgroud)

我编写了一些宏来构建这些字符串文字,但我做错了一些事情。例如,我尝试过:

#define ANSI_CC(color) "\033["#color"m"
#define ANSI_CC_FG_RED "91"

#define COLOR_RED (ANSI_CC(ANSI_CC_FG_RED))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试调用 时string_format (buf, COLOR_RED "Hello world.\n""),出现编译器错误:

error: expected ')' before string constant
    |     COLOR_RED "Hello world.\n" …
Run Code Online (Sandbox Code Playgroud)

c string-literals c-preprocessor

2
推荐指数
1
解决办法
70
查看次数

Bash 脚本生成“循环字符串”?

抱歉这个糟糕的标题——不知道还能如何描述我想要实现的目标。

这几天一直在尝试制作一个 Bash 脚本来实现一个非常简单的效果,但我不知道如何实现!

该脚本的命令行参数为:(1) 长度为 的字符串n,(2) 整数“目标长度” N,以及 (3) 整数偏移量M。另外,可以假设M,N < n. 我需要该程序执行以下操作:

  1. 如果是M+N < n,它应该打印N从索引开始的字符串的字符M./script.sh "Hello world!" 5 3应该打印lo wo./script.sh "Hello world!" 9 0应该打印Hello wor,等等。

  2. 否则(即 if M+N >= n),它应该打印到字符串的末尾,然后是字符串开头的任意多个字符以满足目标 length N./script.sh "Hello world!" 5 10应该打印d!Hel./script.sh "Hello world!" 11 6应该打印world!Hello,等等。

产生的效果是字符串被截短或“包裹”,使其始终具有目标长度N

特别是第二步让我感到困惑。我确信这可能是一个用子字符串语法做一些奇特的事情的简单例子,但我还没有弄清楚。我很想发布代码,但我什至还没有想到可以完成这项工作的伪代码;这就是我被困住的原因..

bash

1
推荐指数
1
解决办法
62
查看次数

标签 统计

c ×2

bash ×1

c-preprocessor ×1

probability ×1

random ×1

string-literals ×1