Skip to content

Instantly share code, notes, and snippets.

@foxqstm
Created September 18, 2021 22:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save foxqstm/f734d8d9838e28e061a878ce13489e0c to your computer and use it in GitHub Desktop.
Save foxqstm/f734d8d9838e28e061a878ce13489e0c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 73,
"id": "09590429",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"count= 470\n",
"47.0 %\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"count= 90\n",
"54.88 %\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fin\n"
]
}
],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import sympy\n",
"import math\n",
"from random import randint\n",
"\n",
"def Exp(N,expN):\n",
" if N>10:\n",
" pi=2*N**0.5/math.log(N)\n",
" r=randint(5,N)\n",
" if r==N:\n",
" r=N-2\n",
" s=N-r\n",
" if r<=10:\n",
" er=expN[r] \n",
" else:\n",
" expN[N]=max(pi-expN[r]-expN[s],expN[N])\n",
" if s<=10:\n",
" es=expN[s]\n",
" else:\n",
" expN[N]=max(pi-expN[r]-expN[s],expN[N])\n",
" return expN[N],expN\n",
" else:\n",
" return expN[N],expN\n",
"\n",
"n_iter=10\n",
"Nmax=1000\n",
"primes=list(sympy.primerange(2,Nmax+1))\n",
"prime_train=[2,3,5,7]\n",
"expN=[1]*(Nmax+2)\n",
"expN[2]=1\n",
"expN[3]=1\n",
"expN[4]=1\n",
"expN[5]=1\n",
"expN[6]=2\n",
"expN[7]=1\n",
"expN[8]=1\n",
"expN[9]=1\n",
"expN[10]=2\n",
"\n",
"PrimeTrue=[]\n",
"PrimeCheck=[]\n",
"for n in range(10,Nmax+1):\n",
" BOOL=True\n",
" if n in primes:\n",
" PrimeTrue.append(1)\n",
" else:\n",
" PrimeTrue.append(0)\n",
" pi=2*n**0.5/math.log(n)\n",
" \n",
" for m in range(n_iter):\n",
" r=randint(5,n)\n",
" if r==n:\n",
" r=n-2\n",
" s=n-r\n",
" g=math.gcd(s,r)\n",
" if g!=1:\n",
" PrimeCheck.append(0)\n",
" break\n",
" else:\n",
" if m==0:\n",
" ermax,expN=Exp(r,expN)\n",
" esmax,expN=Exp(s,expN)\n",
" else:\n",
" er,expN=Exp(r,expN)\n",
" es,expN=Exp(s,expN)\n",
" ermax=max(er,ermax)\n",
" esmax=max(es,esmax)\n",
" prob=(ermax+esmax)/pi\n",
" if prob >0.5:\n",
" PrimeCheck.append(1)\n",
" else:\n",
" PrimeCheck.append(0)\n",
"\n",
"x=[]\n",
"Hit=[]\n",
"count=0\n",
"for n in range(Nmax-10):\n",
" C=PrimeCheck[n]\n",
" T=PrimeTrue[n]\n",
" if C==T:\n",
" count+=1\n",
" x.append(n)\n",
" Hit.append(1)\n",
" else:\n",
" x.append(n)\n",
" Hit.append(0)\n",
"\n",
"print('count=',count)\n",
"print(round(count/Nmax*100,2),'%')\n",
"\n",
"plt.bar(x,Hit)\n",
"plt.show()\n",
"plt.plot(expN)\n",
"plt.show()\n",
"\n",
"\n",
"count=0\n",
"for n in range(Nmax-10):\n",
" C=PrimeCheck[n]\n",
" T=PrimeTrue[n]\n",
" if C==T and T==1:\n",
" count+=1\n",
" x.append(n)\n",
" Hit.append(1)\n",
" else:\n",
" x.append(n)\n",
" Hit.append(0)\n",
"\n",
"print('count=',count)\n",
"print(round(count/(len(primes)-4)*100,2),'%')\n",
"\n",
"plt.bar(x,Hit)\n",
"plt.show()\n",
"\n",
"print('Fin')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment