x+y=xy

有一天,我拿这一本本子给两位同学看,问他们这本本子多少钱,一个说3块,一个说1.5块,但它实际上是4.5块。于是,我们发现,3X1.5=4.5,3+1.5=4.5。那么这样的数有哪些呢?
        我们可以列出方程"x+y=xy"变形可得"y=x/(x-1)",那么我们可以发现它的正整数解只有“x=2,y=2”,证明如下:
            当x=1时,1+y=y,不成立,舍去;
            当x=2时,可得“x=2,y=2”;
            当x>2时,x与x-1互质,y为小数,即无正整数解;
        如果x=0,则可得"x=0,y=0",那x为负整数呢?用类似的证明方法可得该方程无负整数解。
        如果只是整数解呢?因为当x为正整数时y不为负整数,当x为负整数时y不为正整数,所以整数解也只有以上两个。
        对于小数解,就没什么好讨论的了。 
        然后,是一些特殊情况:
            y的最大解:因为"y→ 1+1/(x-1)","1/(x-1)"最大为∞,所以Ymax→ +∞;
            y的最小解:因为"1/(x-1)"最小时"x→ 1-1/+∞","y→ -∞",所以Ymin→ -∞;

y的正数最小解:即x=+∞时,y→ 1+1/+∞;
            y的负数最大解:即x=1/+∞,y→ (1/+∞)/(1/+∞-1);
            x是整数时,y的正数最大解:其实就是"y=2"了,x为整数时"1/(x-1)"最大为1,所以y=2;
            x是整数时,y的正数最小解:"1/(x-1)"最小为1/+∞,y→ 1+1/+∞;
            x是整数时,y的负数最大解:即"x→ 1-1/+∞",所以y→ -1/+∞;
            x是整数时,y的负数最小解:即"x→ 1/+∞",所以y→ 1/+∞+1;
    另外,证明x与y总有一个不大于2:
        假定x<y,当x>2时,y*x>2y,y+x<2y,即y+x<y*x,所以x与y总有一个不大于2。
     完......

时间: 2024-11-05 14:39:02

x+y=xy的相关文章

gawk 文本处理入门用法详集

awk笔记 gawk - pattern scanning and processing language 报告生成器,可进行格式化输出,文本处理三剑客之一,是基于sed和grep功能的扩展 一般用法格式: awk [options] 'program' FILE...     program: /regular/{print} 语句之间用分号分隔    print,printf 选项: -F:指明输入时用到的字段    -v var=value:指明自定变量 awk运作方式: 逐行读入文本,并

Linux文本处理三剑客之GNU awk的使用

awk: Aho, Weinberger, Kernighan,报告生成器,格式化文本输出 有多种版本:New awk(nawk),GNU awk(gawk) gawk –模式扫描和处理语言 基本用法: awk[options] 'program' var=value file- awk[options] -f programfile var=value file- awk[options] 'BEGIN{ action;... } pattern{ action;... } END{ acti

UVALive 6560 The Urge to Merge

题目链接:传送门 题目大意:有一个 3*n 的矩阵,每个格子里有一个数,你可以选择相邻的两个格子合并成一个,并且权值变为两数乘积,若一个数未合并,权值变为0,求最后权值总和最大值. 题目思路:以 2^3 状态压缩. #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <algorithm> #include <cstring&g

bzoj1901(Zju2112 Dynamic Rankings)

题目链接:没有权限,进不去,题目也没法交,代码也不知道对不对,有好心人有权限帮忙交下吧QAQ 题目大意:带区间修改的第K小数 题目思路:有树套树,块状链表等优秀数据结构可以解决该题,当然我还是继续练习整体二分. 把修改操作拆开成两个操作 1.删除节点上的数 2.加入一个新数,然后更新的时候注意删除操作对树状数组的更新与插入操作相反,其他的没有难度 #include <iostream> #include <cstdio> #include <cstdlib> #incl

POJ2411(Mondriaan&#39;s Dream)

题目链接:传送门 题目大意:用1*2大小的砖块去铺满n*m大小的地面,有多少种方案 题目思路:因为1<=n,m<=11,并且砖块是1*2,故可以用二进制思想,也就是状态压缩DP,其中矩阵中为0的元素表示当前位置竖着放一块砖,而连着 两个1表示横着放一块砖(状态压缩真的很奇妙) #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <

hdu1829(A Bug&#39;s Life)

题目链接:传送门 题目大意:有n个昆虫,有m组关系,接下来m行表示两个昆虫性别不同,问是否有矛盾情况(同男同女) 题目思路:并查集的高级应用,开两倍数组大小,后n个数组表示和当前昆虫不同性别的集合 #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <algorithm> #include <cstring> #inclu

Subsets II [leetcode] 从获取子集的递归和循环方法说起,解决重复子集的问题

这一题和Permutation II很像,一个是排列一个是组合. 我们理清思路,从最基本的获取子集的方法开始分析: 获取子集总的来说可以用循环或者递归做,同时还可以根据数字对应的binary code得到. 例如s = {x,y,z}可以生成的组合有:x,y,z,xy,yz,xz,xyz,0 第一种思路: 1. 维护一个集合Set(i),包含s[0...i]可生成的所有组合 s[0...i+1]可以生成的所有组合为:Set(i) + (Set(i)+s[i+1]) void permutatio

Linux Shell编程四剑客-awk

awk[语法] awk [option] pattern action filename program:pattern+action 如果action中有多个语句,需要用;分隔eg:awk 'BEGIN{test="hello gawk";print test}'1.printprint item1,item2, ...    1)逗号分隔符    2)输出的各item可以是字符串,也可以是数值:当前记录的字段.变量或awk的表达式    3)如省略item,相当于print $0;

实现两数交换的几种方法

#实现两数交换的几种方法: - - 1.常见的方法(采用临时变量) int x=10; int y=20; int temp=x;//定义临时变量 x=y; y=temp; - 2.异或的方法 int x=10; int y=20; x=x^y; y=x^y;//y=x^y^y=x;即y=10; x=x^y;//x=x^y^x=y;即x=20; ``` - 3.自加的方法 int x=10; int y=20; x=x+y;//x=30; y=x-y;//y=30-20=10; x=x-y;//