开发者社区> 问答> 正文

我的提交结果验证程序

提交第二次就有了成绩,虽然成绩比较差。

用sas写的验证程序,对几个关键点作了验证,大家可以参考。

/*验证距离、载货量,卸货时间*/
%macro valid(submit_list);
data valid_list1;
    set &submit_list;
    by courier_id arrival_time_sub departure;
    length last_addr $5 last_depart 8;
    retain last_addr last_depart;
    if first.courier_id then do;
        last_addr="";
        last_depart=.;
        accu_amount=0;
    end;
    accu_amount+amount;
    min=arrival_time_sub-last_depart;
    output;
    last_addr=addr;
    last_depart=departure;
run;

data addr_lng;
    set lib3.spot(rename=(spot_id=addr)) lib3.site(rename=(site_id=addr))  lib3.shop(rename=(shop_id=addr));
    keep addr lng lat;
run;

proc sql;
    create table valid_list2 as
        select a.*,b.lng,b.lat,c.lng as lng2,c.lat as lat2
        from valid_list1 a,addr_lng b,addr_lng c
        where a.last_addr=b.addr and a.addr=c.addr
        order by courier_id,arrival_time_sub,departure
;quit;

data valid_list;
    set valid_list2;
    pai=3.1415926;
    s=6378137*arsin(sqrt(sin(pai*(lat-lat2)/180)**2+cos(pai*lat/180)*cos(pai*lat2/180)* (sin(pai*(lng-lng2)/180))**2));
    valid_min=round(s/250);
    if valid_min ne min or accu_amount>140 or
    (amount<0 and departure-arrival_time_sub ne round(3*sqrt(-amount)+5));
run;
%mend;

%valid(lib3.submit_list);

展开
收起
占飞 2016-07-18 22:25:03 5787 0
3 条回答
写回答
取消 提交回答
  • Re我的提交结果验证程序
    请问一下楼主,第九条出来 arrange 32 arrange后面的数字代表什么?


    仔细查看代码后问题已解决
    2016-08-10 19:18:39
    赞同 展开评论 打赏
  • Re我的提交结果验证程序
    惩罚时间没有考虑,如果我把每个快递员最后派送时间加上成绩比较好,但是提交结果显示成绩很不理想,不知道是不是大量惩罚时间的原因,可是我没有发现o2o订单超出时间窗的情况。
    2016-07-19 11:39:52
    赞同 展开评论 打赏
  • Re我的提交结果验证程序
    你18名呀,我22名,我也刚写了一个校验程序,感觉我们的节奏比较一致,在上海的话,可以一起出来吃个饭 :)


    2016-07-19 00:14:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载