excel数字-数字 怎么用公式求两个表格的结果?if

到底怎么使用IF函数的嵌套功能啊?
它一共有三行
Logical_test
Value_if_true
Value_if_false
我不明白在什么时候嵌套啊
是不是输入了前两行之后
就插入第二个IF啊
可这个时候好像什么也不能选啊
它的按键都是不可
到底怎么使用IF函数的嵌套功能啊?
它一共有三行
Logical_test
Value_if_true
Value_if_false
我不明白在什么时候嵌套啊
是不是输入了前两行之后
就插入第二个IF啊
可这个时候好像什么也不能选啊
它的按键都是不可选状态啊
希望你们能看懂我在说什么!
函数:“=IF(A,B,C)”,意思是“如果A,那么B,否则C。”
如“=IF(A1<60,"不及格","及格") ”,意思是“如果A1<60,那么‘不及格’,否则‘及格’”。
有时候,情况不是这么简单,比如及格的成绩中又要分为“及格”“良好”“优秀”三个等级,这时就可以在C中重复应用函数IF,正如你举的例子。实际上,“=IF(A,B,C)”中的A、B、C三处都可以再用函数IF。具体例子请看附件。
其他答案(共7个回答)
后再一个个填,那样很麻烦的。而且直接输入函数的好处还在于可以输入更复杂的数组公式,来解决特殊问题。
1、先认识函数语法:“=IF(要求的条件,满足条件的返回值,不满足条件的返回值)”。
2、第2层套嵌应在上述第2个逗号之后加IF(),第3层套嵌应在第2层套嵌括弧里的第2个逗号后添加IF()....最多可套嵌7层,最后的IF()括弧里必须是上述第1项内3个参数。
3、也可以这么叙述:“=IF()”函数,必须满足语法规定的三个参数,若有内部套嵌,其套嵌的“IF()”即为第三个参数;最多可套嵌7层。这样也可以进一步理解上述第2项的“第2层套嵌应在上述第2个逗号之后加IF()”的意思。如:
=IF(A1<60,"不及格",IF(A1<75,"及格",IF(A1<90,"良好","优秀"))),等等。
仅供你理解该函数时参考。
EXCEL里没有减法函数吧,如果你要使用减法可以直接用减号“-”
比如:A3=A1-A2的话,你只要输入公式:=A1-A2
假设A2为有数据的单元格
B2单元格中输入
=IF(A2&4800,IF(A2&5300,(A2-,(A2-4800)*5%),&#034;&#034;)
=IF(J6-,IF(J6-,(J6-3500)*3%,IF(J6-,(J6-5,I...
请问在excel中的“$&#034;是什么意思。“a1”、“$a1”和“$a$1”表示的意思各有什么不同,
1“$&#034;是绝对引用有意思,就是锁定的意思.$a1这就是锁定了a...
答: 足疗按摩盆有什么功能呢?
答: 这个应该是 暂时不收费的
答: 装WPS这个软件把
很好用 百度一下WPS试试看
B.20世纪上半叶,人类经历了两次世界大战,大量的青壮年人口死于战争;而20世纪下半叶,世界基本处于和平发展时期。
“癌症的发病率”我认为这句话指的是:癌症患者占总人数口的比例。
而B选项说是死亡人数多,即总体人数下降了,但“癌症的发病率”是根据总体人总来衡量的,所以B项不能削弱上述论证
目前我们的生活水平必竟非同以往.吃得好休息得好,能量消耗慢,食欲比较旺盛,活动又少,不知不觉脂肪堆积开始胖啦。                                                                                         减肥诀窍:一.注意调整生活习惯,二。科学合理饮食结构,三。坚持不懈适量运动。
   具体说来:不要暴饮暴食。宜细嚼慢咽。忌辛辣油腻,清淡为好。多喝水,多吃脆平果青香焦,芹菜,冬瓜,黄瓜,罗卜,番茄,既助减肥,又益养颜,两全其美!
有减肥史或顽固型症状则需经药物治疗.
如有其他问题,请发电子邮件:jiaoaozihao53@ .或新浪QQ: 1
如何洗衣服?也许有人会说,衣服谁不会洗啊?放到水里,加点洗衣粉洗就成了呗。是啊,说是这样说,可是洗衣服还有不少学问呢。我就说说我的“洗衣经”吧。
说起洗衣服,想想真有不少要说的呢。
首先要分开洗。内衣外衣、深色浅色要分开。个人和个人的衣物也尽量分开洗涤,这样可以防止不同人体间细菌和病菌的相互交叉感染,尤其是宿舍或者朋友的衣服尽量不要放置在一起洗。即使是自己的衣服,内衣和外衣也要分开洗。因为外衣接触外界的污染和尘土较多,而内衣将直接接触皮肤,为避免外界尘螨等对皮肤的不良入侵,内外分开洗涤是有科学道理的。不同颜色的衣物要分开洗涤,可将颜色相近的一同洗涤,浅色的一起洗涤,容易掉色的单独洗涤,避免衣物因脱色而损坏。另外,袜子和其他衣物不要一起洗涤。
其次,使用洗衣粉宜提浸泡一会。洗衣粉功效的发挥不同于肥皂,只有衣物适时浸泡才能发挥最大的洗涤效果。浸泡时间也不宜太长,一般20分钟左右。时间太长,洗涤效果也不好,而且衣物易褶皱。有人洗衣服时把洗衣粉直接撒在衣物上便开始搓揉洗涤,那样不能发挥最好的洗涤效果,对洗衣粉是一种浪费,当然,免浸泡洗衣粉出外。另外,冬季一般宜使用温水浸泡衣物。水温过低,不能有效发挥洗衣粉的洗涤效果,水温太高,会破坏洗衣粉中的活性成分,也不利于洗涤。
再次,衣物及时更换,及时洗涤。衣服要及时更换,相信道理大家应该都很清楚。可是,衣物换下后应该及时清洗,有人却做的不好。好多家庭喜欢将换的衣服积攒起来,每周洗一次,这样很不科学,容易使衣物上积聚的细菌大量繁殖,容易诱发皮疹或皮肤瘙痒症状。为了个人和家人的身体健康,还是勤快一点,把及时换下的衣物及时洗涤,这样,其实也费不了多少时间,也不至于最后要花费半天甚至更长 的时间专门来洗涤大量的衣物要节约的多。另外衣服穿的太久就比较脏,要花很大的力气洗涤才能洗干净,也容易将衣物搓揉变形,而影响美观和穿着效果。
洗衣服是个简单的小家务,也是生活中不可缺少的一件事,学问却很多,也许您的“洗衣心得”比这还要科学,还要多样,欢迎您 的指正~~
关于三国武将的排名在玩家中颇有争论,其实真正熟读三国的人应该知道关于三国武将的排名早有定论,头十位依次为:
头吕(吕布)二赵(赵云)三典韦,四关(关羽)五许(许楮)六张飞,七马(马超)八颜(颜良)九文丑,老将黄忠排末位。
关于这个排名大家最具疑问的恐怕是关羽了,这里我给大家细细道来。赵云就不用多说了,魏军中七进七出不说武功,体力也是超强了。而枪法有六和之说,赵云占了个气,也就是枪法的鼻祖了,其武学造诣可见一斑。至于典韦,单凭他和许楮两人就能战住吕布,武功应该比三英中的关羽要强吧。
其实单论武功除吕布外大家都差不多。论战功关羽斩颜良是因为颜良抢军马已经得手正在后撤,并不想与人交手,没想到赤兔马快,被从后背赶上斩之;文丑就更冤了,他是受了委托来招降关羽的,并没想着交手,结果话没说完关羽的刀就到了。只是由于过去封建统治者的需要后来将关羽神话化了,就连日本人也很崇拜他,只不过在日本的关公形象是扎着日式头巾的。
张飞、许楮、马超的排名比较有意思,按理说他们斗得势均力敌都没分出上下,而古人的解释是按照他们谁先脱的衣服谁就厉害!有点搞笑呦。十名以后的排名笔者忘记了,好象第11个是张辽。最后需要说明的是我们现在通常看到的《三国演义》已是多次修改过的版本,笔者看过一套更早的版本,有些细节不太一样。
考虑是由于天气比较干燥和身体上火导致的,建议不要吃香辣和煎炸的食物,多喝水,多吃点水果,不能吃牛肉和海鱼。可以服用(穿心莲片,维生素b2和b6)。也可以服用一些中药,如清热解毒的。
确实没有偿还能力的,应当与贷款机构进行协商,宽展还款期间或者分期归还; 如果贷款机构起诉到法院胜诉之后,在履行期未履行法院判决,会申请法院强制执行; 法院在受理强制执行时,会依法查询贷款人名下的房产、车辆、证券和存款;贷款人名下没有可供执行的财产而又拒绝履行法院的生效判决,则有逾期还款等负面信息记录在个人的信用报告中并被限制高消费及出入境,甚至有可能会被司法拘留。
第一步:教育引导
不同年龄阶段的孩子“吮指癖”的原因不尽相同,但于力认为,如果没有什么异常的症状,应该以教育引导为首要方式,并注意经常帮孩子洗手,以防细菌入侵引起胃肠道感染。
第二步:转移注意力
比起严厉指责、打骂,转移注意力是一种明智的做法。比如,多让孩子进行动手游戏,让他双手都不得闲,或者用其他的玩具吸引他,还可以多带孩子出去游玩,让他在五彩缤纷的世界里获得知识,增长见识,逐渐忘记原来的坏习惯。对于小婴儿,还可以做个小布手套,或者用纱布缠住手指,直接防止他吃手。但是,不主张给孩子手指上“涂味”,比如黄连水、辣椒水等,以免影响孩子的胃口,黄连有清热解毒的功效,吃多了还可导致腹泻、呕吐。
合肥政务区网络广告推广网络推广哪家公司比较好 一套能在互联网上跑业务的系统,被网络营销专家赞为目前最 有效的网络推广方式!
1、搜索引擎营销:分两种SEO和PPC,即搜索引擎优化,是通过对网站结构、高质量的网站主题内容、丰富而有价值的相关性外部链接进行优化而使网站为用户及搜索引擎更加友好,以获得在搜索引擎上的优势排名为网站引入流量。
良工拥有十多位资深制冷维修工程师,十二年生产与制造经验,技术力量雄厚,配有先进的测试仪器,建有系列低温测试设备,备有充足的零部件,包括大量品牌的压缩机,冷凝器,蒸发器,水泵,膨胀阀等备品库,能为客户提供迅捷,优质的工业冷水机及模温机维修和保养。
楼主,龙德教育就挺好的,你可以去试试,我们家孩子一直在龙德教育补习的,我觉得还不错。
成人可以学爵士舞。不过对柔软度的拒绝比较大。  不论跳什么舞,如果要跳得美,身体的柔软度必须要好,否则无法充分发挥出理应的线条美感,爵士舞也不值得注意。在展开暖身的弯曲动作必须注意,不适合在身体肌肉未几乎和暖前用弹振形式来做弯曲,否则更容易弄巧反拙,骨折肌肉。用静态方式弯曲较安全,不过也较必须耐性。柔软度的锻炼动作之幅度更不该超过疼痛的地步,肌肉有向上的感觉即可,动作(角度)保持的时间可由10馀秒至30-40秒平均,时间愈长对肌肉及关节附近的联结的组织之负荷也愈高。
正在加载...
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:12345666666666&主题:对44万行的Excel表格做COUNTIF,后将公式填充2万行,i7级别的CPU大约需要多长时间?
泡网分: 1.398
帖子: 1667
注册: 2011年12月
我的机器是win 7系统,Excel 2010;
CPU是E8600,内存4G DDR3 1333.
44万行数据都是整数,从5直到250000。
刚开始直接将公式填充44万行,结果CPU一直占用100%,但计算进度总是0。等了将近10分钟,没有一点进度,怕系统崩溃了,就把Excel关了,选了2万行进行填充试试看,结果填充这2万行的用了132秒。照这么算的话,整个44万行的计算至少需要48分钟,感觉时间太长了。如果换成i7 4770k、DDR3 1600或者接近配置的主机,不知道花费的时间大概是多少?另外Excel最多支持几个核心呢?
微信扫一扫分享
&浏览:2622&&回帖:58 &&
泡网分: 1.373
帖子: 1357
注册: 2011年08月
提示: 作者被禁止或删除 内容自动屏蔽,只有管理员和版主可见
泡网分: 26.203
帖子: 2675
注册: 2004年10月
估计是瞬间
本帖由安卓客户端发布
泡网分: 5.249
注册: 2010年04月
在i5-2410M上用c跑四线程,耗时452s。
泡网分: 1.398
帖子: 1667
注册: 2011年12月
Luxul 发表于
关于xian*xian vs 从数组中取平方值:
很有趣 ----
(在我的机器中)
用Java的话,从数组取值快不少;
用C++,从数组取值反而慢。。。从数组取值确实快!我希望弦长的范围可以不从1开始,这样在计算弦长值很大的数时可以缩小计算范围,比如我想验证800000,我可以选范围005,这样既能很快算出想要的结果,又能查看相近值的情况。为避免数组的下标混乱,我把弦的平方值和勾的平方值分开来放。跑了1-500000,这次很给力,672.7秒,E8600. 后面又尝试了直接把结果写到文件中,具体就不多说了。
想想这几天也真是蛋疼,为了这事折腾了这么久,有这精力还不如好好看看书,或许还能收获多点。这破玩意该告一段落了:
泡网分: 20.497
帖子: 4362
注册: 2008年12月
马六甲 发表于
不要怕 excel是个敢用就会出奇迹的软件。跑一个小时根本不是事。
不懂sql,不会玩matlab、Origin的小白,愣是用excel弄出了拙劣型matlab效果
泡网分: 30.063
帖子: 2258
注册: 2003年04月
jien217 发表于
我也发现了。昨天晚上我仔细对比了你贴的代码和我自己写的区别,寻找速度差距的原因。挨个把不相同的语句都替换掉,最后发现就是这个判断语句出的...
关于xian*xian vs 从数组中取平方值:
很有趣 ----
(在我的机器中)
用Java的话,从数组取值快不少;
用C++,从数组取值反而慢。。。
本帖由安卓客户端发布
泡网分: 1.398
帖子: 1667
注册: 2011年12月
Luxul 发表于
理论上这是绝对正确的。
这几天闲的蛋疼;出于好奇我写了个C++版粗略测试了一下。
结果。。。。
比Java版的慢多了
(没有耐心等500,000次运行完,保守估计慢了几倍到十几倍)
原因?这里有比较合理的解释:
(当然不排除自己学艺不精)
C++ 版针对CPU做了优化之后,效率提高了很多,但是,还是比Java版慢我也发现了。昨天晚上我仔细对比了你贴的代码和我自己写的区别,寻找速度差距的原因。挨个把不相同的语句都替换掉,最后发现就是这个判断语句出的问题。我之前用的是 if (gu % 1 == 0),计算1-50000需要30多秒,改成if (gu == Math.floor(gu)),时间立马缩短到10-11秒,真是相当无语。改后跑了1-500000的,用时1002秒。
刚看到你说改成if (gu == (long)gu),我试了1-50000需要6-7秒,1-500000需要708秒。而且前面说的时间都是用gu=Math.sqrt(xian*xian-gou*gou)&&硬乘出来的,并没有把平方值放到数组中。一开始看到你贴的图时就发现这个if条件的区别,可还是没想到差距这么大。
以下内容由 jien217 于
10:26 补充
另外,我在找出一组勾股数后,都把他们输出出来,在1-50000的范围是否输出大概有2秒的时间差别。如果在语句中使用“\t”,时间会比使用空格稍微多一点。
泡网分: 30.063
帖子: 2258
注册: 2003年04月
比计算速度,还是用C/C++快些。理论上这是绝对正确的。
这几天闲的蛋疼;出于好奇我写了个C++版粗略测试了一下。
结果。。。。
比Java版的慢多了
(没有耐心等500,000次运行完,保守估计慢了几倍到十几倍)
原因?这里有比较合理的解释:
(当然不排除自己学艺不精)
C++ 版针对CPU做了优化之后,效率提高了很多,但是,还是比Java版慢
if (gu == Math.floor(gu)) {
if (gu == (long)gu) {
之后,效率会提高很多。
本帖最后由 Luxul 于
14:05 编辑
泡网分: 1.398
帖子: 1667
注册: 2011年12月
口享口享 发表于
这个勾股弦三列数据是怎么弄出来的?只用公式能实现吗可以参考26贴的代码,这是求勾股数的最简单的代码了。求解过程需要涉及两个嵌套的循环语句,但是Excel公式好像没有循环语句的吧?VBA应该能够实现。我用的是java,然后把结果复制到Excel中。后面已经改进直接在java中产生结果了。
泡网分: 8.255
主题: 1080
帖子: 7292
注册: 2012年12月
如果用苹果最新最好的编程语言swift来做这个事,那必然是最快的。
泡网分: 28.818
帖子: 2008
注册: 2003年06月
干这种活,R应该是比较合适,不比excel难学。
泡网分: 28.549
帖子: 5333
注册: 2006年07月
jien217 发表于
问题已经解决了。
起因是这样:大家都知道勾股定理,对一个自然数组合,如3、4、5,满足3^2+4^2=5^2,那么它们就叫做一组勾股数。在学直角三角形的时候,3、4、5和6、8、10,以及5、12、13这三组一般都会提到。前两天忘了什么原因突然想知道其他的勾股数是多少,有多少组合,于是编了个小程序跑了一下,把结果复制到Excel里分析了。
我是以弦(直角边)长作为增长的基准的,发现对某一个确定的弦长n,有时会有很多个直角边组合x、y,满足x^2+y^2=n^2,比如:
7^2+24^2=25^2
15^2+20^2=25^2
16^2+63^2=65^2
25^2+60^2=65^2
33^2+56^2=65^2
39^2+52^2=65^2
所以我很好奇在我的电脑可计算的范围内,对一个特定的自然数n,能满足x^2+y^2=n^2的x、y组合的最大个数是多少。所以我把弦长从1增长到250000跑了一遍,发现有440012组勾股数。我把计算结果复制到Excel后,用COUNTIF算一下所得结果中一个弦长n有多少个勾股数组合。刚开始公式用得不好,我选了C2到C440012的绝对区域,对一个单元格的计算就需要查找440000个单元格;接着再对440000个单元格填充这个公式,那么计算量就是000=1.936^11,太大了,电脑自然跑不动了。后来发现弦长n是按规律增长的,数据只集中在表格的某个连续区域 ...
这个勾股弦三列数据是怎么弄出来的?只用公式能实现吗
泡网分: 28.343
帖子: 1454
注册: 2004年05月
不要怕 excel是个敢用就会出奇迹的软件。跑一个小时根本不是事。
不懂sql,不会玩matlab、Origin的小白,愣是用excel弄出了拙劣型matlab效果
本帖最后由 马六甲 于
09:25 编辑
泡网分: 17.053
帖子: 1392
注册: 2007年03月
好的算法能大大提高计算速度。虽然EXCEL只是一个工具,但能发挥EXCEL的极限也不是那么容易的。
自己写程序,速度要快,就要充分利用CPU,写多线程程序,也不是那么容易的。
对于只用一次的程序,有的时候我是宁愿多等CPU一会儿了,尽管知道可以优化。
泡网分: 21.415
帖子: 21893
注册: 2004年06月
jien217 发表于
不知道什么原因,我的计算量一大,只要对电脑进行别的操作,表格的计算进度就要归零,重新开始计算了。你的i5、23万行尚且这么多时间,我的还是双核,数据量也翻倍,那自然是慢很多啊。加上如前面所说,一不小心就重新开始算,这没法接受的。会不会是内存不够的原因?你的代码试了,确实很快,i3 4130的机器只要15分钟,一时间直感叹i3确实给力。
刚回来了又用E8600跑了一下,发现结果竟然也只有19分半钟,心立马凉了下来,原来这i3 跟几
年前的高端双核也快不了多少,时间才缩短了27%不到。。。???
1、解决一个问题。工具/算法都很重要。效率差别还是很大的
2、资源监视器,里面可以监控下cpu/硬盘/内存的占用情况。
你这种情况,我估计:
cpu主要看单核主频高低。所以你的i3 4130与E8600,差别不会很大。
硬盘/内存,在计算过程中可能都会频繁读写。
泡网分: 30.063
帖子: 2258
注册: 2003年04月
jien217 发表于
白天上班,用你的代码试了,确实很快,i3 4130的机器只要15分钟,一时间直感叹i3确实给力。
刚回来了又用E8600跑了一下,发现...
估计是无忌论坛的bug:
[. i .] 是论坛斜体的标记。。。
本帖由安卓客户端发布
泡网分: 1.398
帖子: 1667
注册: 2011年12月
比计算速度,还是用C/C++快些。哎,当初学C时学校用的是自己编的教材,稀里糊涂的,所以对C没有好感。。
泡网分: 1.398
帖子: 1667
注册: 2011年12月
skyworld78 发表于
44万行数据应该不算很多啊,我今常用23万行的表格,也用公式进行计算,大概出结果要10分钟左右。用的i5处理器,4G内存,2010版的excel,计算的时候能够用全处理器的4个核心。不知道什么原因,我的计算量一大,只要对电脑进行别的操作,表格的计算进度就要归零,重新开始计算了。你的i5、23万行尚且这么多时间,我的还是双核,数据量也翻倍,那自然是慢很多啊。加上如前面所说,一不小心就重新开始算,这没法接受的。会不会是内存不够的原因?
泡网分: 1.398
帖子: 1667
注册: 2011年12月
Luxul 发表于
在我的测试中是有分别的,不过比较小(计算50000 个弦,小于1%);另外,JVM不同,结果也可能不一样的。
附上代码:[code]
import java.util.ArrayL
import java.util.M
import java.util.TreeM
public class Main {
& & static TreeMap result = new TreeMap();
& & static int maxCombination = 0;
& & public static void main(String[] args) {
& & & & final int N_TESTING_XIAN = 500000;
& & & & int onePecent = N_TESTING_XIAN / 100;
& & & & long[] squares = new long[N_TESTING_XIAN + 1];
& & & & // Program start time
& & & & long startMilliSec = System.currentTimeMillis();
& & & & double totalRunTime = 0.0;白天上班,用你的代码试了,确实很快,i3 4130的机器只要15分钟,一时间直感叹i3确实给力。
刚回来了又用E8600跑了一下,发现结果竟然也只有19分半钟,心立马凉了下来,原来这i3 跟几
年前的高端双核也快不了多少,时间才缩短了27%不到。。。运行结果在下方图片。
不过你这代码里有个语法很奇怪,第一次看到这样使用:
line 22:squares = (long) Math.pow(i, 2);
这是个数组,直接这么操作的话会编译报错,我用的是Intellij IDEA。加个下标变量后就可以运行了。
老兄这程序相比我自己写的,一下子节省了好几倍的时间,真是好好给我上了一课,不得不服。
算法确实值得好好研究。
泡网分: 12.922
帖子: 2907
注册: 2008年03月
比计算速度,还是用C/C++快些。
泡网分: 21.884
注册: 2006年12月
44万行数据应该不算很多啊,我今常用23万行的表格,也用公式进行计算,大概出结果要10分钟左右。用的i5处理器,4G内存,2010版的excel,计算的时候能够用全处理器的4个核心。
泡网分: 30.063
帖子: 2258
注册: 2003年04月
jien217 发表于
但是很奇怪,里面有一句代码:
for (gou = 1; gou &=Math.sqrt(0.5*xian*xian) ; gou++)
这里每次判断都要计算一次,于是今天我把Math.sqrt(0.5*xian*xian)放到了循环外面的变量中,
但对运行速度似乎完全没有影响?在我的测试中是有分别的,不过比较小(计算50000 个弦,小于1%);另外,JVM不同,结果也可能不一样的。
附上代码:import java.util.ArrayL
import java.util.M
import java.util.TreeM
public class Main {
& & static TreeMap&Integer, ArrayList&String&& result = new TreeMap&Integer, ArrayList&String&&();
& & static int maxCombination = 0;
& & public static void main(String[] args) {
& & & & final int N_TESTING_XIAN = 500000;
& & & & int onePecent = N_TESTING_XIAN / 100;
& & & & long[] squares = new long[N_TESTING_XIAN + 1];
& & & & // Program start time
& & & & long startMilliSec = System.currentTimeMillis();
& & & & double totalRunTime = 0.0;
& & & & // Generate square values so that we can just lookup instead of compute
& & & & for (int i = 0; i &= N_TESTING_XIAN; i++) {
& & & && &&&squares = (long) Math.pow(i, 2);
& & & & }
& & & & // Find combinations of Gou-Gu-Xian
& & & & int progressPercentage = 0;
& & & & long percentStartMilliSec = System.currentTimeMillis();
& & & & float timeUsedForThisPercent = 0;
& & & & for (int xian = 1; xian &= N_TESTING_XIAN; xian++) {
& & & && &&&// Report progress
& & & && &&&if (xian % onePecent == 0) {
& & & & & & & & progressPercentage++;
& & & & & & & & timeUsedForThisPercent = System.currentTimeMillis()
& & & & & & & & & & & & - percentStartMilliS
& & & & & & & & totalRunTime = System.currentTimeMillis() - startMilliS
& & & & & & & & System.out.println(&Finished & + progressPercentage + &%\t + &
& & & & & & & & & & & & + timeUsedForThisPercent / 1000 + & sec.\t Total: &
& & & & & & & & & & & & + (int) totalRunTime / 60000 + & min &
& & & & & & & & & & & & + (int) totalRunTime / 1000 % 60 + & sec.&);
& & & & & & & & percentStartMilliSec = System.currentTimeMillis();
& & & && &&&}
& & & && &&&// Find Gou-Gu combinations for each Xian
& & & && &&&int nCombination = 0;
& & & && &&&double gouMax = Math.sqrt(Math.pow(xian, 2) / 2);
& & & && &&&double gu = 0.0;
& & & && &&&for (int gou = 1; gou & gouM gou++) {
& & & & & & & & // Optimization can be done using these techniques:
& & & & & & & & // http://stackoverflow.com/questions/295579/fastest-way-to-determine-if-an-integers-square-root-is-an-integer
& & & & & & & & gu = Math.sqrt(squares[xian] - squares[gou]);
& & & & & & & & if (gu == Math.floor(gu)) { // gu is integer
& & & & & & & && &&&nCombination++;
& & & & & & & && &&&
& & & & & & & && &&&// Add the combination to result set
& & & & & & & && &&&
& & & & & & & && &&&if (!result.containsKey(xian)) {
& & & & & & & & & & & & result.put(xian, new ArrayList&String&());
& & & & & & & && &&&}
& & & & & & & && &&&result.get(xian).add(&& + gou + &_& + (long) gu);
& & & & & & & && &&&if (nCombination & maxCombination) {
& & & & & & & & & & & & maxCombination = nC
& & & & & & & && &&&}
& & & & & & & & }
& & & && &&&}
& & & & }
& & & & // Program end time
& & & & long endMilliSec = System.currentTimeMillis();
& & & & totalRunTime = endMilliSec - startMilliS
& & & & System.out.println(&\nProgram finished in: & + totalRunTime / 1000
& & & & & & & & + & Seconds&);
& & & & // Print summary
& & & & System.out.println(&\nExamined Xian length 1 - & + N_TESTING_XIAN
& & & & & & & & + &\nMax combination is & + maxCombination + &:&);
& & & & // Print detailed result
& & & & printResult();
& & }
& & // Method to print the detailed result
& & // Can be customized for different output data
& & public static void printResult() {
& & & & ArrayList&Integer& maxCombinationXians = new ArrayList&Integer&();
& & & & for (Map.Entry&Integer, ArrayList&String&& entry : result.entrySet()) {
& & & && &&&int nCombinations = entry.getValue().size();
& & & && &&&if (nCombinations & 0) {
& & & & & & & & // Do stuff with Gou and Gu for the Xian if preferred
& & & & & & & & // ...
& & & & & & & & if (nCombinations == maxCombination) {
& & & & & & & && &&&maxCombinationXians.add(entry.getKey());
& & & & & & & & }
& & & && &&&}
& & & & }
& & & & System.out.println(&\nThese Xians & + maxCombinationXians
& & & & & & & & + &\nhave max combination of & + maxCombination);
& & }
}复制代码
泡网分: 3.752
帖子: 2672
注册: 2013年12月
你的运算,两万行和四十四万行的运算量不是简单的22倍的关系。应该是44万行的前2万行的运算量就是光有2万行的22倍。
用数据库吧,这样的数据量是小意思了。
泡网分: 1.398
帖子: 1667
注册: 2011年12月
Luxul 发表于
看到你说要一个多小时,我吓了一跳。于是胡乱写了一段代码试了一下。
我的机器有可能比你的快一些(也几经好几年陈了),并且我偷懒,只记录,而没有print勾股弦;
但是我计算到最大组合数的时间只需要半小时左右(500,000个弦值)。
因为平方是在循环内大量重复的运算,我把1 — 500,000的平方值保存在一个squareArray[ ]里面,然后用squareArray[ i ] 取得 i 平方的值,估计能省点运算时间。
代码比较乱,裸奔供斧正:昨晚关机的时候,发现计算开始时我在记事本上记下了开始时间,是21:09,后来就出去了一下。
运行结束时是10点多一点,估计1个小时左右吧。机器、算法应该都有影响。今天我用i3 4130的
机器跑0-50000的,用的时间是30秒左右,比E8600的短了6-10秒。
下面图片是昨晚我根据你的提示修改的代码,并没有把平方值放到数组中,可能因此有比较多的重复运算吧。
这个代码运行的结果就是31楼的图片。
之前是周五下午,上班时临时写的,只为得到结果,所以没考虑太多。后来也只是添加了一些统计用的代码而已。
但是很奇怪,里面有一句代码:
for (gou = 1; gou &=Math.sqrt(0.5*xian*xian) ; gou++)
这里每次判断都要计算一次,于是今天我把Math.sqrt(0.5*xian*xian)放到了循环外面的变量中,
但对运行速度似乎完全没有影响?
本帖最后由 jien217 于
11:36 编辑
泡网分: 30.063
帖子: 2258
注册: 2003年04月
jien217 发表于
Excel是很厉害,但是不是万能的。我曾经也对Excel很有好感,但是后来发现对大量的数据及计算,Excel还是比较难应付的。2010版所说最大支持104万行,可实际上行数多到一定程度,Excel就跑得很慢了。之前的计算中,当涉及计算时间比较长,并且CPU100%时,只要我对电脑进行其他操作,Excel就要把计算进程归零,重新开始计算了。这肯定是不能接受的啊。
参考上一楼,我对程序进行了改进,直接在java中输出统计结果。计算了弦长从1-500000的所有组合,发现了935188组勾股数。整个计算过程用了1个多小时。如果把这么多数据导入Excel再进行统计的话,估计到明天都出不来结果。而且输出控制台的输出结果只能显示2万多行,再多的前面就被覆盖掉了,复制到Excel非常麻烦。所以这种数据量确实要用更高效的工具。Jien 兄:
看到你说要一个多小时,我吓了一跳。于是胡乱写了一段代码试了一下。
我的机器有可能比你的快一些(也几经好几年陈了),并且我偷懒,只记录,而没有print勾股弦;
但是我计算到最大组合数的时间只需要半小时左右(500,000个弦值)。
因为平方是在循环内大量重复的运算,我把1 — 500,000的平方值保存在一个squareArray[ ]里面,然后用squareArray[ i ] 取得 i 平方的值,估计能省点运算时间。
代码比较乱,裸奔供斧正:
本帖最后由 Luxul 于
08:17 编辑
泡网分: 26.289
帖子: 17168
注册: 2008年12月
ChK 发表于
ACCESS的使用感受在很大程度上是像电子表格,入门的门槛非常低,楼主可以试试,用10年前配置的电脑处理百万行的数据都是小意思,工具不对,会...同意,SQL语句很好用
本帖由 iPhone3,2 客户端发布
泡网分: 1.398
帖子: 1667
注册: 2011年12月
fisherwei 发表于
关注楼主的结果,
我也想知道excel的极限在哪里。。。Excel是很厉害,但是不是万能的。我曾经也对Excel很有好感,但是后来发现对大量的数据及计算,Excel还是比较难应付的。2010版所说最大支持104万行,可实际上行数多到一定程度,Excel就跑得很慢了。之前的计算中,当涉及计算时间比较长,并且CPU100%时,只要我对电脑进行其他操作,Excel就要把计算进程归零,重新开始计算了。这肯定是不能接受的啊。
参考上一楼,我对程序进行了改进,直接在java中输出统计结果。计算了弦长从1-500000的所有组合,发现了935188组勾股数。整个计算过程用了1个多小时。如果把这么多数据导入Excel再进行统计的话,估计到明天都出不来结果。而且输出控制台的输出结果只能显示2万多行,再多的前面就被覆盖掉了,复制到Excel非常麻烦。所以这种数据量确实要用更高效的工具。
泡网分: 1.398
帖子: 1667
注册: 2011年12月
Luxul 发表于
貌似你只需要加两个变量:
在主程序加一个maxCombinations //最大勾股组合数
在外层的for加一个combinationCounter //记录每个弦数值下,勾股的组合数
再做相应的赋值和counter reset多谢老兄提供的思路。程序我改进了一下,可以直接输出最大勾股数组合对应的弦长了:
泡网分: 20.406
帖子: 2394
注册: 2006年07月
ChK 发表于
ACCESS的使用感受在很大程度上是像电子表格,入门的门槛非常低,楼主可以试试,用10年前配置的电脑处理百万行的数据都是小意思,工具不对,会...安卓上要是有这类数据库应用就好了,最好是为触屏优化过的。电子表格有些场合用起来很不舒服
本帖由安卓客户端发布
泡网分: 44.472
帖子: 2974
注册: 2001年09月
干这事,最好学习一门编程语言
本帖由 smartisan 客户端发布
&版权所有:&&&&
网站投诉举报电话: | 网站举报邮箱:

我要回帖

更多关于 在excel中如何编程 的文章

 

随机推荐