一个有关算法的超难问题
要构造一个函数,有4个自变量
设为f(x1, x2, y1, y2)
x1、x2取值范围为[0,1]
y1、y2取值范围为[0,2]
要求函数满足如下条件:
f相对任何自变量为单调增函数
f(x1, x2, 1, 1)=1
f(x1, x2, 0, 0)=0
f(x1, x2, y1, 0)<1
f(x1, x2, 0, y2)<1
if x1>x2 then f(x1, x2, 1, 0)>f(x1, x2, 0, 1)
问题点数:100、回复次数:22Top
1 楼ywfscu(乌雕)回复于 2004-11-03 23:09:50 得分 15
f(x1, x2, 0, 0)=0
f(x1, x2, y1, 0)<1
=>f(x1, x2, 0, 0)=f(x1, x2, 1, 0)=f(x1, x2, 2, 0)=0并没有单调增呀?是单调非减吧?Top
2 楼goodluckyxl(被人遗忘的狗)回复于 2004-11-04 08:34:55 得分 15
不是这么定义单调递增的吧
if( x1 > x2 )
f( x1, C, C, C ) > f( x2, C, C, C ) == true;
if( x1 > x2 )
f( C, x2, C, C ) < f( C, x1, C, C ) == true;
Top
3 楼xteaj(半桶水)回复于 2004-11-04 08:57:40 得分 5
留个脚印Top
4 楼xuzheng318(忧郁王子)回复于 2004-11-04 08:57:45 得分 5
顶一顶!Top
5 楼fadics(fadics)回复于 2004-11-04 08:57:52 得分 0
to ywfscu(乌雕):
看不懂你的推导,
f(x1, x2, y1, 0)<1
为什么能推出
f(x1, x2, 1, 0)=f(x1, x2, 2, 0)=0
小于1并不一定等于0啊?Top
6 楼zblaoshu1979(周博)回复于 2004-11-04 09:17:50 得分 5
markTop
7 楼fadics(fadics)回复于 2004-11-04 10:41:49 得分 0
条件提炼的不清楚,重写一下:
设函数为f(x1, x2, y1, y2)
x1、x2取值范围为[0,1]
y1、y2取值范围为[0,2]
要求函数满足如下条件:
f相对任何自变量为单调增函数
f(x1, x2, y1, y2)=f(x2, x1, y2, y1)
f(x1, x2, 1, 1)=1
f(x1, x2, 0, 0)=0
f(x1, x2, y1, 0)<1
Top
8 楼Leaveye(~枝)(男子无权便是钱)回复于 2004-11-04 10:57:35 得分 15
函数条件自相矛盾:
f相对任何自变量为单调增函数
f(x1, x2, 1, 1)=1
在此时,对于x1,x2,函数就是常值函数。不可能同时也是单调增。Top
9 楼fadics(fadics)回复于 2004-11-04 11:05:26 得分 0
大致凑和出来了,
大家再帮忙改改:
((1+y1)*(1+y2)-1) x1*y1+x2*y2
f()=------------------- * -----------------
2^n-1 x1+x2
n=2
满足了上述的1-4个条件,最后一个条件不满足。
f(x1, x2, y1, 0)<4/3而不是1
这样倒是可以用来编程了,反正只要y1=0或y2=0,就f*=3/4就是了,不过总是有点疑憾,哪位高手帮我改改。
谢谢Top
10 楼fadics(fadics)回复于 2004-11-04 11:15:49 得分 0
to Leaveye(~枝)(完全了解系统,也要实际量测性能)
我记得不太清楚了,好像这样的函数也可称为单调增函数的,不是严格单调增函数。
或许我搞错了。Top
11 楼fadics(fadics)回复于 2004-11-04 11:29:32 得分 0
不对
好像不满足条件1:
f不随x1、x2递增Top
12 楼jitian81411(太阳)回复于 2004-11-04 11:44:54 得分 5
数学没有学好呀!!Top
13 楼ywfscu(乌雕)回复于 2004-11-04 12:21:42 得分 15
f(x1, x2, 0, 0)=0,那么1<f(x1, x2, 2, 0)>f(x1, x2, 1, 0)=0
to ywfscu(乌雕):
看不懂你的推导,
f(x1, x2, y1, 0)<1
为什么能推出
f(x1, x2, 1, 0)=f(x1, x2, 2, 0)=0
小于1并不一定等于0啊?
Top
14 楼Leaveye(~枝)(男子无权便是钱)回复于 2004-11-04 13:12:07 得分 5
试试把 (y1/2)^(1/3) 和 (y2/2)^(1/2) 加进因子里。Top
15 楼fadics(fadics)回复于 2004-11-04 16:16:39 得分 0
to ywfscu(乌雕):
不好意思,还是不懂,这句话是什么意思?
f(x1, x2, 0, 0)=0,那么1<f(x1, x2, 2, 0)>f(x1, x2, 1, 0)=0
f(x1, x2, 1, 0)为什么=0
1<f(x1, x2, 2, 0)是<1不是>1
Top
16 楼fadics(fadics)回复于 2004-11-04 16:35:25 得分 0
非常感谢大家
原始问题是这样的:
求组合A与组合B的相似度,其中A包含A1、A2两种成份,B包含任意成份
f =>组合A与B的相似度
x1=>组合A中A1的含量
x2=>组合A中A2的含量
y1=>组合B中A1的含量
y2=>组合B中A2的含量
要求构造一个函数能表征此两者的相似程度
有些类似模式识别,但比较简单,因此我想用一个公式解决它。
谢谢大家,帮个忙!Top
17 楼xteaj(半桶水)回复于 2004-11-04 20:12:05 得分 5
f(x1,x2,y1,y2) = 1 - sqrt[((x1-y1)*(x1-y1)+(x2-y2)*(x2-y2))
/((x1+y1)*(x1+y1)+(x2+y2)*(x2+y2))]
Top
18 楼xteaj(半桶水)回复于 2004-11-04 20:13:27 得分 5
如果x1,x2,y1,y2全为零题目就没意义了,我没作这种情况判断,这种情形你自己定义一下吧。Top
19 楼xteaj(半桶水)回复于 2004-11-04 21:37:30 得分 5
f(x1,x2,y1,y2) = 1 - sqrt(((x1-y1)*(x1-y1)+(x2-y2)*(x2-y2))
/((x1+y1)*(x1+y1)+(x2+y2)*(x2+y2)))/*还是用C语言的习惯吧*/
Top
20 楼fadics(fadics)回复于 2004-11-05 10:47:23 得分 0
to xteaj(半桶水):
谢谢!
我试试Top
21 楼fadics(fadics)回复于 2004-11-05 12:40:50 得分 0
少了一个条件:
if y1!=0
{
f(x1, x2, y1, 0)>0
f(x1, x2, y1, 0)<1
}
重新整理如下:
要构造一个函数,设其为f(x1, x2, y1, y2)
x1、x2取值范围为[0,1]
y1、y2取值范围为[0,2]
要求函数满足如下条件:
f相对任何自变量为单调增函数
f(x1, x2, y1, y2)=f(x2, x1, y2, y1)
f(x1, x2, 1, 1)=1
f(x1, x2, 0, 0)=0
当y1!=0时,0<f(x1, x2, y1, 0)<1
Top
22 楼fadics(fadics)回复于 2004-11-05 13:00:20 得分 0
to xteaj(半桶水):
不行耶,f恒<1是不行的
可能我还是没说清楚,让我再想想,谢谢。
Top




