mersenneforum.org  

Go Back   mersenneforum.org > Extra Stuff > Programming

Reply
 
Thread Tools
Old 2011-09-03, 02:18   #12
Christenson
 
Christenson's Avatar
 
Dec 2010
Monticello

5·359 Posts
Default

Quote:
Originally Posted by JohnFullspeed View Post
I work on the Goldback conjecture and the authors
of the verify explain that they compute the list of the prime

Why in their method they need this list?

N even number
repeat
for i:=1 to 100
M:=N-Primes(i)
If IsPrime(M) then N:=n+2;
until N > ?????
John
John:

I say your code is bad because it is unreadable, and therefore the probability of its being correct is asymptotically zero. I was surprised that LaurV actually bothered to analyze it at all...it reads like a bad example out of "A manual of programming style" by Kernighan and Plaugher.

You want code??? Here's a complete example of Zimmer's algorithm in C. You probably won't want to run this with ULONG_MAX being the limit as it may take your computer a year or ten....but I imagine it could run in an hour or two if the limit was 2^32-1 instead.

Please focus on what happens at the iteration where N is 50. At that iteration lies the answer to your original question, "Why did Zimmer use Primes(i) [Primelist] function?".

Ignore, for the time being, the cost of initializing the external functions such as Primes(i) and IsPrime(i).

Code:
// Search for a (likely nonexistant) counterexample to Goldbach's conjecture:
//  Every even number can be expressed as the sum of two odd prime numbers.
//
#define bool char  //create boolean type; makes code much more readable
#define TRUE 1
#define FALSE 0
#include <limits.h>  // for ULONG_MAX, check doc to see it's in fact 2^64-1
#include <stdio.h>  // for printf, fprintf....
extern bool IsPrime(unsigned long P);
extern unsigned long Primes(unsigned long Rank);  // Note: Primes(1)=2;
extern void Initialize_Primes(unsigned long SieveMax);

int main(int argc, char *argv[])
{
bool counterexample;
unsigned long N;  // The even number being tested to see if it is a counterexample
unsigned long i;
Initialize_Primes(ULONG_MAX);
for (N=6; N< ULONG_MAX; N+=2)
{   counterexample = TRUE;
    for (i=2; Primes(i) <= N/2; i++)
    {    if (IsPrime(N-Primes(i))
         {   counterexample = FALSE;
             break;
         }
    }
    if (counterexample)
    {    printf("Counterexample to GC: %lu!\n", N);
         return (1);
    }
    if  (N%(1UL<<16) == 0)
        fprintf(stderr, ".");
}
printf("No Counterexample Found to GC to %lu.\n", N-2);
return 0;
}
Christenson is offline   Reply With Quote
Old 2011-09-03, 05:38   #13
JohnFullspeed
 
May 2011
France

7×23 Posts
Default Code

One time more the code IS NOT my cocde;: Ot's a sample
Sorrryu if you don't koow the difference. I explaint to you

Zimmer'man use a method with the list? ›hyu?:
I givve a samle of a logic to verify Golback to explain thhe generrrral wayy I use without the ;list Is't an argument not a final profiuct

But of course you doesn't answer, like LaureV
Quote:
Where is your code ? I don't search juge but idea
But you are not an 'intlectual '
You need concret (French expression not insult)

I verify the conjecture with
0 < N < 1 223 193 544 (( 10^ 9) I need 1' 32
(I can give all the sums: no need of verify)
It's slow? You are far? How many works before joint the WC of the forum


I wait code...
JohnFullspeed is offline   Reply With Quote
Old 2011-09-03, 06:12   #14
JohnFullspeed
 
May 2011
France

7·23 Posts
Default Learn...

Try to understand before to speak...

Let Primes be the prime iist
(as usual thhe list have 200 000 000 of values)


var
Bons: array [0..223192870] of byte;
Primes :array [0..210000000] of dWord;

procedure Load_Primes;
var i,J, size: dword; OutFile: file;
begin
AssignFile(OutFile, 'NPM.bin');
Reset(OutFile, 1);
try
Blockread(OutFile, Primes[1], 813120892);
finally
Nb_Np := (813120892 div 4);
CloseFile(OutFile);
end;
end;
Procedure Verif_GoldBack(L:Qword);
Var I,J:integer;
begin
Load_Primes:
Repeat
M:=Primes[i];
for j:=1 to 300 do
Bons[M+Primes[j]]:=1;
I:=I+1;
until M> 223092870-500;
end

I use this code for (FreePAscal)

0 < N < 1 223 193 544 (( 10^ 9) I need 1' 32


Since I optimize and ti is many more faster
If you wannt I also can use a second Core bbut it will be more difficult for you.
JohnFullspeed is offline   Reply With Quote
Old 2011-09-03, 09:47   #15
Christenson
 
Christenson's Avatar
 
Dec 2010
Monticello

5×359 Posts
Default

John:
Notice the difference between my *sample* code, which is ready for both humans to read and gcc or other "C" compiler, and yours. Si vous suiviez mes instructions, vous comprendiez pourquoi Zimmerman a utilize le liste de nombres primes. Hopefully, LaurV will be back and let me know if I missed anything when I checked my program.

Without indentation, (hint: use the [ CODE ] and [ /CODE ] tags, and leave out the spaces to make them active), your code might be legible to the compiler but is undreadable by human beings.

Hit the "advanced" button to preview your post.

Other hints on readability:
Also, in this font, I find variables I and J to be very easy to confuse.....use X and Y if you need to.
A file you are reading from should not be called "outfile" -- it's not output at this point.
You have at least 4 arbitrary constants shown. What are they? Why aren't they symbols with meaningful names? Did you even notice that one of them looks mis-typed?(Hint: ULONG_MAX is a pre-defined constant in C giving the largest value that will fit in an unsigned long.)
How would I or anyone know if your program proves Goldbach's conjecture is false? It has no apparent output.

Finally, we aren't discussing how you might create the list of primes Primes[i]. Including it distracts from the main point of the discussion.

Last fiddled with by Christenson on 2011-09-03 at 10:10 Reason: Looked at the program; needed the (smiley); pardon my french
Christenson is offline   Reply With Quote
Old 2011-09-03, 19:45   #16
JohnFullspeed
 
May 2011
France

7×23 Posts
Default Blabla

vous etes exactement comme les autres vous avez peur d'etre ridicule
Je vais vous faire une confidence: vous l'etes encore plus en ne repondant pas
Vous etes tous aussi grande geule les uns que les autrres Pas in de vouys ne sait se servvir d'un ordinnateur. Je retourne aux calculateurs : la u moans les mathématiciens sont bons.

Mais voous avez peir de qui.? Qu'n pauvre con de Français aille plus vite que Maathématica: Votre attitude bornée n'y change rien..
Je vous rassure vous je repards sans rien avoir appris: il n'y a que la médiocrité a apprendre et la encore desolé il y a mieux que vous
Gardez vottre code si exeptionnel et allez vous faire voir

Meerci de ne pas repondre :rien ne saurait justifier votre meduiocriyé
Fin du Débat
JohnFullspeed is offline   Reply With Quote
Old 2011-09-03, 20:54   #17
firejuggler
 
firejuggler's Avatar
 
Apr 2010
Over the rainbow

251510 Posts
Default

*translator hat**Be warned, offensive language*

You are exactly like the other, you are afraid to be ridiculous.
Let me tell you : you are even more when you do not reply.
You are all as big mouthed as each other. Not one of you can properly use a computer. I'm going back to the calculator(??) :At least, there, mathematician are good.


Who are you afraid off? That a french cunt could go faster than mathemathica : Your narrow minded attitude change nothing...
Let me reassure you, i'm going back having learned nothing : There is only mediocrity to learn , and, there again, there are better people than you.
Keep your so called exceptionnal code, and fuck off.

Thanks for not answering : Nothing would justify your medicrity.
End of the debate.

------------------------------------

Now if you made less typo, it would have been easier to translate.

Last fiddled with by firejuggler on 2011-09-03 at 20:54
firejuggler is offline   Reply With Quote
Old 2011-09-03, 21:00   #18
fivemack
(loop (#_fork))
 
fivemack's Avatar
 
Feb 2006
Cambridge, England

7·911 Posts
Default

Mr Fullspeed will not be bothering us for a moderate period.

M. Fullspeed ne nous bruterons plus pendant quelques semaines.
fivemack is offline   Reply With Quote
Old 2011-09-03, 21:47   #19
science_man_88
 
science_man_88's Avatar
 
"Forget I exist"
Jul 2009
Dumbassville

20C016 Posts
Default

Quote:
Originally Posted by firejuggler View Post
*translator hat**Be warned, offensive language*

You are exactly like the other, you are afraid to be ridiculous.
Let me tell you : you are even more when you do not reply.
You are all as big mouthed as each other. Not one of you can properly use a computer. I'm going back to the calculator(??) :At least, there, mathematician are good.


Who are you afraid off? That a french cunt could go faster than mathemathica : Your narrow minded attitude change nothing...
Let me reassure you, i'm going back having learned nothing : There is only mediocrity to learn , and, there again, there are better people than you.
Keep your so called exceptionnal code, and fuck off.

Thanks for not answering : Nothing would justify your medicrity.
End of the debate.

------------------------------------

Now if you made less typo, it would have been easier to translate.
yeah I had to do a lot of editing to try and find one that made some sense as well (Google translate doesn't help much some days).

Last fiddled with by science_man_88 on 2011-09-03 at 21:48
science_man_88 is offline   Reply With Quote
Old 2011-09-04, 00:42   #20
science_man_88
 
science_man_88's Avatar
 
"Forget I exist"
Jul 2009
Dumbassville

26×131 Posts
Default

Quote:
Originally Posted by JohnFullspeed View Post
Code:
Procedure Veri_GoldBack(L:Qword);
 Var I,J,W:integer;
     M,N,R: Qword;
     e2: double;
    Label LN;
 begin
    I:=0;
    HH:=0; // Le nombre  - le NP
    N:=Primes[200]+1;  /// for testing Not 0  1223
    a1 := GetTickCount;     //timer
    Offset:=0; // sortie
    repeat
     LN:
     N:=  N+2;
     If N>200000 then Break;// stop here
     j:=1;
     repeat
       HH:=N-Primes[j];   // test des divisions
       if not Is_Div(HH) then  Goto LN;
       J:=J+1;
     until J> 20;
     I:=I+1; // not found
   until  i>1000;
    a1 := GetTickCount-a1;

IsPrime:
Code:
Function Is_Div(A: QWord):boolean;
  var i,R,S: Cardinal;
     E5:extended;
   begin
     Result:=True;
     E5:=A;
     R:= Round(Sqrt(E5));
     i:=2;
     repeat
      If A mod Primes[i]=0 then exit;
      I:=I+1;
     until Primes[i] > r;
    Result:=False;
   end;
Like you can see ,I verify since
N=1223+1 even. The step is 2 (even) and I stop at 200 000
So I do 99 383 verifs


And now like Jasonp,axn,Five,silver,Bssquare... you stop to answer because your times are not in the same range that me, and you thinks that I most better that you You stop to answer.
I m not better than other but it's my job.


With the bad test of division I need 0,8 ... seconds
Perhaps I can learn to you if you want
The code is not magic

The time is on my RISC for a CISC the code will be other

PS can you give me the time for
for i:=1 to 100000 do
a=isprime(i);
They all say No.
assuming you every get to come back:

Code:
for(i=0,10,print("X\n"i);forstep(N=prime(2)+1,20,2,print("\t"N);for(J=1,20,HH=N-prime(J);print("\t\t"J);if(isprime(HH),break()));if(N==20,break()));print())
is a gp.exe code just like yours as far as I can tell; the main differences are I use isprime(), have set the limits lower, and have a print out of the variables values as it goes. this way you can see if anyone hits the limit ( if it does your code ( as pointed out by others) will print nothing to alert us to that fact, so it a finder but not a notification of finding code if it works at all).

Last fiddled with by science_man_88 on 2011-09-04 at 01:30
science_man_88 is offline   Reply With Quote
Old 2011-09-04, 04:28   #21
Christenson
 
Christenson's Avatar
 
Dec 2010
Monticello

5·359 Posts
Default

Quote:
Originally Posted by firejuggler View Post
*translator hat**Be warned, offensive language*

You are exactly like the other, you are afraid to be ridiculous.
Let me tell you : you are even more when you do not reply.
You are all as big mouthed as each other. Not one of you can properly use a computer. I'm going back to the calculator(??) :At least, there, mathematician are good.


Who are you afraid off? That a french cunt could go faster than mathemathica : Your narrow minded attitude change nothing...
Let me reassure you, i'm going back having learned nothing : There is only mediocrity to learn , and, there again, there are better people than you.
Keep your so called exceptionnal code, and fuck off.

Thanks for not answering : Nothing would justify your medicrity.
End of the debate.

------------------------------------

Now if you made less typo, it would have been easier to translate.
Thank you, and thank you Mr Xilman.

The code I posted is unexceptional; it is the product of an hour or two's work. It is only a simple brute-force search, and by no means the last word on exhaustively searching for counterexamples to Goldbach's conjecture quickly. I'm still waiting for Mr Fullspeed to analyze it and find the answer to his original question about why Mr Zimmerman used the list of primes, but by no means "holding my breath". I hope others find it reasonably workmanlike and easily understood, and that I put correctness first.
Christenson is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Rho code Happy5214 YAFU 3 2015-11-01 21:54
Please help me with my code daxmick Programming 15 2014-02-14 11:57
Code Help Andrew Programming 12 2013-02-16 20:53
Code Primeinator Software 20 2009-06-11 22:22
A little help with VBS code IronBits No Prime Left Behind 6 2008-11-12 14:23

All times are UTC. The time now is 03:51.

Sat Jan 16 03:51:00 UTC 2021 up 44 days, 2 mins, 1 user, load averages: 1.78, 1.66, 1.53

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.