CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

一个有关算法的超难问题

楼主fadics(fadics)2004-11-03 22:21:26 在 C/C++ / 新手乐园 提问

要构造一个函数,有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

相关问题

  • 超级算法难题!!!
  • 超难度算法,up有分!!
  • 有关压缩算法
  • 有关算法问题
  • 小算法,不难
  • 是高手的进来看看!!超难的算法
  • 超级困难的字符串算法问题
  • 谁有关于24点的算法?
  • 一个有关算法的问题!!!
  • 有关巧算星期几的算法?

关键词

  • 函数
  • 相似
  • 含量

得分解答快速导航

  • 帖主:fadics
  • ywfscu
  • goodluckyxl
  • xteaj
  • xuzheng318
  • zblaoshu1979
  • Leaveye
  • jitian81411
  • ywfscu
  • Leaveye
  • xteaj
  • xteaj
  • xteaj

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo