楼主: shiyongbin168
7543 5

求高手指教,我想用任意四个数计算24,加减乘除号和括号都可以用,如果能计算出24,输 [推广有奖]

  • 0关注
  • 0粉丝

初中生

23%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
48 点
帖子
7
精华
0
在线时间
19 小时
注册时间
2014-7-8
最后登录
2015-8-27

楼主
shiyongbin168 发表于 2015-5-25 17:36:39 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求高手指教,我想用任意四个数计算24,加减乘除号和括号都可以用,如果能计算出24,输出表达式。SAS程序改怎么写??

二维码

扫码加我 拉你入群

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

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

关键词:加减乘除 求高手 sas程序 表达式 程序 表达式

回帖推荐

zhengbo8 发表于3楼  查看完整内容

这个问题,我们研究过,可以参考: https://bbs.pinggu.org/thread-2857321-2-1.html

沙发
mcc812643 发表于 2015-5-25 18:07:06
看看这个符不符合:
data data1;
do i=1 to 70;
a=ranbin(1212,24,0.25);
b=ranbin(1212,24,0.25);
c=ranbin(1212,24,0.25);
d=24-a-b-c;
output;
end;
keep a b c d;
run;

藤椅
zhengbo8 发表于 2015-5-25 18:19:33
这个问题,我们研究过,可以参考:
https://bbs.pinggu.org/thread-2857321-2-1.html

板凳
shiyongbin168 发表于 2015-5-27 14:24:34
mcc812643 发表于 2015-5-25 18:07
看看这个符不符合:
data data1;
do i=1 to 70;
你的这个只是四个数的和等于24,我是想加减乘除都可以用来计算,只要能算出24就可以。不过还是非常感谢。

报纸
shiyongbin168 发表于 2015-5-27 14:25:17
zhengbo8 发表于 2015-5-25 18:19
这个问题,我们研究过,可以参考:
https://bbs.pinggu.org/thread-2857321-2-1.html
恩恩,就是想要这种结果,非常感谢。

地板
shiyongbin168 发表于 2015-5-29 21:59:58
zhengbo8 发表于 2015-5-25 18:19
这个问题,我们研究过,可以参考:
https://bbs.pinggu.org/thread-2857321-2-1.html
您好,我还有一个问题想请教一下。我随机生成一个数据集之后。按照邓贵大的那个方法跑不出来是为什么呢?程序如下;
data _null_;
        array op[4] $1. _temporary_ ('+','-','*','/');
        do i=1 to 4;
        do j=1 to 4;
        do k=1 to 4;
                slno = i-1 + 4*(j-1) + 16*(k-1);
                call symputx('A' || cats(slno), '(a' || op || 'b)' || op[j] || '(c' || op[k] || 'd)');
                call symputx('AA' || cats(slno), 'cats("(", a, "' || op || '", b, ")' || op[j] || '(", c, "' || op[k] || '", d, ")")');
                slno = slno + 64;
                call symputx('A' || cats(slno), '((a' || op || 'b)' || op[j] || 'c)' || op[k] || 'd');
                call symputx('AA' || cats(slno), 'cats("((", a, "' || op || '", b, ")' || op[j] || '", c, ")' || op[k] || '", d)');
                slno = slno + 64;
                call symputx('A' || cats(slno), '(a' || op || '(b' || op[j] || 'c))' || op[k] || 'd');
                call symputx('AA' || cats(slno), 'cats("(", a, "' || op || '(", b, ")' || op[j] || '", c, "))' || op[k] || '", d)');
                slno = slno + 64;
                call symputx('A' || cats(slno), 'a' || op || '((b' || op[j] || 'c)' || op[k] || 'd)');
                call symputx('AA' || cats(slno), 'cats(a, "' || op || '((", b, "' || op[j] || '", c, ")' || op[k] || '", d, ")")');
                slno = slno + 64;
                call symputx('A' || cats(slno), 'a' || op || '(b' || op[j] || '(c' || op[k] || 'd))');
                call symputx('AA' || cats(slno), 'cats(a, "' || op || '(", b, "' || op[j] || '(", c, "' || op[k] || '", d, "))")');
        end;
        end;
        end;
run;


************************随机生成一个数据集***************;
data temp1;
do i=0 to 50;
a=ranbin(1212,24,0.25);
b=ranbin(1212,24,0.25);
c=ranbin(1212,24,0.25);
d=ranbin(1212,24,0.25);
output;
end;
keep a b c d;
run;

%macro doit();
%local i;
data a;
   set temp1;
                solved='N';
                length answer $ 16;
                %do i=0 %to 319;

                        if round(&&A&i, 1e-10) = 24 then do;
                                solved='Y';
                                answer = &&AA&i;
                                output;
               
                        end;
              %end;
                         
                answer= ' ';
              

        stop;
run;
%mend;
%doit;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 18:34