出数据
来源:互联网 发布:数据库pdf 百度云 编辑:程序博客网 时间:2024/06/10 09:43
ACM竞赛中题目的数据一般都可以用随机生成法+手动法。随机生成法主要用到随机函数rand().
int rand(void);
返回一个伪随机数a,a的取值范围是[0,RAND_MAX]。每次调用rand函数,都会返回内部算法生成的看似
不相关的一连串的数。该算法使用随机种子,随机种子的值可以用srand()函数初始化。
RAND_MAX是<cstdlib>头文件里定义的常量, 其值为32767.
例:生成范围是[a,b]的一个随机数,其中a > -1 , b < 32768.
int value;
srand();
value = rand()%(a-b+1) + b;
如果要生成有负数的随机数,可以减去一个常数。
如果要生成64位的数,两个32位的随机数相乘。
类似的,可以根据情况而做相应的变换。
如果数据对象是字符串,大可以找一些英文文章。
总之呢,随机数的方法只是一个基本方法,数据的来源可以是很广泛的,这要根据你题目的需要而定。
当然,测试数据要尽可能的hack掉不正确的程序,所以出题人要尽可能的考虑到每一个边角数据,而边角数据
主要是手动法了。
下面看个实例:
HDOJ-2096
先写数据生成程序:
生成数据程序:
#include <stdio.h>#include <time.h>#include <stdlib.h>int main(){ int a, t=100; freopen("in.txt", "w", stdout); //打开文件in.txt,进行写操作,这样printf()输出的信息将保存在文件里。 /* initialize random seed: */ srand(time(NULL)); a = rand(); printf("%d\n", t); while (t--) { a = rand(); printf("%d ", a); a = rand(); printf("%d\n", a); } return 0;
然后用正确的解题程序(或称为标程),运行数据,并生成输出文件out.txt:
#include "stdio.h"int main() { //打开输入输出文件 freopen("in.txt", "r", stdin); freopen("out.txt","w", stdout); //代码部分 int a, b, sum; int n; scanf("%d", &n); while (n--) { sum = 0; scanf("%d %d", &a, &b); if (a >= 100) a %= 100; if (b >= 100) b %= 100; sum = a + b; if (sum >= 100) sum %= 100; printf("%d\n", sum); } return 0;}
本文转自:http://www.cnblogs.com/superbin/archive/2011/03/27/1997089.html
2 0
- 出数据
- 正则匹配出数据
- Oracle导入/出用户数据
- sql去出重复数据
- excel 查找出相同数据
- mysql 数据导入导入出
- select级联带出数据
- elasticsearch遍历出全部数据
- jsp 用表格显示出jdbc查询出的数据
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- hdu 4258 Covered Walkway
- 坐等红颜老
- 下面示例代码展示了如何继承 SQLiteOpenHelper 创建数据库
- 本科生如何发表论文
- 警惕!iPhone 6即将上市 诈骗邮件已现身网络
- 出数据
- Theano installation
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- (Java 基础知识) json_lib实现java 对象转化为json对象
- 地铁漏洞之暗黑调度及安全解决方案
- 计划的身份卡号是开发和考试电话
- 对方的复合肥刚好符合规范话费
- JCIP_5_02_ConcurrentHashMap分段与锁的学习总结
- 她的衣服已经干枯公开