素数产生新的算法(由筛法减法改为增加法)--哥德巴赫猜想的第一次实际应用

释沐佛 2023-03-05 10:27:54

素数产生新的算法(由筛法减法改为增加法)--哥德巴赫猜想的第一次实际应用

摘要:长期以来,人们认为哥德巴赫猜想没有什么实际应用的。
现在,我假设这个不是猜想,而是定理或公理,就产生了新的应用,
现有素数产生的算法是筛法,无论基础筛法还是爱氏筛法还是欧拉筛法,都是一种减少法,我想到一种增加法,就是基于哥德巴赫猜想的

算法描述如下,暂时没空写具体代码

1。首先传统筛法产生一个初始值素数表,例如产生前100位素数,以P1~P100标记此素数数列,且象EXCEL表格一样纵横坐标都是P~P100标记此素数数列,且象EXCEL表格一样纵横坐标都是P1~P100
2。以100个素数互相组合,产生100*100即一万个全集组合PiPj,Pi+Pj-1,但是把Z=Pi+Pj-1小于P100的一次性全去掉
3。逐个判断Z=Pi+Pj-1是不是素数,如果是,就添加到临时素数表中,如果不是,就去掉。
4。或者先排序,或者后排序,排序算法用上。把最后结果的临时素数表排序好后,添中到原素数表中
5。如此循环,一节节的驳接下去,增长法产生素数表

估计:这种新的增长法产生的素数表,基于哥德巴赫猜想的第一次实际应用,但是与传统筛法的运算量是应一样的。只是一个是减法,一个是加法,未知将来产生什么效果而已

...全文
113 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
释沐佛 2023-03-06
  • 打赏
  • 举报
回复

{5, 7, 13, 67, 97, 9337, 28657, 516157, 2193637}
{7, 11, 13, 31, 97, 1987, 5407, 272257, 610837}
{7, 13, 17, 31, 67, 97, 367, 2281, 18427, 52806211}
别人为我解决十位元素了

释沐佛 2023-03-06
  • 打赏
  • 举报
回复

我创造的真素质数,至少可用于加密!但是是否效果很好则未知!

释沐佛 2023-03-06
  • 打赏
  • 举报
回复

50000以内共5133个,这素数表有如下结果:
{5,7,13}真素质数,通过代码运行,50000以内的才得到如下结果:{5,7,13,67,97,9337,28657}
{3,5}真素质数,通过代码运行,50000以内的没有结果
超大素数表prime19619个数
max素数=220009:这个素数表发现,结果与前面的完全一样。
这样,就确实,是不是无穷的难知,必要更大的素数表,这不是个人计算机能处理的事了。
{5,7}-->{5,7,13,67,97,9337,28657}
{5,7,13}真素质数,去掉开头5之后成为{7,13},结果如下:
{7,13}-->{7,13,17,31,67,97,367,2281,18427}
{3,5}真素质数,max素数=220009,结果如下:
{3,5}-->{3,5}
{7,11}真素质数,max素数=220009,结果如下:
{7,11}-->{7,11,13,31,97,1987,5407}

释沐佛 2023-03-06
  • 打赏
  • 举报
回复

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Memo2: TMemo;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
allnum,subnum:tstringlist;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
allnum:=tstringlist.Create;
allnum.Clear;
allnum.Assign(self.Memo2.Lines);
subnum:=tstringlist.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
allnum.Free;
subnum.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i,j,k,z:integer;
ifadd:boolean;
begin
subnum.Clear;
//subnum.Add('3');
subnum.Add('5');
subnum.Add('7');
//subnum.Add('13');
for i:=5 to allnum.Count-1 do
//for i:=0 to allnum.Count-1 do
begin
ifadd:=true;
for j:=0 to subnum.Count-1 do
begin
z:=strtoint(subnum[j])+strtoint(allnum[i])-1;
if allnum.IndexOf(inttostr(z))<3 then
begin
ifadd:=false;
break;
end;
end;
if ifadd then
begin
subnum.Add(allnum[i]);

    end;    
end;
self.Memo1.Lines.Assign(subnum);

end;

end.

释沐佛 2023-03-05
  • 打赏
  • 举报
回复

素数分类的猜想

根据哥德巴赫公理(我暂不称之为猜想了),普通素数加一,成为合数,必可分解成两个素数,所以,两个素数Pi,Pj相加减一,是有可能为素数Pn的,这样的素数Pi,Pj,我暂称之为真素质数,而Pn暂称之为素质数,暂定局部变量名而已。
于是,素数,划分分类,就分为真素质数与非真素质数。
问题是,真素质数组成一个集合,这个集合是不是无穷集合呢
例如,{3,5}组成集合,3+5-1=7是素数,但是,加上7{3,5,7},5+7-1=11是素数,3+7-1=9不是素数,所以,仅两个素数组成的这种集合,就暂时不称为真素质数集合了,超过两个元素才暂称之为真素质数集合
{5,7,13},这个集合,5+7-1=11,5+13-1=17,7+13-1=19,元素全组合,全是素数,且元素数大于2,暂称之为局域网式真素质数集合。
采用添加法,将这种集合元素增加,会不会成为无穷集合呢,则称为互联网式真素质数集合。

于是,素数分类为,真素质数,素质数,非真素质数也非素质数。 在我昨天的文章《自然数学的哲学原理--复数理论的扩展》中,讲到:“质数作为全集或猜想又内分成N+M+2,其中,M=f(n1,n2)正相关,这个可能与素数公式有关”,今天如此粗略映像完成乎。
于是,产生一个新问题,真素质数如何产生,这个是用添加法即加法产生的,象素数原始是筛法即减法一样。

5,555

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧