百科问答小站 logo
百科问答小站 font logo



95% 的人解不出这道题《史上最贱的数学题》能否用数学软件计算出来? 第1页

  

user avatar   xx-nemesis 网友的相关建议: 
      

这个有点意思。我写了个长整的数据类型,定义了加减乘除运算,然后验算了一下文章给出的解,结论是他的结果是对的(跟没说一样)。我的长整类型是个数组,第一个数是正负号,第二个数是个位,第三个数是十位,以此类推。先新建一个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     

user avatar   GalAster 网友的相关建议: 
      

我来说句政治不正确的话,

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达到了亚洲美女的标准,我觉得我身为亚洲男人的身份和审美都被侮辱了。

我懒得说服她们,因为我这个人能动手的时候,绝对不逼逼。我就上两张图,你们自己去选,哪个美哪个丑自己判断,尤其是某些男士,人家姑娘要面子,嘴硬一点,我还觉得挺可爱的,你一个大老爷们跟着凑什么热闹?想当舔狗也不是这么当的。

同为男人,我就直接点,直接问你:下面两个妹子,你选一个当老婆,你选谁?

为了符合亚洲美女这个身份,我特意没选中国的美女,否则上个范冰冰、刘诗诗、刘亦菲或者巅峰巩俐这样的,这游戏就结束了,而且没有亚洲氛围。

因此,我特意挑了一个亚洲网红妹子,据说是印度的,来,请大家告诉我,哪个姑娘美?这是知乎,不是豆瓣,别玩什么政治正确。




  

相关话题

  到底是奇数多还是偶数多? 
  数学界为何走向抽象? 
  如何用matlab计算以下级数? 
  圆桌上 1000 个人轮流开枪,最后活下来的是几号? 
  从0,2 中选一个数字,从1,3,5中选两个数字,组成无重复数字的三位数,构成奇数的概率是多少? 
  任给一张面积为A的纸片,如何证明必可将它剪为面积相等的两块? 
  a²+a³=392 怎么解? 
  虚数 i 是真实存在的吗?还是被人们创造出的数学工具? 
  五个同事决定计算他们的平均工资,在大家互相不告诉薪水的情况下,如何才能做到这一点? 
  一个直径为1的圆,最少多少个直径小于1的圆可以覆盖? 

前一个讨论
牛顿经典力学中有无显而易见的漏洞?
下一个讨论
中国在地球上的另一端是哪里?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利