Bekell
Aktiv  Dabei seit: 05.09.2008 Mitteilungen: 2876
 | Themenstart: 2022-07-04
|
@PZK-Tupel und Querin...
habe zur Analyse der von Querin zur Verfügung gestellten Startnummern der 48 Bekell-Folgen(Länge=43) ein Tool geschrieben.
Ihr müsst nur den Ort ändern, wo die Datei abgelegt werden soll.
Die Datei, die produziert wird, enthält Teilerspiegel der Bekell-Folgen.
Folgendes fällt auf.
1. alle 24 Folgen und ihre Spiegelungen haben ein- und diesselbe PZ-Verteilung, was die PZ des untersten Drittels betrifft. Da der Code der Spiegelungen ja von hinten gelesen wird, gibt es dementsprechend nur zwei Codes, was das unterste PZ-Drittel betrifft.
2. Meine Vorraussage mit 3-5-Klammerung trifft nicht zu. Es ist also nicht eng!
3. Sogar sind 3 der oberen PZ minimal belegt, was bedeutet, man hätte noch 3 Schuss frei. Es erhebt sich also die Frage: Warum gibt es nicht mehr Bekell-Folgen bei Länge 43?
4. Mich dünkt, die Belegung von 31 durch die unteren 5 PZ ist auch kein Maximum. Mehr ist möglich, oder?
https://www.matheplanet.com/matheplanet/nuke/html/uploads/b/23651_TeilerspiegelQuerinN43_0_.png
Hier der Code, der die Datei mit allen Teilerspiegeln produziert: (Etwas chaotisch)
\sourceon Python
\numberson
from sympy import primerange
from sympy import isprime
from math import sqrt
import openpyxl
from openpyxl import Workbook
from openpyxl.styles import Color, PatternFill, Font, Border
from openpyxl.styles import colors
from openpyxl.cell import Cell
from openpyxl.utils import get_column_letter
Folgen=[14478292443585, 14478292443587, 100926979928719, 100926979928721, 1173441490596319, 1173441490596321, 1715784519063585, 1715784519063587, 1981278397203049, 1981278397203051, 2062000336180755, 2062000336180757, 2993956522662075, 2993956522662077, 3224767067406855, 3224767067406857, 3571024580157979, 3571024580157981, 3801835124902759, 3801835124902761, 3802816979356365, 3802816979356367, 3946238677796359, 3946238677796361, 3966142377111885, 3966142377111887, 4149032796473535, 4149032796473537, 4407859767285919, 4407859767285921, 4427763466601445, 4427763466601447, 4838684447722069, 4838684447722071, 5583863290500465, 5583863290500467, 5646521354328799, 5646521354328801, 5651348437489725, 5651348437489727, 5762950176788749, 5762950176788751, 5766753709862115, 5766753709862117, 6276294924734805, 6276294924734807, 6455381811023089, 6455381811023091, 6627379520646855, 6627379520646857, 6806466406935139, 6806466406935141, 7316007621807829, 7316007621807831, 7319811154881195, 7319811154881197, 7431412894180219, 7431412894180221, 7436239977341145, 7436239977341147, 7498898041169479, 7498898041169481, 8244076883947875, 8244076883947877, 8654997865068499, 8654997865068501, 8674901564384025, 8674901564384027, 8933728535196409, 8933728535196411, 9116618954558059, 9116618954558061, 9136522653873585, 9136522653873587, 9279944352313579, 9279944352313581, 9280926206767185, 9280926206767187, 9511736751511965, 9511736751511967, 9857994264263089, 9857994264263091, 10088804809007869, 10088804809007871, 11020760995489189, 11020760995489191, 11101482934466895, 11101482934466897, 11366976812606359, 11366976812606361, 11909319841073625, 11909319841073627, 12981834351741225, 12981834351741227, 13068283039226359, 13068283039226361]
print(len(Folgen))
Folgen43=[]
greenFill = PatternFill(start_color='50FF50',
end_color='50FF50',
fill_type='solid')
yellowFill = PatternFill(start_color="00FFFF00",
end_color="00FFFF00",
fill_type="solid")
def minmax(stück,pz):
if stück*pz>43:
erg = 1
else:
erg = 0
return erg
for x in range(0,96,1):
if x%2!=0:
Folgen43.append(Folgen[x])
#print(len(Folgen43),Folgen43)
PZ=[3,5,7,11,13,17,19,23,29,31,37,41,43]
zahl=0
code=[]
nr=0
uFolge=[]
altzahl=0
zeile=0
Spalte=0
aug=0
zeisam=[]#sammelt die Spalten einer zeile
grünsam=[]# sammmelt die spalten von grün
gelbsam=[]
Anzahl=0
wert=0
wb = openpyxl.Workbook()
ws = wb.active
for a in range(1,2):
ws.column_dimensions[get_column_letter(a)].width = 15
for b in range(2,10000):
ws.column_dimensions[get_column_letter(b)].width = 4 # nich so einfach
for z in Folgen43:
nr+=1
ws.cell(nr+zeile+1,1).value = z
for znr in range(1,44,1):
ws.cell((nr+zeile),1).value = "Startzahl"
ws.cell((nr+zeile),znr+1).value = znr # Kopfzeile ausfüllen mt Ze
ws.cell((nr+zeile),47).value = "Bestückung"
ws.cell((nr+zeile),52).value = "Belegung"
ws.cell((nr+zeile),54).value = "Min/Max Bestückung"
for y in range(0,88,2): # hier sucht er die richtigen Startzahlen,die der länge 44
uFolge.append(z+y)
#print(len(uFolge),uFolge)
for pz in PZ:
zeile+=1
for i,t in enumerate(uFolge):
if t%pz==0:
#code.append(uFolge[i])
#code.append(pz)
code.append(i)
break
Spalte=i+2
aug=0
while Spalte+aug < 43+2:
if pz<=13:
ws.cell(nr+zeile,Spalte+aug).fill = greenFill
zeisam.append(Spalte+aug)
if Spalte+aug not in grünsam:
grünsam.append(Spalte+aug)
else:
ws.cell(nr+zeile,Spalte+aug).fill = yellowFill
zeisam.append(Spalte+aug)
if Spalte+aug not in gelbsam:
gelbsam.append(Spalte+aug)
ws.cell(nr+zeile,Spalte+aug).value = pz
#print("PZ",pz,"Zeile",nr+zeile,"Spalte",i+2,"aug",aug)
aug=aug+pz
Anzahl=len(zeisam)
wert=minmax(Anzahl,pz)
ws.cell(nr+zeile,47).value=Anzahl
ws.cell(nr+zeile,54).value=wert
if pz<=13:
ws.cell(nr+zeile,52).value=len(grünsam)
else:
ws.cell(nr+zeile,52).value=len(gelbsam)
zeisam.clear()# löschen des zeilenwertes
grünsam.clear()
gelbsam.clear()
zeile+=1
uFolge.clear()
#print("Nr: ",nr," Startzahl",z,"primecode:",code,"Diff:",z-altzahl)
altzahl=z
code.clear()
ws.append(['ProjBekell-Folgen/PythonProgramme/TeilerspiegelEX.py'])
ws.append(['ProjBekell-Folgen/Exceldat/Teilerspiegelcodes43.xlsx'])
wb.save("/Users//Desktop/ProjBekell-Folgen/Exceldat/Teilerspiegel43.xlsx")
\sourceoff
|
Profil
|