编程求和1到100和

Linux中用while做随便输入n个数求和_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Linux中用while做随便输入n个数求和
来源:Linux社区&
作者:孙亚龙
Linux中用while做随便输入n个数求和
此文件为sum.sh
s=0i=1num=$#while [ $i -le $num ]doa=$1& & & & & #a为从外部输入的第一个数((s+=a))& & & #只加第一个数的值shift 1& & &
#往后移动一个数,使第二个位置移动后变成第一个数((i++))& & &
#控制循环次数done
echo "这$num个数的和为:$s"
在调用此程序代码页时输入n个数
sh& sum.sh 1 2 3 4 5 6 . . .
相关资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款苹果/安卓/wp
积分 919, 距离下一级还需 456 积分
权限: 自定义头衔, 签名中使用图片, 隐身
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡, 匿名卡, 抢沙发下一级可获得
权限: 设置帖子权限道具: 提升卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
餐具签到天数: 7 天连续签到: 1 天[LV.3]偶尔看看II
& && &&&附件的图片是要解决的问题,目标是对最下行的极大似然函数进行估计,其中的u,k,w是三个未知参数,需要估计出来。t是时间,T是最后一次事件发生的时间,t下标n是第n次事件发生的时间,t下标k是第k次事件发生的时间。左侧的对数求和项包括两个累加求和,现在尝试用了nlminb和optim两个函数,但得到的结果都不理想。我把这个式子直接解读为:
&&c&- sum(log(u+k*w*sum(exp(-1*w*m^2/t))))-u*T-k*sum(t*exp(w*m*(T-t)/t-1))
& && &&&红色的sum是想实现对每个t,求t(1)-t到t(n-1)-t的指数和;绿色的sum是对每个取值t求对数和;
& && &&&其中的m是各项t的tk-ti。
& && &&&这个式子是错误的,正确的式子似乎应该包括至少两个循环。并且如何在参数估计的公式里加入循环,我也不懂,网上的教程都是针对简单案例的,对解决我的问题帮助不大。我对R编程还不是很了解,希望能在大家的帮助下解决这个问题。谢谢!
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
(184.61 KB)
23:23:51 上传
才华是刀刃 辛苦是磨刀石
本帖最后由 zhgzhckc 于
10:12 编辑
# 创建一个向量T, T中包括m个时间,每个时间就是你帖子中的时间k
T &- c(all the values in vector t, the number of elements in vector t should be m, and m is the loop length in k)
inner.sum &- 0& &# 初始化inner.sum,用来对第二个for loop里的内容求和,也就是你贴子中红色的sum
outer.sum &- 0&&# 初始化outer.sum,用来对第一个for loop里的内容求和,也就是你帖子中绿色的sum
for (t in 1:n) {
&&for (k in 1:m) {
& & if (T[k] &= t) {
& && &next
& & } else {
& && &inner.sum &- inner.sum + w * exp(-w * (t - T[k]))&&#对红色sum累加求和
&&k0_inner.sum &- k0 * inner.sum&&
&&log_inner.sum &- ln(u + k0_inner.sum)&&
&&outer.sum &- out.sum + log_inner.sum&&#对绿色sum累加求和
print (outer.sum)
这是个大概的code,不包括你公式中的u*T-k*sum(t*exp(w*m*(T-t)/t-1))。
热心帮助其他会员
总评分:&论坛币 + 5&
学术水平 + 3&
热心指数 + 3&
信用等级 + 3&
zhgzhckc 发表于
# 创建一个向量T, T中包括m个时间,每个时间就是你帖子中的时间k
T非常感谢!我先试一下。
zhgzhckc 发表于
# 创建一个向量T, T中包括m个时间,每个时间就是你帖子中的时间k
T您好,按照您的思路,我调整了代码,已经可以用来解决问题了,非常感谢。下面是我用来做极大似然估计的代码,在运行小样本的时候,耗时还可以接受,n取200左右,需要5秒左右的响应时间可以出结果。
现在有新的问题,当n或者m较大,比如有3个时,有没有办法能够加速运算?我加入数据算了5个小时还没出现结果。。。
只能再向大神求教了!
LL&- function(x)
&&u&- x[1]
&&w&- x[2]
&&k&- x[3]
&&t&- with(Data, count)
&&inner.sum&-0
&&outer.sum&-0
&&extra.sum&-0
&&for (count in 1:33489) {
& & for (b in 1:33489) {
& && &if (t &= count) {
& && &&&next
& && &} else {
& && &&&inner.sum &- inner.sum + w * exp(-w * (count - t))
& && &&&extra.sum &- extra.sum + exp(w * t)-exp(-w * (4355 - t))& && &
& & k0_inner.sum &- k * inner.sum&&
& & log_inner.sum &- log(u + k0_inner.sum)&&
& & outer.sum &- outer.sum + log_inner.sum
& & k0_extra.sum &- k * extra.sum
& & c&- outer.sum-u*4355-k0_extra.sum& &
&&return(-c)
hist(count,freq=F)
lines(density(count))
Data.res&- nlminb(c(0.001,0.001,0.001),LL,
& && && && && && &lower=c(0.1,0.0001),
& && && && && && &upper=c(0.9,0.9999))
Data.res$par
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
论坛法律顾问:王进律师

我要回帖

更多关于 c语言求和程序 的文章

 

随机推荐