| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3862 人关注过本帖, 1 人收藏
标题:谢谢大家!
只看楼主 加入收藏
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10565
专家分:43004
注 册:2014-5-20
收藏
得分:0 
以下是引用小白老黑在2016-12-27 09:40:02的发言:

我这题目逻辑上应该没问题,不知道结构上能不能做到?

查找ABCD值应该相对容易些,进入比对环节是否有障碍?

问题不算复杂,只是随机的东西,在一定时间内未必能得到结果。
条件数字串是输入的,也就是相对固定,要求也只限于出现在12位数字串的最前端,出现时要做的就是取之后的一位数字(0~9)计数并保存结果,最后按各“条件”比对至少都出现一次相同数字的就是所求的一组结果。
2016-12-27 10:21
小白老黑
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-12-23
收藏
得分:0 
回复 32楼 吹水佬
谢谢!

[此贴子已经被作者于2016-12-27 18:44编辑过]

2016-12-27 10:31
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10565
专家分:43004
注 册:2014-5-20
收藏
得分:0 
回复 33楼 小白老黑
不算复杂,如:
生成N个随机12位数字串
    char s[N][13]= {0};
    srand((unsigned)time(0));
    for (i=0; i<N; i++)
        for(j=0; j<12; j++)
            s[i][j] = rand()%10 + '0';
    for (i=0; i<N; i++)
        printf("%s\n", s[i]);
匹对条件数字串,用strncmp()比对条件串长的n个字符,再取n+1的字符,基本就是做这些了吧,不知有无理解错。
2016-12-27 11:18
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
以下是引用吹水佬在2016-12-27 08:00:01的发言:

随机的东西就是不确定的,一次拿1万个与分1万次每次拿一个有什么分别?


认同这个观点

你的需求完全可以边匹配边生成

以下是引用小白老黑在2016-12-27 09:12:49的发言:

但是我更希望是每次是相对独立的。

避免其它干扰项因素(如时间或线性等),不知这样说对不对。


使用软件从来都是生成伪随机数来使用的,查一下rand函数就是递推公式生成的,它只不过保证了相对均匀分布。

他并不受时间影响,可以测试一下,如果srand传入相同的种子,不同时间产生的随机数是相同的。


[fly]存在即是合理[/fly]
2016-12-27 11:34
小白老黑
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-12-23
收藏
得分:0 
回复 35楼 azzbcc
谢谢!

[此贴子已经被作者于2016-12-27 18:44编辑过]

2016-12-27 13:44
小白老黑
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-12-23
收藏
得分:0 
回复 34楼 吹水佬
谢谢!

[此贴子已经被作者于2016-12-27 18:44编辑过]

2016-12-27 13:45
小白老黑
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-12-23
收藏
得分:0 
真的非常感谢各位高手讨论。

我真的只有思路,没有技术!
2016-12-27 13:56
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10565
专家分:43004
注 册:2014-5-20
收藏
得分:0 
以下是引用小白老黑在2016-12-27 13:44:12的发言:

版主的话有道理。我也对随机生成数的独立性和随机性有保留看法。

先找到并保存A值再找同样的B.C.D,好像偏题了。问题变成了只找A值了。

不是先找A或B、C、D....的,是同时找的。
如:
1、取一个随机数
2、if 是条件A
      保存 A
   if 是条件B
      保存 B
   if 是条件C
      保存 C
   if .......
3、重复1、2,直到取够N个随机数为止
4、从保存的A、B、C....结果中统计出A=B=C=....的结果组合,即为所求。
2016-12-27 14:43
小白老黑
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-12-23
收藏
得分:0 
回复 39楼 吹水佬
谢谢!

[此贴子已经被作者于2016-12-27 18:45编辑过]

2016-12-27 15:12
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10565
专家分:43004
注 册:2014-5-20
收藏
得分:0 
回复 40楼 小白老黑
A、B、C、....只有0~9十种情况,出现的机会肯定多,因此A=B=C=......的机会也不会少。
但每个12位随机数字串要先满足“条件”就有可能不容易了,除非“条件”太简单,如只有一个或三两个字符。
2016-12-27 16:11
快速回复:谢谢大家!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014371 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved