Tag:

随机数彼此不匹配

我想用C生成不同的数字。 我们可以使用stdlib库和srand函数生成一个随机数。 例如; 我想生成0到5之间的随机数。 #include #include #include int main(void) { int i; int n = 4; int array[3]; srand(time(NULL)); for(i = 0; i < n; i++) { array[i] = rand() % 5; printf("%d\n", array[i]); } return 0; 但是相同的数字可能在这里重合。就像这样: 2 4 4 1 我怎么能阻止这个?

如何在c中为给定的均值和方差生成高斯伪随机数?

我这里有一个代码,它产生的平均0f 1和std偏差为0.5的随机数。 但是我如何修改这个代码,以便我能够确定任何给定均值和方差的高斯随机数? #include #include #ifndef M_PI #define M_PI 3.14159265358979323846 #endif double drand() /* uniform distribution, (0..1] */ { return (rand()+1.0)/(RAND_MAX+1.0); } double random_normal() /* normal distribution, centered on 0, std dev 1 */ { return sqrt(-2*log(drand())) * cos(2*M_PI*drand()); } int main() { int i; double rands[1000]; for (i=0; i<1000; i++) rands[i] = 1.0 + […]

查找数组中数字的所有可能排列

我有一个数组包含让我们说[25,15,8,20]我想找到所有可能的数字排列。 预期产量: 25 15 8 20 25 15 20 8 25 20 15 8 25 20 8 15 25 8 20 15 25 8 15 20 15 25 8 20 15 25 20 8 15 20 25 8 15 20 8 25 15 8 20 25 15 8 25 20 20 25 15 8 20 […]

在C中查找字符串数组中的字符串数

char* names[]={“A”, “B”, “C”}; 有没有办法找到数组中的字符串数量。 例如,在这种情况下,它必须是3.请让我知道。 谢谢。

在C中生成范围内的随机数?

期望在C中制作一个非常简单的随机数生成器方法。数字应该在0到24之间,并且可以是例如14.5f。 任何帮助都会很棒,谢谢!

生成数字的所有不同分区

我正在尝试编写一个C代码来生成具有给定数字的不同元素的所有可能的分区(分成2个或更多部分)。 给定分区的所有数字的总和应该等于给定的数字。 例如,对于输入n = 6 ,具有2个或更多具有不同元素的元素的所有可能分区是: 1,5 1,2,3 2,4 我认为递归方法应该有效,但我无法处理不同元素的附加约束。 非常感谢C / C ++ / Java中的伪代码或示例代码。 谢谢! 编辑:如果它使事情变得更容易,我可以忽略具有至少2个元素的分区的限制。 这将允许将数字本身添加到列表中(例如,6本身将是一个微不足道但有效的分区)。

什么是计算2模数的大功率的最快方法

对于1 <= N <= 1000000000 ,我需要计算2 N mod 1000000007 ,它必须非常快! 我目前的做法是: ull power_of_2_mod(ull n) { ull result = 1; if (n <= 63) { result <<= n; result = result % 1000000007; } else { ull one = 1; one < 63) { result = ((result % 1000000007) * (one % 1000000007)) % 1000000007; n […]

从零开始的数字有什么特别之处?

这有点愚蠢的问题,但对我来说很有意思) 这就是我在visual studio 2013中获得的 int i = 07; // i == 7 int i = 16; // i == 16 int i = 00016; // i == 14, why? int i = 05016; // i == 2574, wow ) int i = 08; // compile error, compiler expects octal number… 如果number从零开始并且包含8,那就是编译错误。 这是正常的吗? 如果00016 == 14,那么编译器在启动零时究竟做了什么? […]

“n *(rand()/ RAND_MAX)”是否会产生偏斜的随机数分布?

我想找到一种在C中获取随机数的无法解释的方法(尽管最多我会将它用于0-20的值,更可能只有0-8)。 我已经看过这个公式,但经过一些测试后,我不确定它是否有偏差。 有帮助吗? 这是使用的完整function: int randNum() { return 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0))); } 我使用以下方法播种: unsigned int iseed = (unsigned int)time(NULL); srand (iseed); 下面建议的那个拒绝为我工作,我试过了 int greek; for (j=0; j<50000; j++) { greek =rand_lim(5); printf("%d, " greek); greek =(int) (NUM * (rand() / (RAND_MAX + 1.0))); int togo=number[greek]; number[greek]=togo+1; } 当我注释掉printf时,它停止工作并给我相同的数字50000次。