这个程序怎么运行了没有结果啊,高手们帮忙看一下,谢谢

pitter2006 2007-07-02 10:44:52
#include <iostream.h>
#include <math.h>

double func(double b[])//找到数组中最小的数
{
double temp;
for(int i=0;i<8;i++)
for(int j=0;j<=i;j++)
{
if(b[i]<b[j])
{
temp = b[i];
b[i] = b[j];
b[j] =temp;
}
}
return b[0];
}
double yy(double ti[],double arf,double sita)//为了计算sita的先求yy的值
{
double y;
double sum1=0;
double sum2=0;
double sum3=0;
for(int i=0;i<8;i++)
sum1+=pow((ti[i]-sita),(arf-1));
for(int j=0;j<8;j++)
sum2+=pow((ti[j]-sita),arf);
for(int k=0;k<8;k++)
sum3+=1/(ti[k]-sita);
y = sum1-(arf -1)/(8*arf)*sum2*sum3;
return y;
}
void main ()
{
double a[8]={181,200,196,205,186,211,194,210};
double sita,y1,y2,y3;
double a1=0;
double a2=func(a);
y2 = yy(a,10,a2);
y1 = yy(a,10,a1);
sita = 0;
y3 = yy(a,10,(a1+a2)/2);
while(fabs(y1)>1e-6)
{
if(y1*y3>0)
a1=(a1+a2)/2;
else
a2=(a1+a2)/2;
y1 = yy(a,10,a1);
y2 = yy(a,10,a2);
y3 = yy(a,10,(a1+a2)/2);
sita = (a1+a2)/2;
}
cout<<sita;
}
sita是yy函数的零点,通过二分法求sita,谢谢了!
...全文
125 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pitter2006 2007-07-02
  • 打赏
  • 举报
回复
谢谢你啊!!
mwlabxj 2007-07-02
  • 打赏
  • 举报
回复
首先,找数组中最小的数,你用的方法太复杂,好像并不是出于什么特殊目的,简单的功能就该用简单方法,
temp=a[0];
for(i=1;i<8;i++){
if(temp>a[i])
temp=a[i];
}
这样更简洁。
其次, for(int k=0;k<8;k++)
sum3+=1/(ti[k]-sita);
这一段你有没有考虑,sita是ti[k]中最小的一个数,也就是说有可能ti[k]-sita=0,那么这个公式就有问题,除0溢出。
其他没看出来有什么问题。
hinkpad Marker Slic2.1自助手册 前言:以下教程参考了众多高手的帖子。对于这样的主题之所以再次发布,只是因为很多类似主题的帖子,总是有些语焉不详,让众多会员不甚了了,无法动手。我也是费了一些周折才真正搞明白,并实施成功。附件包含了必备的slic2.1和工具!希望这个对大家有帮忙。教程中所提到的方法和工具,仅供参考,本人不承担任何可能的风险和法律责任。谢谢! 1、如何Marker? 注意:刷过破解版bios的朋友,务必先刷成官方bios!已经是官方bios的略过此步。在这里还是假设你不是太菜鸟,知道怎么刷bios。 1)首先确定自己Thinkpad机型对应的slic2.1型号(后缀为.bin的文件格式)。打开Lenovo网站搜寻对应型号的bios下载页,比如看到T400 2676的bios的信息如下: 支持操作系统: Windows 7 版本: 3.09-1.03/3.10-1.03 发布时间: 2009-10-17 文件名称为:7uuj35us.exe X200的Bios文件名称以6d打头,所以T400 2676对应的Slic2.1为文件名里含有6d的文件,比如TP-6d.bin。 2)使用SLIC_Dump_ToolKit查看自己的BIOS是否有原生的slic并选择正确的slic文件:有原生Slic2.0的用户,注意选择182 bytes的Slic2.1表(本人x200 7457a78用的就是182 bytes的slic2.1表)。无Slic的用户,注意选择374 bytes的Slic2.1表。 如果不确定有没有原生slic,无所谓,182 bytes的和374 bytes都试试吧,成功了的就是对的(如果选错了型号是不能marker的,没有风险)。 3)使用UltraISO(请自行下载)将dos.img镜像写入U盘,即制作好了启动盘。此时U盘中有三个文件: DRVSPACE.BIN IO.SYS MSDOS.SYS 4)把Marker.exe复制到已经制作好的USB启动盘中。 5)把前面确认的对应自己Thinkpad型号的slic2.1文件,比如本人的x200 7457a78的slic2.1文件为tp-6d.bin,将这个文件复制到已经制作好的可启动U盘中。这时你的U盘里面应该有下面这五个文件,一切准备就绪: DRVSPACE.BIN IO.SYS MSDOS.SYS Marker.exe tp-6d.bin 6)重启电脑按F12选择用U盘启动进入DOS,执行如下命令(注意空格和将命令行中的文件改成和你的slic2.1文件名称一样,在这里是本人的Slic2.1文件为tp-6d.bin): marker.exe /w:tp-6d.bin /z 执行速度快如闪电! 如果成功则显示“Programming Done!!!”“**** Success: Process completed (00) ****”等信息,恭喜你! 如果失败则会提示slic型号不对等信息,这时需要重复步骤2)-5)确认更新正确的slic2.1文件,再继续努力。 2、成功marker slic2.1后重启进入Windows 7,可以使用SLIC_Dump_ToolKit查看Slic2.1信息。 如果你安装的就是对应的Lenovo OEM版,则重启后自动激活。 如果没有自动激活(比如你安装的是MSDN版),则导入证书和系列号即可激活。操作如下(现在网上有高手制作了证书和系列号自动导入程序,下载来用就可以了,不用像下面这么麻烦,所以建议你别看了): 1)点击桌面左下角Windows图标启动开始菜单,在“搜索程序和文件”的空行里面敲入cmd,在出现的程序栏上上面的cmd.exe点击鼠标右键选择“管理员身份运行”启动命令行模式。 2)在出现的命令行内输入slmgr.vbs -ilc 证书路径\证书文件名,例如slmgr.vbs -ilc D:\lenovo.xrm-ms,稍等片刻系统就会有提示导入成功。这里假设Lenovo证书的存放路径和名称如上。 3)输入slmgr.vbs -ipk 22TKD-F8XX6-YG69F-9M66D-PMJBM 来导入系列号(这里是Lenovo泄漏的旗舰版OEM系列号),成功后输入slmgr.vbs -ato。 4)检查是否己正确激活。 3、尽情享受正版的快乐吧。 4、注意事项 Marker现在已知可以使用在X200s/t,T400/500,R400上,其他机型未知。不可用在其他品牌机型上! ***如果你只是想刷bios享受正版Windows 7,那你看到这里就可以了。如果你想了解关于Slic和marker的知识,继续看下面的简单介绍。要想深入了解,那多上bios之家吧!*** 5、什么是SLIC。 SLIC是Software Licensing Internal Code的英文缩写,即软件许可内部码,是微软的操作系统激活技术。 6、什么是Marker? 简单来说Marker是在DOS下运行的16位BIOS Flash软件。和一般的BIOS更新程序不同,marker仅能写入BIOS的特殊区域(既SLIC表)。 7、为何建议选择Marker而不选择修改版的BIOS? 1)修改版的BIOS缺点: 修改版的BIOS由原厂BIOS经爱好者修改而来,未经有效的验证,有较高的刷机风险。修改版的BIOS仅仅是通过修改SLIC 的方式将slic2.1加入BIOS某个非正确的空白模块。在下次刷入原厂BIOS后,修改的Slic2.1会消失,造成激活失效。 2)Marker的优势: 由一个简单的DOS flash程序执行,速度极快,选错slic版本,将不会刷新,几乎没有刷机失败风险。Slic2.1将会永久的固化在正常的BIOS模块内,升级BIOS不会丢失Slic2.1。 3)Marker的限制: Marker必须使用经过签名的、验证的、原厂的slic文件才能刷入。这就意味着必须有原厂的有效slic文件才行。对X200/T400等这一代的Thinkpad来说,这个不是问题,因为已经有预装Windows 7的机型,从这些机型导出slic2.1即可共享。
BMP magic是一个新型的加密软件,你可以用它把任何格式的windows文件存入到一幅24位真彩色的BMP图片中,神奇的是这幅内部藏有文件的图片的尺寸、大小不变! 在接下来的文字中您会了解到关于这个新版软件的强大功能与安全算法:在5.0B版本中:★支持jpg格式! 在本版本中,新加入了对jpg格式的自动转换——如果您打开的是一幅jpg图片,程序会自动转换为bmp格式来处理,不用事先再用其它工具转换。★可以隐藏比图片自身大若干倍的文件! 您要相信自己的眼睛:一幅200K的24位BMP,利用本程序成功地将一个1474.56K=1.44兆的WPS文件隐藏于其中!而且这还不是软件创的最高记录。★通过一系列优化算法,使隐藏文件的图片画质得到最大程序的提升! 一幅图片在最大限度上隐藏外部文件后,画质依然清晰,色彩过渡仍很平滑,基本不存在色块问题。这种算法理论上还未达到极限,后续版本中还将继续改进算法使画质进一步提升。★引领数据压缩领域新潮流! 目前最先进的压缩工具对文本文件的压缩率也不过90%,然而利用本软件将图片隐藏文件后再压缩,却有望突破这一“极限”压缩率!基于此种组合压缩法,阁下的160G海量硬盘是否可以多出几十G呢?★独创的255位动态密钥加密术让数据隐藏的更安全! 传统加密法采用常量作加密密钥不少解密高手正是利用这一普遍规律分析加密算法从而成功将所谓的“安全数据”解密。本软件自这一版本起采用最前沿的“动态密钥加密算法”使被加密的数据安全性能有了一个“质”的飞跃!也就是说,即使您用同一幅图片隐藏同一个文件,每次生成的新图片内部数据绝对是不一样的!★采用多种加密方式加密数据,无须担心数据传递过程的“中介者”! 新版软件中采用六种方式加密数据: 1.日期时间锁定; 2.外部软件锁定; 3.程序版本识别; 4.机器硬件锁定; 5.操作系统识别; 6.解密口令锁定。 这六种方式可以任意组合,现分别说明如下: A.采用“日期时间”限制时,您可以输入自1985-2099年间的任何时间(精确到秒),这样数据被加密后,解密者如不是在设定的时间企图解密将得不到正确的隐藏文件; B.采用外部软件锁定时,你可以选择你机器上有的任何一个文件做为锁定用程序,对方在解密时,必要性要用同样的文件来做为密匙才能解开里面的密文(你用的是什么文件,在“图文信息”中是查看不到的!)。 C.程序版本识别,也就是说,你用某一个版本的BMP magic加密了文件后,用其它版本的BMP magic是无法解开里面的密文的,换句话说,就是我们开发的程序没有设置“向下兼容”; D.机器硬件锁定,你可以用你机器上的任何一个驱动器作为锁定密匙,包括硬盘逻辑分区,光盘,软盘,这样,除了在你的硬件环境中,别人将无法得到正确的加密文件; E.操作员识别,你选用“操作系统识别”后,就只能在相同的操作系统下解开密文,并且,在“图文信息”中不会标识出系统类型; F.采用“用户口令”限制时,您可以输入最长255位的密码(可以是您有办法输入其中的任何字符,当然有中文啦...)。★在图片中的任何添加数据(包括添加的文件头部信息)均用不同密钥加密,如不利用本软件根本提取不到任何有用的信息!这使数据的安全保密性得以极端的提高!★图片中可以像电子邮件一样附加“发送人”、“接收人”、“主题”及留言信息,使加密后的图片交互性更强,十二分的人性化设计!...... 共享软件时代,加密软件数不胜数,相信阁下在看到上面的文字后会在选择加密软件方面有一个成熟的理念,同时我们也相信,这个最新版的软件会带给您生活与工作上的方便与惊喜!********************************************************* 在您使用本软件之前,希望事先能与阁下达成下面的协议: 1.本软件纯属利用娱乐创意编写,参与软件编写的所有人员均不会对您由于使用本软件所造成的一切后果与损失负责! 2.本软件加密技术相当先进,属于“一次性加密”,故软件作者不会接受任何人员提出的“数据抢救”询求,请阁下自我保重! 3.本软件的所有流行版本严禁任何组织或个人对其进行反编及商业炒作或以作者名义营利,但欢迎在不影响版权时传播与发布! 如果用户使用本软件,就表示默认上述许可,否则请销毁本软件! ********************************************************* 经测试,本软件在Window9x/Me/NT/2000/XP运行稳定并无不安全因素敬请放心使用并烦劳扩充测试,谢谢! 感谢众多朋友帮忙测试软件!

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧