数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: ysr

数论问题巅峰对决

[复制链接]
 楼主| 发表于 2021-7-28 20:35 | 显示全部楼层
本帖最后由 ysr 于 2021-7-28 12:45 编辑

当y<=100有61组解: /解/0/2/1
/解/0/4/1
/解/0/6/1
/解/0/8/1
/解/0/10/1
/解/0/12/1
/解/0/14/1
/解/0/16/1
/解/0/18/1
/解/0/20/1
/解/0/22/1
/解/0/24/1
/解/0/26/1
/解/0/28/1
/解/0/30/1
/解/0/32/1
/解/0/34/1
/解/0/36/1
/解/0/38/1
/解/0/40/1
/解/0/42/1
/解/0/44/1
/解/0/46/1
/解/0/48/1
/解/0/50/1
/解/40/4/2
/解/0/10/2
/解/0/12/2
/解/0/14/2
/解/0/16/2
/解/0/18/2
/解/0/20/2
/解/0/22/2
/解/0/24/2
/解/0/26/2
/解/0/28/2
/解/0/30/2
/解/0/32/2
/解/0/34/2
/解/0/36/2
/解/0/38/2
/解/0/40/2
/解/0/42/2
/解/0/44/2
/解/0/46/2
/解/0/48/2
/解/0/50/2
/解/0/30/3
/解/0/32/3
/解/0/34/3
/解/0/36/3
/解/0/38/3
/解/0/40/3
/解/0/42/3
/解/0/44/3
/解/0/46/3
/解/0/48/3
/解/0/50/3
/解/1280/32/4
/解/0/68/4
/解/0/70/4
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-28 20:39 | 显示全部楼层
本帖最后由 ysr 于 2021-7-28 13:02 编辑

如果x*y*z≠0,则结果如下:
当y<=100有2组解: /解/40/4/2
/解/1280/32/4
用时14.52344秒
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-28 21:05 | 显示全部楼层
代码如下:(仅发主程序,数据再大就溢出了,还需要修改)

Private Sub Command1_Click()
Dim a, b, x, y, z, m
m1 = Text1
m = Text2
t = Timer
B1 = m / 2
b = 0
s1 = 0
Do While b < Val(B1) + 2
a = 0
b = b + 1
Print b
Do While a < Val(m)
a = a + 2
z = 4 * Val(ksm2(Val(b), Val(15)))
y = 3 * Val(a) ^ 5
x = MBBC1(zhengchuqy(MCC1(Val(z - y), 2)))
If InStr(x, "/") = 0 And x <> 0 Then
s = s & "/解/" & x & "/" & a & "/" & b & vbCrLf
s1 = s1 + 1
Else
s = s
End If
Loop
Loop
Text3 = Text3 & "当y<=" & m & "有" & s1 & "组解: " & s
Combo1 = Text3 & "用时" & Timer - t & "秒"
End Sub


Private Function ksm2(sa As String, sb As String) As String '2的快速幂程序
Dim a, b
a = Val(sa): b = sb
If b = 1 Then
ksm2 = a
ElseIf b = 0 Then
ksm2 = 1
Else
a1 = a
Do While b > 1
s = Int(Log(b) / Log(2))
s1 = 0
Do While s1 < s
a = MbC(Trim(a), Trim(a))
s1 = s1 + 1
Loop
a2 = a
b = b - 2 ^ s
a = a1
If s2 > 0 Then
a3 = MbC(Trim(a3), Trim(a2))
Else
a3 = a2
End If
s2 = s2 + 1
Loop
If b = 1 Then
ksm2 = MbC(Trim(a3), Trim(a1))
Else
ksm2 = a3
End If
s3 = Len(ksm2)
ksm2 = ksm2
End If


End Function

Public Function MBBC1(D1 As String) As String 'kai lifang
If Len(D1) < 10 Then
jss = Int((D1) ^ (1 / 3))
If (Val(jss) + 1) ^ 3 - Val(D1) = 0 Then
  jss = Val(jss) + 1
  Else
  jss = jss
  End If
  
JW = Val(D1) - (jss) ^ 3
  If JW = 0 Then
  MBBC1 = jss
  Else
  MBBC1 = jss & "/" & JW
    End If
Else
Dim x 'shuju changdu
x = Len(D1) \ 3
D2 = String(3 - Len(D1) + 3 * x, "0") & D1
Dim a() As String
ReDim a(3 To 3 * x + 3)
Dim b() As String
ReDim b(1 To x)
Dim i, j, js
  For i = 3 To 3 * x + 3 Step 3
  
a(i) = Mid(D2, i - 2, 3)
Next
js = Int((Val(a(3) & a(6))) ^ (1 / 3))
If (Val(js) + 1) ^ 3 - Val(a(3) & a(6)) = 0 Then
js = Val(js) + 1
Else
js = js
End If

JW = Val(a(3) & a(6)) - (js) ^ 3

   j = 2
   Do While j <= x
   
   jws = MPC1(JW & "000", a(3 * j + 3))
   If MBJC(Trim(jws), MPC1(MbC(MbC(MbC(Trim(js), 10), MPC1(MbC(Trim(js), 10), 1)), 3), 1)) < 0 Then
    b(j) = "0"
    Else
    jwc = Left(jws, 2) \ Left(MPC1(MbC(MbC(MbC(Trim(js), 10), MPC1(MbC(Trim(js), 10), 1)), 3), 1), 1) '2=Len(jws) - Len(MbC(MbC(Trim(js), MPC1(Trim(js), 1)), 30)) + 1
    If Len(jwc) > 1 Then
     b(j) = 9
     Else
     b(j) = jwc
     End If
   
     
     Do While MBJC(Trim(jws), MbC(MPC1(MbC(b(j), b(j)), MbC(MbC(MbC(Trim(js), 10), MPC1(MbC(Trim(js), 10), Trim(b(j)))), 3)), b(j))) = -1
     
     b(j) = b(j) - 1
     
               Loop
          End If
          JW = MPC(Trim(jws), MbC(MPC1(MbC(b(j), b(j)), MbC(MbC(MbC(Trim(js), 10), MPC1(MbC(Trim(js), 10), Trim(b(j)))), 3)), b(j)))
      
     js = MPC1(MbC(Trim(js), 10), Trim(b(j)))
     
      
   j = j + 1
   If JW = 0 Then
      
   MBBC1 = js
   Else
   MBBC1 = js & "/" & JW
   End If
   Loop
   
End If
End Function
回复 支持 反对

使用道具 举报

发表于 2021-7-28 21:06 | 显示全部楼层
本帖最后由 费尔马1 于 2021-7-28 21:23 编辑

对于二项和不定方程,只要不是费马方程,其它形式的幂指数,一般地都是有正整数解的。
老师的程序太厉害了!学生我望尘莫及啊!
当y<=100有2组解: /解/40/4/2
/解/1280/32/4
这两组解是同源解,也就是相当于一组解,像勾股数3 4 5 与6 8 10一样。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-28 21:20 | 显示全部楼层
费尔马1 发表于 2021-7-28 13:06
对于二项和不定方程,只要不是费马方程,其它形式的幂指数,一般地都是有正整数解的。

哈哈哈,涨知识!我相信,但是这个也是不容易证明的。

点评

虽说不容易证明,但凭一般解法可以自然的说明。  发表于 2021-7-28 21:26
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-28 21:29 | 显示全部楼层
“非常感谢老师,您的解正确!老师您辛苦了! 这个题说明了,整系数二项和方程,等号右边幂指数15含左边幂指数3、5,这类不定方程统统有正整数解。我现在在外面打工的,等我回家后看看记录本,有一般的解法。”
“虽说不容易证明,但凭一般解法可以自然的说明。”

谢谢您的鼓励和沟通,期待您的一般解法!

点评

例如,同源解有无穷多个,x/y/z 9720/108/6;40*5^5/4*5^3/2*5…… 40*n^5/4*n^3/2*n  发表于 2021-7-28 21:42
回复 支持 反对

使用道具 举报

发表于 2021-7-28 21:43 | 显示全部楼层
请 ysr 给出

2000 内的 10x+7 的素数,及

4000 内的 10y+1 的素数,谢谢!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-28 22:06 | 显示全部楼层
代码如下:(这次不会溢出了,可以计算大数据了,时间长了)

Private Sub Command1_Click()
Dim a, b, x, y, z, m
m1 = Text1
m = Text2
t = Timer
B1 = m / 2
b = 0
s1 = 0
Do While b < Val(B1) + 2
a = 0
b = b + 1

Do While a < Val(m)
a = a + 2
z = MbC(4, ksm2(Val(b), Val(15)))
y = MbC(3, ksm2(Val(a), Val(5)))
If MBJC(Trim(z), Trim(y)) <= 0 Then
x = 0
  Else

x = MBBC1(zhengchuqy(MCC1(MPC(Trim(z), Trim(y)), 2)))
  End If

If InStr(x, "/") = 0 And x <> 0 Then
Print z, y
s = s & "/解/" & x & "/" & a & "/" & b & vbCrLf
s1 = s1 + 1
Else
s = s
End If
Loop
Loop
Text3 = Text3 & "当y<=" & m & "有" & s1 & "组解: " & s
Combo1 = Text3 & "用时" & Timer - t & "秒"
End Sub
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-29 02:31 | 显示全部楼层
当y<=1000有6组解: /解/40/4/2
/解/1280/32/4
/解/9720/108/6
/解/40960/256/8
/解/125000/500/10
/解/311040/864/12
用时-78538.87秒

点评

老师您好:非常感谢您。 都凌晨两点半了还没有睡觉啊,注意休息啊! 这六个解都是同源解,40*n^5/4*n^3/2*n 当n=2 3 4 5 6时,得出这六组解。  发表于 2021-7-29 07:03
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-29 03:29 | 显示全部楼层
本帖最后由 ysr 于 2021-7-28 19:37 编辑
蔡家雄 发表于 2021-7-28 13:43
请 ysr 给出

2000 内的 10x+7 的素数,及


1与20之间的素数打头有8组差为6的2生素数对: (用时1.171875E-02秒)
/11/17
/31/37
/41/47
/61/67
/101/107
/131/137
/151/157
/191/197

当然要求不是2生素数,改一下,分别求一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-5-15 03:01 , Processed in 0.073243 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表