10 svar
250 visningar
dajamanté är nöjd med hjälpen
dajamanté 5139 – Fd. Medlem
Postad: 2 feb 2019 21:30

Goldbach conjecture

Finns det en sätt att beräkna/uppskatta i förväg hur många sätt en sammansatt tal kan skrivas enligt Goldbach conjecturen? Jag menar den stronga, med 2 primtal.

AlvinB 4014
Postad: 2 feb 2019 22:11 Redigerad: 2 feb 2019 22:11

Jag antar att du pratar om antalet sätt att skriva ett jämnt tal som en summa av två primtal, d.v.s. antalet Goldbachpartitioner av ett jämnt tal.

Det finns en formel för att uppskatta antalet Goldbachpartitioner av ett stort jämnt tal nn, nämligen:

2Π2(p|n;p3p-1p-2)2n1(ln(x))2 dx\displaystyle2\Pi_2(\prod_{p|n;p\geq3}\frac{p-1}{p-2})\int_2^n\frac{1}{(\ln(x))^2}\ dx

där Π2\Pi_2 är primtalstvillingskonstanten. Det är en förmodan att denna formel är asymptotisk mot det faktiska antalet partitioner när nn\to\infty, men precis som Goldbachs starka hypotes har det ännu inte bevisats.

dajamanté 5139 – Fd. Medlem
Postad: 3 feb 2019 05:29

Tack AlvinB!

Hur använder jag det praktiskt? Jag har testat för 10 och 100 och jag får inte rätt uppskattning.

AlvinB 4014
Postad: 3 feb 2019 11:15

En uppskattning är ju inte exakt; du får alltid ett visst fel med den.

Dessvärre är denna uppskattning rätt så usel. Jag har testat värden upp till 1 000 0001\ 000\ 000 och det procentuella felet ligger fortfarande på omkring 103%103%. Längre än så har jag inte kunnat testa eftersom mitt program för att räkna fram Goldbachpartitionerna är för långsamt.

Det verkar som om uppskattningen alltid ger större värden än de egentliga värdena så det är möjligt att man kan använda formeln som en övre begränsning. Dock vet jag inte om man kan visa att uppskattningen alltid är större än det faktiska Goldbachpartitioner så det kan mycket väl vara fel.

dajamanté 5139 – Fd. Medlem
Postad: 3 feb 2019 14:46

Hmm okej, isf denna vägen är kört för mig. Jag behövde en ganska exakt uppskattning att avrunda för en programmeringsproblem.

Tack Alvin!

Laguna Online 28521
Postad: 3 feb 2019 15:07

Vad är det för programmeringsproblem?

dajamanté 5139 – Fd. Medlem
Postad: 3 feb 2019 17:34 Redigerad: 3 feb 2019 17:38

Här Laguna om du vill titta:

https://open.kattis.com/problems/goldbach2

Istället för append:a svaret jag vill gärna ange antal av alla kombinationer i början, därför sökte jag för en användbar formel.

Laguna Online 28521
Postad: 3 feb 2019 18:43
dajamanté skrev:

Här Laguna om du vill titta:

https://open.kattis.com/problems/goldbach2

Istället för append:a svaret jag vill gärna ange antal av alla kombinationer i början, därför sökte jag för en användbar formel.

Aha. Men de nöjer sig väl inte med bara en uppskattning? Du får samla på dig lösningarna i en lista och skriva ut dem efter att du vet hur många de är.

dajamanté 5139 – Fd. Medlem
Postad: 3 feb 2019 20:50 Redigerad: 3 feb 2019 20:50

Ja, men steg by steg Laguna, steg by steg! Nu tänker vi rad 1!

Resten av koden har jag en idé om hur jag ska göra.

Har jag en bra uppskattning kan jag antigen ceil eller floor den, istället för att behöva räkna och append:a allt :)

AlvinB 4014
Postad: 3 feb 2019 20:59

Goldbachs förmodan är ett mycket svårt problem matematiskt. Det är mycket enklare att bara beräkna partitionerna.

Om du inte vill krångla med listor går det ju att köra en StringBuilder där du skriver ut all information om talparen och sedan när du räknat hur många det här kör du:

     System.out.println("Antal partitioner: " + partitioner + "\n" + stringBuilder.toString());

för att printa alltsammans på en gång. (Visst jobbar du i Java?) 

dajamanté 5139 – Fd. Medlem
Postad: 3 feb 2019 21:47

Ja, det är såhär jag tänkte göra, men ibland när man frågar upptäcker man just den perfekt formel för en problem :).

Java och C++ kör jag.

Svara Avbryt
Close