标题: [数值计算] 请用这三个油瓶将10斤油平分成相等的两部分 [打印本页]
作者: curious 时间: 2009-6-28 08:58 标题: 请用这三个油瓶将10斤油平分成相等的两部分
假设有3个油瓶,容量分别为10,7,3(斤)。开始时10斤油瓶是满的,另外两个是空的,请用这三个油瓶将10斤油平分成相等的两部分。(初中组赛题)
[ 本帖最后由 curious 于 2009-6-28 15:01 编辑 ]
作者: 6589600 时间: 2009-6-28 16:47
这道体也太无聊了吧,平分后误差多大?3斤的瓶子壁上挂的油算不算?挥发掉的算不算?
直接往7斤的瓶子里倒就是了,感觉差不多就可以了,又不是发射导弹不用那么精细。
典型的脱离实际生活的题。有点貌似纯学问的酸腐
就象一池塘水放掉要5小时,加满要3小时,问进水管和排水管一起开,几小时可以加满池塘一样!出题的人脑子确实进水了
对楼主没有意见,纯是看见这么**的题就来气,如果手边真的连个称或标尺什么的都没有的话何必平分那瓶子油呢?
作者: yslyxqysl 时间: 2009-6-28 17:52
3+3+3-7+3=5
====================================
3L的方法就是以上的方法
[ 本帖最后由 yslyxqysl 于 2009-6-28 21:24 编辑 ]
作者: defanive 时间: 2009-6-28 18:18
只能说2L没有对数学的热情,或者说根本不懂得数学
3L貌似错了,意思是只有这三个油桶,不是三种油桶
下面每行就是每次操作,三列分别表示10、7、3的油桶
10 0 0
7 0 3 (10->3)
7 3 0 (3->7)
4 3 3 (10->3)
4 6 0 (3->7)
1 6 3 (10->3)
1 7 2 (3->7)
8 0 2 (7->10)
8 2 0 (3->7)
5 2 3 (10->3)
(看错楼号)
[ 本帖最后由 defanive 于 2009-6-28 18:52 编辑 ]
作者: FOR 时间: 2009-6-28 18:40
只能说2L没有对数学的热情,或者说根本不懂得数学
对2L没有意见,纯是看见这么评价这么经典的智力题就来气
三列分别表示10、7、3的油桶
0 7 3
3 7 0
3 4 3
6 4 0
6 1 3
9 1 0
9 0 1
2 7 1
2 5 3
5 5 0
作者: slore 时间: 2009-6-28 19:31
参考:cn-dos的那个分水的P
作者: terse 时间: 2009-6-28 20:11
- @echo off&setlocal enabledelayedexpansion
- set "Tab= "这里替换为TAB键
- :lp
- set _n=&set "var="
- set /p var=请输入三个杯的大小(空格分隔):
- set /p _n=输入你要分出的量:
- cls&call :nt %var%
- :nt
- if "%_n%"=="" echo;输入错误&goto lp
- if "%3"=="" echo;输入错误&goto lp
- if not "%4"=="" echo;输入错误&goto lp
- for /f "delims=0123456789 " %%i in ("%var%%_n%") do set var=var
- if "%var%"=="var" echo;输入错误&goto lp
- for %%i in (%var%) do set /a n+=1&set a!n!=%%i
- for /l %%i in (1,1,2) do (
- set /a z=%%i+1
- for /l %%j in (!z!,1,3) do (
- if !a%%i! gtr !a%%j! set/a a%%j=!a%%i!,a%%i=!a%%j!
- )
- )
- for /l %%i in (3,-1,1) do set a%%i=!a%%i!
- set/a a=a3,b=a2,c=a1,x=0,yb=a-b-c,n=0
- if %yb% lss 0 (set/a y=a-b)else set/a y=c
- echo;你要分出的量: %_n%
- echo;%Tab%%a% %Tab%%b%%Tab%%c%
- echo;&echo;初始%Tab%%a%%Tab%0%Tab%0&echo;
- set/a a1=a,a2=0,a3=0
- call:next %b% %c% %y%
- if %yb% lss 0 (set/a y=a-c)else set/a y=b
- echo;&echo;初始%Tab%%a%%Tab%0%Tab%0&echo;
- set/a a1=a,a2=0,a3=0,n=0
- call:next %c% %b% %y%
- pause&exit
- :next
- set/a n+=1
- if %a2% equ 0 (
- if %a3% equ %2 echo 不能分出你要的量&pause&exit
- if %a3% geq %3 (set /a a2=%1-a3+%3) else set/a a2=%1
- ) else (
- if %a3% leq %3 (
- set/a a2-=%2-a3,a3=%2
- if !a2! leq 0 set /a a3+=a2,a2=0
- )
- if %a3% geq %3 set a3=0
- )
- set/a a1=a-a2-a3
- echo 第%n%次%Tab%%a1% %Tab%%a2%%Tab%%a3%
- if /i "%flag%"=="f" set "flag="&exit/b
- if %a1% equ %_n% (set flag=f)else if %a2% equ %_n% (set flag=f)else if %a3% equ %_n% set flag=f
- goto next
复制代码
作者: 6589600 时间: 2009-6-29 15:25
重视4;5楼对我的批评
谁能告诉我那题在现实中可以应用到什么领域?
这种不客观不现实,纯粹为多熬死若干脑细胞的活动还是少些好。我不喜欢饶口令不能否定我对语言的热情与理解。3个瓶子来回倒腾了9到10次才完成。将简单问题复杂化难道真的是一种值的推荐的智慧?
解出该题对现实生活没有任何帮助。反有点为了什么而什么的浮燥。
摈弃空洞;追求务实;学以致用;理论联系实际!
作者: slore 时间: 2009-6-30 10:19
解出该题对现实生活没有任何帮助?
如果遇到某些问题,你觉得手头没用工具就嫌那个问题怎么怎么样。。。
其实靠点智慧比依赖工具好。
就像用3方一样,其实觉得有时候如果P能完成就用P……
尽管速度慢些……
3方不是更有效率?
你为什么要来这个论坛呢。。。
很多问题答案并不需要问出来才知道,自己留心就是了。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |