前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用sql语句解决简单的数学题(r3笔记第19天)

利用sql语句解决简单的数学题(r3笔记第19天)

作者头像
jeanron100
发布2018-03-14 17:52:03
5790
发布2018-03-14 17:52:03
举报

今天在解决一个问题的时候,发现自己的数学水平严重下降,现在是光有思路没有答案,自己简单算了几个答案,还是不太满意。 最后尝试写了一个简单的pl/sql就解决了。 问题是这样的,一个系统的处理结果会提供两个参数,用这个参数来衡量系统的情况,一个我们设为pass_ratio,另一个设为fail_ratio. 我们假设需要投入时间分别设为x,y 就是返回pass_ratio需要的时间为x,返回fail_ratio的时间为y 需要从x,y中得到一个最优组合。 如果返回的结果为pass_ratio的值,会有一个公式 pass_ratio*x-x-y>0 如果返回的结果为fail_ratio的值,会有一个公式$fail_ratio*y-y-x>0 我写了下面的pl/sql来简单实现,还是用穷举法来做,在这个方面,电脑还是比人脑强大的多啊。 pass_ratio=$1 fail_ratio=$2 sqlplus -s n1/n1 <<EOF set serveroutput on set feedback off begin for x in 5..50 loop for y in 5..50 loop if($pass_ratio*x-x-y>0 and $fail_ratio*y-y-x>-2) then dbms_output.put_line($pass_ratio||' '||$fail_ratio||' '||x||' '||y||' pass:'||to_number($pass_ratio*x-x-y)*0.88||'-- fail:'||to_number($fail_ratio*y-y-x)*0.88); end if; end loop; end loop; end; / EOF 输出的结果如下: > ksh a.sh 1.5 3.1 1.5 3.1 23 11 pass:.44-- fail:.088 1.5 3.1 25 12 pass:.44-- fail:.176 1.5 3.1 27 13 pass:.44-- fail:.264 1.5 3.1 29 14 pass:.44-- fail:.352 1.5 3.1 31 15 pass:.44-- fail:.44 1.5 3.1 33 16 pass:.44-- fail:.528 1.5 3.1 35 17 pass:.44-- fail:.616 1.5 3.1 37 18 pass:.44-- fail:.704 1.5 3.1 39 19 pass:.44-- fail:.792 1.5 3.1 41 20 pass:.44-- fail:.88 1.5 3.1 43 21 pass:.44-- fail:.968 1.5 3.1 44 21 pass:.88-- fail:.088 1.5 3.1 45 22 pass:.44-- fail:1.056 1.5 3.1 46 22 pass:.88-- fail:.176 1.5 3.1 47 23 pass:.44-- fail:1.144 1.5 3.1 48 23 pass:.88-- fail:.264 1.5 3.1 49 24 pass:.44-- fail:1.232 1.5 3.1 50 24 pass:.88-- fail:.352 看输出的结果自己的大脑是算不出来的。还是写个程序来的方便。:)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2014-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档