楼主: stormhoof
2932 11

如何生成随机数 [推广有奖]

  • 1关注
  • 4粉丝

硕士生

31%

还不是VIP/贵宾

-

威望
0
论坛币
29 个
通用积分
2.8502
学术水平
6 点
热心指数
3 点
信用等级
3 点
经验
4599 点
帖子
110
精华
0
在线时间
204 小时
注册时间
2012-5-18
最后登录
2023-8-3

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我想生成100个4位'0-Z'的随机数,例如'1A4P','234Y'等。请问如何用Mysql实现,SAS也可以,求各位大神帮忙下。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:生成随机数 随机数 MySQL 如何用 sql 如何

回帖推荐

bobguy 发表于9楼  查看完整内容

You can leverage SAS byte function by mapping random number to ascii number. 1-10 --> ascii table 48-57 11-36 --> ascii table 65 - 90 data demo; length string $4; array p[4]; do i=1 to 100; do j=1 to 4; p[j]=int(ranuni(123)*36)+1; p[j]=ifn(p[j]

本帖被以下文库推荐

沙发
webgu 发表于 2012-11-30 12:18:52 |只看作者 |坛友微信交流群
数字,字母,出现的次数和位置没有要求?
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

藤椅
stormhoof 发表于 2012-11-30 12:24:45 |只看作者 |坛友微信交流群
webgu 发表于 2012-11-30 12:18
数字,字母,出现的次数和位置没有要求?
没有要求,只需要得到的100个随机数不重复

使用道具

板凳
webgu 发表于 2012-11-30 12:45:16 |只看作者 |坛友微信交流群
  1. data demo(keep=string);
  2. dic="0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZ";
  3. array sub[4]  $;
  4. do i=1 to 100;
  5.     do j=1 to 4;
  6.            p=int(ranuni(0)*36)+1; /modified*/
  7.           sub[j]=substrn(dic,p,1);
  8.         end;
  9.         string=cats(sub[1],sub[2],sub[3],sub[4]);
  10. output;
  11. end;
  12. run;
复制代码
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
zhukovasky + 1 膜拜大神
stormhoof + 1 + 1 + 1 好的意见建议

总评分: 学术水平 + 2  热心指数 + 1  信用等级 + 1   查看全部评分

SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

报纸
stormhoof 发表于 2012-11-30 13:08:32 |只看作者 |坛友微信交流群
webgu 发表于 2012-11-30 12:45
非常感谢 ,有个问题,p的值可能是37,这样结果会少数字

使用道具

地板
webgu 发表于 2012-11-30 13:21:07 |只看作者 |坛友微信交流群
p=int(ranuni(0)*36)+1,  大意了,改一下。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

7
stormhoof 发表于 2012-11-30 13:38:46 |只看作者 |坛友微信交流群
webgu 发表于 2012-11-30 13:21
p=int(ranuni(0)*36)+1,  大意了,改一下。
已解决,非常感谢!

使用道具

8
wsyxh 发表于 2012-11-30 16:41:48 |只看作者 |坛友微信交流群
值得学习!

使用道具

9
bobguy 发表于 2012-12-2 01:25:29 |只看作者 |坛友微信交流群
webgu 发表于 2012-11-30 12:45
You can leverage SAS byte function by mapping random number to ascii number.

1-10   --> ascii table 48-57  
11-36  --> ascii table 65 - 90
   

data demo;
        length string $4;
    array p[4];

    do i=1 to 100;
        do j=1 to 4;
           p[j]=int(ranuni(123)*36)+1;
           p[j]=ifn(p[j]<=10, p[j]+47, p[j]+54);   
         end;
                 string=catt(byte(p1),byte(p2),byte(p3),byte(p4));
         output;      
        end;
    run;
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
bakoll + 3 + 3 精彩帖子
webgu + 1 + 1 + 1 学习了。

总评分: 经验 + 3  论坛币 + 3  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

10
bobguy 发表于 2012-12-2 03:41:07 |只看作者 |坛友微信交流群
webgu 发表于 2012-11-30 12:45
There are two functions can be used for simplification and effectness in this context.


%let n=300000;

data demo(keep=string);
    dic="0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZ";
    retain string  '    ';
    do i=1 to &n;
        do j=1 to 4;
               p=int(ranuni(123)*36)+1; /*modified*/
               SUBSTR(string,j,1)=char(dic,p);
            end;
    output;
    end;
    run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
webgu + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 23:20