这个有点意思。我写了个长整的数据类型,定义了加减乘除运算,然后验算了一下文章给出的解,结论是他的结果是对的(跟没说一样)。我的长整类型是个数组,第一个数是正负号,第二个数是个位,第三个数是十位,以此类推。先新建一个longInteger.m,把后边的代码存进去,然后运行下边的主程序,你会发现a*(a+b)*(a+c)+b*(b+a)*(b+c)+c*(c+a)*(c+b)=4*(a+b)*(a+c)*(b+c)是成立的,等号两边是241位的数。
lI=longInteger(); a=lI.new('154476802108746166441951315019919837485664325669565431700026634898253202035277999'); b=lI.new('36875131794129999827197811565225474825492979968971970996283137471637224634055579'); c=lI.new('4373612677928697257861252602371390152816537558161613618621437993378423467772036'); %a*(a+b)*(a+c)+b*(b+a)*(b+c)+c*(c+a)*(c+b)=4*(a+b)*(a+c)*(b+c) left=lI.add3(lI.mult3(a,lI.add(a,b),lI.add(a,c)),lI.mult3(b,lI.add(b,a),lI.add(b,c)),lI.mult3(c,lI.add(c,a),lI.add(c,b))); right=lI.mult4(lI.new('4'),lI.add(a,b),lI.add(a,c),lI.add(b,c)); lI.minus(left,right)
如果关注的人多且我能算出来,我就告诉大家那个 和 是怎么确定的
我读了两篇论文,基本知道怎么弄的了。好奇宝宝请猛戳这里看原文。
先说代码怎么玩。前边的常整数longInteger.m更新了,另外我又写了几个数据类型,代码贴在最后边,先把它们保存称单独的文件。:
长分数longFrac.m,两个长整型数,第一个是分子,第二个是分母。支持加减乘除,可以自动约分。
长矩阵 longMatrix.m,元素都是长分数,是个结构体,记录长宽m和n,数据存成一列,先是第一列再第二列再第三列。没写加减乘除只写了逆矩阵。
长多项式longPoly.m,是个结构体,包括.power和.coeff。.coeff是长分数系数,.power是变量的指数。每一行是一项。这个结构体可以加减乘除,自动合并同类项,可以把长分数代入里边的变量,可以把另一个多项式代入里边的变量。
再说文章里介绍的方法:
1 这个方程是 ,找到它过一个点P(a,b,c)=[-1,1,0]。
clear lI=longInteger(); lF=longFrac(lI); lM=longMatrix(lF); lP=longPoly(lF); a=lP.new({[1 1],[1 1]},1,1); b=lP.new({[1 1],[1 1]},2,1); c=lP.new({[1 1],[1 1]},3,1); x1=lP.mult3(a,lP.add(a,b),lP.add(a,c)); x2=lP.mult3(b,lP.add(b,a),lP.add(b,c)); x3=lP.mult3(c,lP.add(c,a),lP.add(c,b)); right=lP.mult4(lP.new({lI.new('4'),lI.new('1')},0,0),lP.add(a,b),lP.add(b,c),lP.add(c,a)); left=lP.add3(x1,x2,x3); equ0=lP.minus(left,right); equ0_string=lP.display(equ0)
2 求这条曲线在P点上的切线,这道题求出来是Z=6a+6b-c。
P={[-1 1],[1 1];[1 1],[1 1];0,[1 1]}; lineZ=lP.new({0,[1 1]},0,0); for i=1:3 diff1=lP.diff(equ0,i); diff1=lP.subtitConst(diff1,[1 2 3],P); lineZ=lP.add(lineZ,lP.mult(diff1,lP.minus(lP.new({[1 1],[1 1]},i,1),lP.new(P(i,:),0,0)))); end lineZ_string=lP.display(lineZ)
3 把c=6a+6b代入F,你会得到 91*(a+b)^3。这是三个根摞在一起的情况,还有可能是两个重根加一个单独根,跟这道题没关系。
4 三个重根的情况下就在Z上F外随便找一个点Q,我找的是Q=[1,1,12],只要在Z上且不在F上就行,对结果没影响的。
5 然后再更随便的找一个P3=[1 0 0],组成一个变换矩阵 ,可以把abc坐标系变成def坐标系
Q={[1 1],[1 1];[1 1],[1 1];[1 2 1],[1 1]}; P3={[1 1],[1 1];0,[1,1];0,[1 1]}; M1=lM.zeros(3,3); M1.values([1 4 7],:)=Q; M1.values([2 5 8],:)=P; M1.values([3 6 9],:)=P3; M1inv=lM.inv(M1); d2abc=lP.add3(lP.new(M1inv.values(1,:),1,1),lP.new(M1inv.values(2,:),2,1),lP.new(M1inv.values(3,:),3,1)); e2abc=lP.add3(lP.new(M1inv.values(4,:),1,1),lP.new(M1inv.values(5,:),2,1),lP.new(M1inv.values(6,:),3,1)); f2abc=lP.add3(lP.new(M1inv.values(7,:),1,1),lP.new(M1inv.values(8,:),2,1),lP.new(M1inv.values(9,:),3,1)); a2def=lP.add3(lP.new(M1.values(1,:),4,1),lP.new(M1.values(2,:),5,1),lP.new(M1.values(3,:),6,1)); b2def=lP.add3(lP.new(M1.values(4,:),4,1),lP.new(M1.values(5,:),5,1),lP.new(M1.values(6,:),6,1)); c2def=lP.add3(lP.new(M1.values(7,:),4,1),lP.new(M1.values(8,:),5,1),lP.new(M1.values(9,:),6,1)); equ1=equ0; equ1=lP.subtitPoly(equ1,1,a2def); equ1=lP.subtitPoly(equ1,2,b2def); equ1=lP.subtitPoly(equ1,3,c2def); idx1=sum(equ1.power(:,4:6)==[3 0 0],2)==3; %set coeff of d^3 to 1 frac1=equ1.coeff(idx1,:); equ1=lP.mult(equ1,lP.new(frac1(1,[2 1]),0,0)); equ1_string=lP.display(equ1)
6 上一步算出来的equ1_string='+d^3-d^2*f*285/364+e^2*f*3/364-d*f^2*9/182-e*f^2*3/364+f^3*1/728',里边没有e^3项只有e^2项。接下来再把e^1项消掉就变成那个著名的Weierstrass形式了。
idx1=sum(equ1.power(:,4:6)==[0 2 1],2)==3; %make coeff of e^2*f to 1 f2g=lP.new(equ1.coeff(idx1,[2 1]),7,1); f2g=lP.neg(f2g); g2f=[]; g2f.coeff=lF.validate(f2g.coeff(1,[2 1])); g2f.power=[0 0 0 0 0 1 0]; g2abc=lP.subtitPoly(g2f,6,f2abc); equ2=lP.subtitPoly(equ1,6,f2g); equ2_string=lP.display(equ2) idx1=sum(equ2.power(:,[5 7])==[1 2],2)==2; %take out e*g term frac1=lF.mult(equ2.coeff(idx1,:),{[1 1],[1 2]}); e2h=[]; e2h.coeff=[{[1 1],[1 1]};frac1]; e2h.power=[0 0 0 0 0 0 0 1;0 0 0 0 0 0 1 0]; h2e=[]; h2e.coeff=[{[1 1],[1 1]};lF.neg(frac1)]; h2e.power=[0 0 0 0 1 0 0 0;0 0 0 0 0 0 1 0]; equ3=lP.subtitPoly(equ2,5,e2h); equ3_string=lP.display(equ3) h2abc=lP.subtitPoly(h2e,5,e2abc); h2abc=lP.subtitPoly(h2abc,7,g2abc); d2abc_string=lP.display(d2abc) g2abc_string=lP.display(g2abc) h2abc_string=lP.display(h2abc)
结果是
,
7 还可以验证算出来的对不对,把d2abc,g2abc,h2abc代入equ3算出equ4,结果和equ0是一样的。
equ4=equ3; equ4=lP.subtitPoly(equ4,4,d2abc); equ4=lP.subtitPoly(equ4,7,g2abc); equ4=lP.subtitPoly(equ4,8,h2abc); equ4_string=lP.display(equ4)
过几天接茬更新。下边是几个数据类型,要存到相应的.m文件里
长整类型,存到 longInteger.m
%save to longInteger.m function lI=longInteger() % longInteger x=x1*(x2+x3*10+x4*100+x5*1000+...) % x=0 means 0 function y=neg(x1) y=x1; y(1)=-y(1); end function y=validate(x1) flag1=1; y=x1; y(1)=sign(y(1)); n1=numel(y); while flag1 if n1==1 y=0; flag1=0; elseif y(n1)==0 n1=n1-1; elseif y(n1)<0 y=-y; elseif y(n1)>9 y(n1+1)=floor(y(n1)/10); y(n1)=mod(y(n1),10); n1=n1+1; else idx1=find(y(2:n1)>9 | y(2:n1)<0)+1; inc1=floor(y(idx1)/10); y(idx1+1)=y(idx1+1)+inc1; y(idx1)=y(idx1)-inc1*10; if isempty(idx1) flag1=0; end end end y=y(1:n1); end function y=new(str1) sign1=1; if str1(1)=='+' str1=str1(2:end); elseif str1(1)=='-' str1=str1(2:end); sign1=-1; end n1=numel(str1)+1; y=zeros(1,n1); y(1)=sign1; for i=2:n1 y(i)=str1(n1-i+1)-'0'; end y=validate(y); end function y=display(x) if sum(abs(x))==0 y='0'; else y=[' ','0'+x(end:-1:2)]; if x(1)==1 y(1)='+'; else y(1)='-'; end end end function y=add(x1,x2)%x=x1*(x2+x3*10+x4*100+x5*1000+...) n1=numel(x1); n2=numel(x2); if n1>=n2 y=x1; y(2:n2)=y(2:n2)+sign(x1(1)*x2(1))*x2(2:n2); else y=x2; y(2:n1)=y(2:n1)+sign(x1(1)*x2(1))*x1(2:n1); end y=validate(y); end function y=add3(x1,x2,x3) y=add(add(x1,x2),x3); end function y=add4(x1,x2,x3,x4) y=add(add3(x1,x2,x3),x4); end function y=add5(x1,x2,x3,x4,x5) y=add(add4(x1,x2,x3,x4),x5); end function y=minus(x1,x2) y=add(x1,neg(x2)); end function y=mult(x1,x2) n1=numel(x1); n2=numel(x2); y=zeros(1,n1+n2); y(1)=sign(x1(1)*x2(1)); for i=2:n1 y(i+(2:n2)-2)=y(i+(2:n2)-2)+x1(i)*x2(2:n2); end y=validate(y); end function y=mult3(x1,x2,x3) y=mult(mult(x1,x2),x3); end function y=mult4(x1,x2,x3,x4) y=mult(mult3(x1,x2,x3),x4); end function y=mult5(x1,x2,x3,x4,x5) y=mult(mult4(x1,x2,x3,x4),x5); end function y=compare(x1,x2) %x1>x2->1, x1<x2->-1, x1==x2->0 x11=validate(x1); x22=validate(x2); if x11(1)>x22(1) y=1; elseif x11(1)<x22(1) y=-1; else n1=numel(x11); n2=numel(x22); y=0; if n1>n2 y=1; elseif n1<n2 y=-1; else while n1>1 && y==0 if x11(n1)>x22(n1) y=1; elseif x11(n1)<x22(n1) y=-1; else n1=n1-1; end end end y=y*x11(1); end end function [q,r]=div(x1,x2) n1=numel(x1); n2=numel(x2); if x2==0 q=NaN; r=NaN; else q=zeros(1,n1); q(1)=sign(x1(1)*x2(1)); r=x1; n3=n1; while n3>1 if compare([1 r(n3:n1)],[1 x2(2:n2)])>=0 q(n3)=q(n3)+1; r(n3+(0:n2-2))=r(n3+(0:n2-2))-x2(2:n2); else n3=n3-1; end end q=validate(q); r=validate(r); end end function y=gcd(x1,x2) m=x1; n=x2; m(1)=1; n(1)=1; r=[1 1]; while numel(r)>1 %r~=0 [~,r]=div(m,n); m=n; n=r; end y=m; end lI=[]; lI.validate=@validate; lI.new=@new; lI.display=@display; lI.add=@add; lI.add3=@add3; lI.add4=@add4; lI.add5=@add5; lI.minus=@minus; lI.neg=@neg; lI.mult=@mult; lI.mult3=@mult3; lI.mult4=@mult4; lI.mult5=@mult5; lI.compare=@compare; lI.div=@div; lI.gcd=@gcd; end
长分数类型,存到 longFrac.m
%save to longFrac.m function lF=longFrac(lI) function y=validate(F1) y=F1; if y{2}(1)==0 y{1}=NaN; else if y{2}(1)==-1 y{1}=lI.neg(y{1}); y{2}=lI.neg(y{2}); end I1=lI.gcd(y{1},y{2}); y{1}=lI.div(y{1},I1); y{2}=lI.div(y{2},I1); end end function y=new(I1,I2) y=cell(1,2); y{1}=I1; y{2}=I2; y=validate(y); end function y=neg(F1) y=F1; y{1}=lI.neg(y{1}); end function y=add(F1,F2) y=cell(1,2); y{1}=lI.add(lI.mult(F1{1},F2{2}),lI.mult(F1{2},F2{1})); y{2}=lI.mult(F1{2},F2{2}); y=validate(y); end function y=add3(F1,F2,F3) y=add(add(F1,F2),F3); end function y=add4(F1,F2,F3,F4) y=add(add3(F1,F2,F3),F4); end function y=add5(F1,F2,F3,F4,F5) y=add(add4(F1,F2,F3,F4),F5); end function y=minus(F1,F2) y=add(F1,neg(F2)); end function y=mult(F1,F2) y=cell(1,2); y{1}=lI.mult(F1{1},F2{1}); y{2}=lI.mult(F1{2},F2{2}); y=validate(y); end function y=mult3(F1,F2,F3) y=mult(mult(F1,F2),F3); end function y=mult4(F1,F2,F3,F4) y=mult(mult3(F1,F2,F3),F4); end function y=mult5(F1,F2,F3,F4,F5) y=mult(mult4(F1,F2,F3,F4),F5); end function y=div(F1,F2) y=cell(1,2); y{1}=lI.mult(F1{1},F2{2}); y{2}=lI.mult(F1{2},F2{1}); y=validate(y); end function y=display(F1) if numel(F1{2})==2 && F1{2}(2)==1 y=lI.display(F1{1}); else y=lI.display(F1{2}); y=[lI.display(F1{1}) '/' y(2:end)]; end end lF=[]; lF.validate=@validate; lF.new=@new; lF.neg=@neg; lF.add=@add; lF.add3=@add3; lF.add4=@add4; lF.add5=@add5; lF.minus=@minus; lF.mult=@mult; lF.mult3=@mult3; lF.mult4=@mult4; lF.mult5=@mult5; lF.div=@div; lF.display=@display; end
长矩阵类型,存到 longMatrix.m
%save to longMatrix.m function lM=longMatrix(lF) function y=zeros(m,n) y=[]; y.m=m; y.n=n; y.values=cell(m*n,2); for i=1:m*n y.values{i,1}=0; y.values{i,2}=[1 1]; end end function y=ones(m,n) y=[]; y.m=m; y.n=n; y.values=cell(m*n,2); for i=1:m*n y.values{i,1}=[1 1]; y.values{i,2}=[1 1]; end end function y=neg(M1) y=M1; for i=1:y.m*y.n y.values(i,:)=lF.neg(y.values(i,:)); end end function y=validate(M1) y=M1; for i=1:M1.m*M1.n y.values(i,:)=lF.validate(M1.values(i,:)); end end function y=inv(M1) if M1.m~=M1.n y=NaN; else m=M1.m; values=cell(m*m*2,2); values(1:m*m,:)=M1.values; for i=1:m*m values{m*m+i,1}=0; values{m*m+i,2}=[1 1]; end for i=1:m values{m*m+(i-1)*m+i,1}=[1 1]; end for i=1:m flag1=0; idx1=i; while flag1==0 if numel(values{(i-1)*m+idx1,1})>1 flag1=1; elseif idx1==m flag1=2; else idx1=idx1+1; end end if flag1==1 values([(0:m-1)*m+i (0:m-1)*m+idx1],:)=values([(0:m-1)*m+idx1 (0:m-1)*m+i],:); for k=i+1:m*2 values((k-1)*m+i,:)=lF.div(values((k-1)*m+i,:),values((i-1)*m+i,:)); end values{(i-1)*m+i,1}=[1 1]; values{(i-1)*m+i,2}=[1 1]; for j=[1:i-1 i+1:m] for k=i+1:m*2 values((k-1)*m+j,:)=lF.minus(values((k-1)*m+j,:),lF.mult(values((i-1)*m+j,:),values((k-1)*m+i,:))); end values{(i-1)*m+j,1}=0; values{(i-1)*m+j,2}=[1 1]; end else break end end y=[]; y.m=m; y.n=m; y.values=values(m*m+(1:m*m),:); y=validate(y); end end lM=[]; lM.zeros=@zeros; lM.ones=@ones; lM.neg=@neg; lM.inv=@inv; end
长多项式类型,存到 longPoly.m
function lP=longPoly(lF) function y=validate(x) maxP=max(max(x.power)); [m,n]=size(x.power); weight1=zeros(m,1); for i=1:n weight1=weight1+x.power(:,i)*(maxP+1)^i; end [~,idx1]=sort(weight1); y=[]; y.coeff=cell(m,2); y.power=zeros(m,n); i=1; power0=zeros(1,n)-1; coeff0={0,[1 1]}; for j=1:m if sum(power0==x.power(idx1(j),:))==n coeff0=lF.add(coeff0,x.coeff(idx1(j),:)); y.coeff(i,:)=coeff0; else if numel(coeff0{1})>1 i=i+1; end power0=x.power(idx1(j),:); coeff0=x.coeff(idx1(j),:); y.power(i,:)=power0; y.coeff(i,:)=coeff0; end end if i==1 && numel(y.coeff{1})==1 y.power=0; y.coeff={0,[1 1]}; elseif numel(coeff0{1})==1 y.coeff=y.coeff(1:i-1,:); y.power=y.power(1:i-1,:); else y.coeff=y.coeff(1:i,:); y.power=y.power(1:i,:); end end function y=new(coeff,nVar,power) y=[]; y.coeff=coeff; y.power=zeros(1,max(nVar,1)); y.power(1,max(nVar,1))=power; end function y=display(x) if sum(sum(abs(x.power)))==0 y='0'; else [m,n]=size(x.power); maxL1=0; maxL2=0; coeff=cell(m,1); power=cell(m,1); for i=1:m coeff{i}=lF.display(x.coeff(i,:)); if numel(coeff{i})>maxL1 maxL1=numel(coeff{i}); end power{i}=''; flag1=0; for j=1:n if x.power(i,j)>1 if flag1 power{i}=[power{i} '*']; end flag1=1; power{i}=[power{i} 'a'+j-1 '^' num2str(x.power(i,j))]; elseif x.power(i,j)>0 if flag1 power{i}=[power{i} '*']; end flag1=1; power{i}=[power{i} 'a'+j-1]; end end if numel(power{i})>maxL2 maxL2=numel(power{i}); end end y=zeros(m,maxL1+maxL2)+' '; for i=1:m if numel(power{i})==0 y(i,1:numel(coeff{i}))=coeff{i}; elseif numel(coeff{i})==2 && coeff{i}(2)=='1' y(i,1)=coeff{i}(1); y(i,2:numel(power{i})+1)=power{i}; else y(i,1)=coeff{i}(1); y(i,2:numel(power{i})+1)=power{i}; y(i,numel(power{i})+2)='*'; y(i,numel(power{i})+1+(2:numel(coeff{i})))=coeff{i}(2:end); end end end y=char(y); end function y=neg(x) y=x; [m,~]=size(x.power); for i=1:m y.coeff(i,:)=lF.neg(y.coeff(i,:)); end end function y=add(x1,x2) y=[]; y.coeff=[x1.coeff;x2.coeff]; n1=size(x1.power,2); n2=size(x2.power,2); if n1>=n2 y.power=[x1.power;x2.power x2.power(:,1)*zeros(1,n1-n2)]; else y.power=[x1.power x1.power(:,1)*zeros(1,n2-n1);x2.power]; end y=validate(y); end function y=add3(x1,x2,x3) y=add(add(x1,x2),x3); end function y=add4(x1,x2,x3,x4) y=add(add3(x1,x2,x3),x4); end function y=add5(x1,x2,x3,x5) y=add(add4(x1,x2,x3,x4),x5); end function y=minus(x1,x2) y=add(x1,neg(x2)); end function y=mult(x1,x2) y=[]; [m1,n1]=size(x1.power); [m2,n2]=size(x2.power); m=m1*m2; n=max(n1,n2); y.coeff=cell(m,2); y.power=zeros(m,n); for i=1:m1 for j=1:m2 idx1=(i-1)*m2+j; y.coeff(idx1,:)=lF.mult(x1.coeff(i,:),x2.coeff(j,:)); y.power(idx1,1:n1)=x1.power(i,:); y.power(idx1,1:n2)=y.power(idx1,1:n2)+x2.power(j,:); end end y=validate(y); end function y=mult3(x1,x2,x3) y=mult(mult(x1,x2),x3); end function y=mult4(x1,x2,x3,x4) y=mult(mult3(x1,x2,x3),x4); end function y=mult5(x1,x2,x3,x4,x5) y=mult(mult4(x1,x2,x3,x4),x5); end function y=subset(x1,idx1) y=[]; y.coeff=x1.coeff(idx1,:); y.power=x1.power(idx1,:); end function y=diff(x1,n) y=x1; [m,~]=size(x1.power); for i=1:m if y.power(i,n)>0 y.coeff(i,:)=lF.mult({[1 y.power(i,n)],[1 1]},y.coeff(i,:)); y.power(i,n)=y.power(i,n)-1; else y.coeff(i,:)={0,[1 1]}; y.power(i,:)=0; end end y=validate(y); end function y=subtitConst(x1,varNo,values) y=x1; [m,~]=size(x1.power); for i=1:m for j=1:numel(varNo) for k=1:y.power(i,varNo(j)) y.coeff(i,:)=lF.mult(y.coeff(i,:),values(j,:)); end y.power(i,varNo(j))=0; end end y=validate(y); end function y=subtitPoly(x1,varNo,poly1) flag1=1; if size(poly1.power,2)>=varNo if sum(poly1.power(:,varNo)~=0)>1 flag1=0; y=NaN; end end if flag1 idx1=find(x1.power(:,varNo)==0); y=subset(x1,idx1); idx1=find(x1.power(:,varNo)~=0); for i=1:numel(idx1) x2=subset(x1,idx1(i)); x2.power(1,varNo)=0; for j=1:x1.power(idx1(i),varNo) x2=mult(x2,poly1); end y=add(y,x2); end end y=validate(y); end function [q,r]=div(x1,x2,varOrder) %x2 highest order only constant coefficient [m1,n1]=size(x1.power); [m2,n2]=size(x2.power); n=max(n1,n2); if ~exist('varOrder','var') varOrder=(n:-1:1).^2;%:-1:1; else varOrder=varOrder.^2; end r=x1; x22=x2; if n1<n r.power=[r.power zeros(m1,n-n1)]; end if n2<n x22.power=[x22.power zeros(m2,n-n2)]; end weight2=sum(x22.power,2)*(n+1)^3+x22.power*varOrder'; [~,idx2]=sort(weight2,'descend'); x22.power=x22.power(idx2,:); x22.coeff=x22.coeff(idx2,:); q=lP.new({0,[1 1]},0,0); %y=new(coeff,nVar,power) if m2==1 && numel(x22.coeff{1,1})==1 q=NaN; r=NaN; else flag1=1; while flag1 power=r.power-ones(m1,1)*x22.power(1,:); weight1=sum(power,2)*(n+1)^3+power*varOrder'; [~,idx1]=max(weight1-(sum(power>=0,2)<n)*max(abs(weight1))*1000); power=power(idx1,:); if sum(power>=0)==n coeff=lF.div(r.coeff(idx1,:),x22.coeff(1,:)); poly1=[]; poly1.coeff=coeff; poly1.power=power; q=lP.add(q,poly1); poly2=lP.mult(x22,poly1); r=lP.minus(r,poly2); [m1,~]=size(r.power); else flag1=0; end end q=validate(q); r=validate(r); end end lP.new=@new; lP.display=@display; lP.validate=@validate; lP.neg=@neg; lP.add=@add; lP.add3=@add3; lP.add4=@add4; lP.add5=@add5; lP.minus=@minus; lP.mult=@mult; lP.mult3=@mult3; lP.mult4=@mult4; lP.mult5=@mult5; lP.subset=@subset; lP.diff=@diff; lP.subtitConst=@subtitConst; lP.subtitPoly=@subtitPoly; lP.div=@div; end
我来说句政治不正确的话,
YAMY本来就不好看,没必要因为这件事把她吹成美女,
这属于矫枉过正,是美是丑,自己判断,别被资本和大众洗脑。
这件事你问我一万遍,我的答案依然是YAMY不好看。
但问题是,徐明朝你不是观众,你是她的老板,YAMY是你公司旗下的艺人,
你要对YAMY的演艺生涯负责,长得不好看在演艺圈发展得很好的姑娘又不是没有,
韩红也长得不好看啊,但我很喜欢韩红的歌,也很喜欢韩红,
这说明啥,一方面韩红有实力,另一方面韩红老师背后的公司还是有本事的。
你如果嫌她不好看,那当初就不要签她,既然签了她,就得想怎么帮她发展。
举个简单通俗的例子,徐明朝是个厨子,YAMY是个苦瓜,
对于我这样看了苦瓜就想吐的挑剔食客来说,
你能把苦瓜做成一道名菜,我愿意尊称你为大厨,并且为你的苦瓜买单,
结果你这个厨子,对着苦瓜叽叽歪歪半天,怒批苦瓜不太好吃,太苦了,不太好做菜,
那你跟我这个食客有啥区别?就这手艺,你还是别开店了。
这对于我这样的食客,对YAMY这样的苦瓜,都是好事。
补充几个观点,顺便给大家科普一下影视圈的基本规则:
1、在其他行业,恶意评价女性的相貌,是一件非常恶劣而且没有素质的行为,如果你是一位女性医生/教师/公务员/工人/程序媛等等,被你的同事、上级骂丑女,我第一个站出来帮你说话喷他们,并且强烈支持你维护自己的尊严。
2、但在娱乐行业,评价女性艺人的相貌与身材,是一件非常客观而且常见的事情,明星的相貌、身材、气质本身就是资源,如何根据艺人的自身条件,打造适合的人设,为其选择适合该艺人的艺术作品,是每个娱乐公司都要考虑的问题,举个简单的例子:
你让金城武、吴彦祖、朱一龙这样的帅哥,去演个赵子龙,完全没问题。
你让郭德纲去演赵子龙,这叫闷声作大死,德云社被三国迷们冲了,我都要拍手称快。
那些说YAMY是美女的,你敢让YAMY去演小龙女、王语嫣、黄蓉这样的古装美女吗?
敢让她挑战一下“沉鱼落雁,闭月羞花”这样的四大美女吗?
或者难度低一点,演个四大名著里的大小乔或者李师师?
你YMAY能演吗?她没这个能力,你知道吗?
说她是高级脸的,甚至达到亚洲审美标准的,
行,我让她演个《回家的诱惑》里的小三可以吗?
我看哪个倒霉孩子演洪世贤,对着她的脸说:你好骚啊。
当年西门大妈还没把你们这群玩政治正确的人恶心吐吗?
我都心疼刘德凯,为了赚点钱,太不容易了。
这么多年过去了,荧幕上的美女没多多少,
各种妖魔鬼怪倒是来群魔乱舞了。
3、这个世界上有美女,自然就会有丑女,有帅哥,就会有丑男。不要搞什么政治正确,什么每个女孩都是美丽的,这叫睁着眼睛扯犊子,和指鹿为马一样离谱,你既然尬吹YAMY是美女,为什么不承认八两金是帅哥?
气冷抖,中国的男人什么时候能够站起来说,我们每个人,都是帅哥?
这话你听着恶心不?我一大老爷们都觉得恶心。
4、我之所以要骂徐朝阳,因为你作为老板,你既然签了YAMY,要做的就是根据他的自身条件,去量体裁衣,去打造作品。相貌不佳,但是凭实力走红的女性艺人又不是没有,你自己没这水平,就不要怨天尤人,搞得自己多委屈一样。
骂员工能力差的老板,是最蠢的,因为当他们说出句话的时候,只能证明自己既不懂管理也不懂培养。
你见过刘备骂诸葛亮,孙权骂周瑜,曹操怒斥郭嘉的吗?
千里马常有,而伯乐不常有,从管理学上来看,就是在嘲讽许多老板,压根就没有驾驭千里马的能力,更没能力当伯乐,只能当个喂马的。
要我说,没有金刚钻,别揽瓷器活。你徐朝阳实在打造不出来明星,那就承认自己水平不够,和YAMY好聚好散,在业内也不失一段佳话,闹成今天鸡飞狗跳的模样,纯属自找,但凡有点能力的老板,都整不出这么离谱的活。
就像我说的,把你那个破店关了,对你,对你手下的艺人,对于我们这些观众,都是有好处的。
---------------------------分割线---------------------------
本来呢,审美是一件很个人的事,但现在有的人,上个网发个言,都要搞政治正确。你要凹人设是你的问题,不过我个人觉得,既然上网了,跟你现实中身份都已经切割了,可以痛快做自己了,那咱们能不能多一点真诚,少一点虚伪,多一点爽快,少一点套路?
我就问你们两个问题,希望你发自灵魂深处来回答:
1、觉得YAMY很美的,如果你是女人,你愿意长成YAMY这样吗?
2、觉得YAMY很美的,如果你是男人,你愿意你老婆长YAMY这样吗?
就像有的网友说的,说她的长相只是不符合主流审美,不算丑,这个观点我都认了,而且我觉得这位朋友真是人才,说话又好听,我超喜欢他的。
但求求你们别吹YAMY是美女,好吧?难道你从小到大,见到的班花、校花,都长YAMY这样,我的娘啊,你的学生生涯有这么不幸和恐怖吗?
再说了,你们这些伪善粉,嘴上这么吹,心里又不这么选,你这不是欺骗人YAMY感情吗?
说的不好听点,YAMY搞成今天这样,在座那些鼓吹YAMY是美女的粉丝们,要负很大责任的。
-------------------------无奈的分割线-------------------------
鉴于这个帖子里,依然有人睁着眼睛说瞎话,学习白左玩政治正确,鼓吹YAMY是美女,甚至声称YAMY达到了亚洲美女的标准,我觉得我身为亚洲男人的身份和审美都被侮辱了。
我懒得说服她们,因为我这个人能动手的时候,绝对不逼逼。我就上两张图,你们自己去选,哪个美哪个丑自己判断,尤其是某些男士,人家姑娘要面子,嘴硬一点,我还觉得挺可爱的,你一个大老爷们跟着凑什么热闹?想当舔狗也不是这么当的。
同为男人,我就直接点,直接问你:下面两个妹子,你选一个当老婆,你选谁?
为了符合亚洲美女这个身份,我特意没选中国的美女,否则上个范冰冰、刘诗诗、刘亦菲或者巅峰巩俐这样的,这游戏就结束了,而且没有亚洲氛围。
因此,我特意挑了一个亚洲网红妹子,据说是印度的,来,请大家告诉我,哪个姑娘美?这是知乎,不是豆瓣,别玩什么政治正确。