数学吧 关注:875,099贴子:8,690,809

讨论基础不定方程生成解

只看楼主收藏回复

x+y+z=n,且(x,y,z)是整数△的个数


IP属地:江苏来自Android客户端1楼2023-08-14 05:34回复
    初中生自我研究的,是哪个范围的数学?为什么这个简单的式子没人回复探讨一下?


    IP属地:江苏来自Android客户端2楼2023-08-14 19:30
    回复
      n=3,(1,1,1)是一个解组,n=4无解,n=5(1,2,2),(2,1,2),(2,2,1),是1个△


      IP属地:江苏来自Android客户端3楼2023-08-14 19:39
      回复
        是说a,b,c组成三角形三边呗


        IP属地:陕西来自Android客户端4楼2023-08-14 19:47
        收起回复
          当n=100时有多少个不同△


          IP属地:江苏来自Android客户端5楼2023-08-14 20:55
          回复
            数格点类型的


            IP属地:上海来自iPhone客户端6楼2023-08-14 21:07
            回复
              在平面直角坐标系里,由x+y>n-x-y,x+n-x-y>y,y+n-x-y>x所构成的等腰直角三角形内部整数点的个数


              IP属地:上海来自iPhone客户端7楼2023-08-14 21:14
              收起回复
                编程题,穷举法


                IP属地:广东来自Android客户端8楼2023-08-14 22:44
                回复
                  基于楼上的思路,发一个不用去重的版本
                  x+y>n/2
                  x<=y
                  2y+x<=n


                  IP属地:广东来自Android客户端9楼2023-08-14 23:21
                  收起回复
                    属于数论


                    IP属地:山东来自Android客户端10楼2023-08-15 00:06
                    回复
                      #include<iostream>
                      using namespace std;
                      int main()
                      {
                      int a,b,c,n;
                      int na,nb,nc;
                      int i=0,j=0,k=1;
                      int p[1000]= {0},q[1000]= {0};
                      cin>>n;
                      for(a=1; a<=n/2; a++) {
                      for(b=1; b<=n-a; b++) {
                      c=n-a-b;
                      na=a;
                      nb=b;
                      nc=c;
                      if(na<nb) {
                      i=na;
                      na=nb;
                      nb=i;
                      }
                      if(nb<nc) {
                      i=nb;
                      nb=nc;
                      nc=i;
                      }
                      if(na<nb) {
                      i=na;
                      na=nb;
                      nb=i;
                      }
                      if (nb+nc>na) {
                      p[k]=na;
                      q[k]=nb;
                      for(i=0; i<k; i++) {
                      if(na==p[i]&&nb==q[i]) {
                      k--;
                      }
                      }
                      k++;
                      }
                      }
                      }
                      cout << "当n=" <<n<<"时共有" <<k-1<<"组解"<<endl;
                      for(i=1; i<k; i++) {
                      cout<<"("<<p[i]<<","<<q[i]<<","<<n-p[i]-q[i]<<")"<<endl;
                      }
                      return 0;
                      }


                      IP属地:黑龙江来自Android客户端11楼2023-08-15 00:16
                      回复
                        跑了一下


                        IP属地:黑龙江来自Android客户端12楼2023-08-15 00:18
                        收起回复
                          想不到直接计算出来的方法...应该是数论


                          IP属地:黑龙江来自Android客户端13楼2023-08-15 00:25
                          回复
                            我发现有规律,设数列a_n,第i项对应n=i时的三角形个数
                            第一,若k为奇数,则a_k = a_(k+3)
                            第二,设每一个奇数项(除i=1)与前一个奇数项的差构成一个新的数列b_n,则b_1=b_3=b_4=b_5=b_6=1,b_2=0,k>6,b_k=b_(k-6)+1,即b_n={1, 0, 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 3, 2, 3, 3, 3, 3...}
                            看这个规律的形式,或许用数学归纳可证?


                            IP属地:北京来自Android客户端14楼2023-08-15 02:12
                            回复
                              3a+2b+4c=n+6
                              当n=100时,
                              f(100)=(53*47+5)/12=208


                              IP属地:江苏来自Android客户端15楼2023-08-15 03:22
                              回复