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.
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 , nämligen:
där är primtalstvillingskonstanten. Det är en förmodan att denna formel är asymptotisk mot det faktiska antalet partitioner när , men precis som Goldbachs starka hypotes har det ännu inte bevisats.
Tack AlvinB!
Hur använder jag det praktiskt? Jag har testat för 10 och 100 och jag får inte rätt uppskattning.
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 och det procentuella felet ligger fortfarande på omkring . 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.
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!
Vad är det för programmeringsproblem?
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.
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.
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 :)
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?)
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.