Vinnaren i pepparkakshustävlingen!
2023-08-31, 19:58
  #121
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Mysadname
Japp nu fungerar det, även fast det blev många rader förstås
Med en del jobb tror jag att jag fick filskapandet att fungera även för Fullträff:
Kod:
import requests
import re
import json

import itertools
import sys

gamemode = int(input("Spelform? 1= Stryktipset 2= Europatipset 3= Fullträff "))

if not gamemode in [1,2,3]:
        print ("Endast 1-2 möjliga val. Avbryter.")
        quit()

if gamemode == 3:
	pgoal = int(input("Önskad summa (heltal) ? "))
	pdev = float(input("Tolerabel +/- avvikelse decimaltal (t.ex. 0.05)? "))
	pmin = pgoal-pdev
	pmax = pgoal+pdev
else:
	pmin = int(input("Golvnivå för antal streck (t.ex. 500)? "))
	pmax = int(input("Taknivå för antal streck (t.ex. 550)? "))

mde = int(input("Tryck 1 för text-fil och 2 för CSV-fil: "))

if not mde in [1,2]:
	print ("Endast 1 eller 2 möjliga val. Avbryter.")
	quit()

urls = ["", "https://spela.svenskaspel.se/stryktipset" , "https://spela.svenskaspel.se/europatipset","https://spela.svenskaspel.se/fulltraff"]

url = urls[gamemode]

outfiles = ["","tips.txt","tips.csv"] # namn för dina output-filer
outfile = outfiles[mde]

response = requests.get(url)
html_content = response.text

pattern = r'_svs\.tipsen\.data\.preloadedState\s*=\s*(\{.*\});'
match = re.search(pattern, html_content)
json_str = match.group(1)
json_obj = json.loads(json_str)
gameDict = json_obj["EventTypeStatistic"]
gameKeys = list(dict.keys(gameDict))

signlists = []

if gamemode == 3:  # om fullträff, sätt upp lista utifrån 13 rader
	rowlist=[]
	draws=json_obj["Draws"]["entities"]
	drawsKey = list(dict.keys(draws))[0]
	omg=draws[drawsKey]["drawNumber"]
	#print(draws)
	#print(drawsKey)
	print(f"Fullträff omgång {omg}:")	
else:   # annars sätt upp lista utifrån 3 tecken
	for _ in range(0,3):
		signlists.append([])

for gameKey in gameKeys: # iterera över alla 13 matcher
	if gamemode==3:  # Fullträff
	
		game = gameDict[gameKey]["odds"]["current"]["value"]  # hämtar odds-värden från Fullträff-sidan
		gamesum = 0.0
		floats = []
		fgame = []
		
		for i in range(0,6):
			f = float(game[i])
			floats.append(f)
		
		gamesum = sum(floats)
	
		for ix,o in enumerate(floats):
			newo = 100.0 * o / gamesum  # normalfördela fullträff-oddsen så att summan blir 100.0
			if ix<6:
				fgame.append(newo)

		rowlist.append(fgame)

	else:   # Tipsspel
		game = gameDict[gameKey]["distributions"][str(gamemode)]["Global"]["current"]["value"] # Hämta streckfördelning
	
	if gamemode<3:
		for ix,perc in enumerate(game):
			if perc is not None:
				signlists[ix].append(int(perc)) # använd heltal för tipsen

if gamemode<3:
	P = { "1": signlists[0], "X": signlists[1], "2": signlists[2] } 
	rows = itertools.product(*(['1X2'] * 13))

	cn = 0

	with open(outfile, 'w') as f:  
		for row in rows:
			percentage = sum(P[result][n] for (n, result) in enumerate(row))
		
			if  pmin <= percentage <= pmax:
				cn += 1
				if mde==1:
					f.write("E,"+','.join(row)+"\n")
				if mde==2:
					f.write(','.join(row + (str(percentage),))+"\n")
else:
	maxcoupons = 10000
	cn = 0
	tsts = 0
	
	#for ix,row in enumerate(rowlist):
		#print(ix,":",row)

	valid_combinations = []

	for comb in itertools.product(*[enumerate(row) for row in rowlist]):  # Cartesian product of all rows with enumerated elements
		
		indices, values = zip(*comb)  # Unzip the enumerated pairs into indices and values
		s = sum(values)
		tsts += 1

		if tsts % 1000000 == 0:
			print(int(tsts / 1000000)," million iterations")
		if pmin <= s <= pmax:
			if mde == 2:
				indices=list(indices)+[s]
			valid_combinations.append(indices)
			#print (" ".join(str(nm) for nm in indices))
			cn += 1
		if cn>=maxcoupons:
			break
	
	with open(outfile, 'w') as f:
		f.write(f"Fulltraff,Omg={omg}\n") # första raden 
		for comb in valid_combinations:
			if mde == 1: # TXT-läge
				comb=list(comb)
				comb.pop() # ta bort summa som inte används i TXT-läge
				f.write("E,"+','.join(str(nm) for nm in comb)+"\n")
				
			elif mde == 2: # CSV-läge
				f.write(','.join(str(nm) for nm in comb)+"\n")



print(f"{outfile} skapad med {cn} rader!")
Citera
2023-08-31, 20:14
  #122
Medlem
Citat:
Ursprungligen postat av Enterprise
Med en del jobb tror jag att jag fick filskapandet att fungera även för Fullträff:
Kod:
import requests
import re
import json

import itertools
import sys

gamemode = int(input("Spelform? 1= Stryktipset 2= Europatipset 3= Fullträff "))

if not gamemode in [1,2,3]:
        print ("Endast 1-2 möjliga val. Avbryter.")
        quit()

if gamemode == 3:
	pgoal = int(input("Önskad summa (heltal) ? "))
	pdev = float(input("Tolerabel +/- avvikelse decimaltal (t.ex. 0.05)? "))
	pmin = pgoal-pdev
	pmax = pgoal+pdev
else:
	pmin = int(input("Golvnivå för antal streck (t.ex. 500)? "))
	pmax = int(input("Taknivå för antal streck (t.ex. 550)? "))

mde = int(input("Tryck 1 för text-fil och 2 för CSV-fil: "))

if not mde in [1,2]:
	print ("Endast 1 eller 2 möjliga val. Avbryter.")
	quit()

urls = ["", "https://spela.svenskaspel.se/stryktipset" , "https://spela.svenskaspel.se/europatipset","https://spela.svenskaspel.se/fulltraff"]

url = urls[gamemode]

outfiles = ["","tips.txt","tips.csv"] # namn för dina output-filer
outfile = outfiles[mde]

response = requests.get(url)
html_content = response.text

pattern = r'_svs\.tipsen\.data\.preloadedState\s*=\s*(\{.*\});'
match = re.search(pattern, html_content)
json_str = match.group(1)
json_obj = json.loads(json_str)
gameDict = json_obj["EventTypeStatistic"]
gameKeys = list(dict.keys(gameDict))

signlists = []

if gamemode == 3:  # om fullträff, sätt upp lista utifrån 13 rader
	rowlist=[]
	draws=json_obj["Draws"]["entities"]
	drawsKey = list(dict.keys(draws))[0]
	omg=draws[drawsKey]["drawNumber"]
	#print(draws)
	#print(drawsKey)
	print(f"Fullträff omgång {omg}:")	
else:   # annars sätt upp lista utifrån 3 tecken
	for _ in range(0,3):
		signlists.append([])

for gameKey in gameKeys: # iterera över alla 13 matcher
	if gamemode==3:  # Fullträff
	
		game = gameDict[gameKey]["odds"]["current"]["value"]  # hämtar odds-värden från Fullträff-sidan
		gamesum = 0.0
		floats = []
		fgame = []
		
		for i in range(0,6):
			f = float(game[i])
			floats.append(f)
		
		gamesum = sum(floats)
	
		for ix,o in enumerate(floats):
			newo = 100.0 * o / gamesum  # normalfördela fullträff-oddsen så att summan blir 100.0
			if ix<6:
				fgame.append(newo)

		rowlist.append(fgame)

	else:   # Tipsspel
		game = gameDict[gameKey]["distributions"][str(gamemode)]["Global"]["current"]["value"] # Hämta streckfördelning
	
	if gamemode<3:
		for ix,perc in enumerate(game):
			if perc is not None:
				signlists[ix].append(int(perc)) # använd heltal för tipsen

if gamemode<3:
	P = { "1": signlists[0], "X": signlists[1], "2": signlists[2] } 
	rows = itertools.product(*(['1X2'] * 13))

	cn = 0

	with open(outfile, 'w') as f:  
		for row in rows:
			percentage = sum(P[result][n] for (n, result) in enumerate(row))
		
			if  pmin <= percentage <= pmax:
				cn += 1
				if mde==1:
					f.write("E,"+','.join(row)+"\n")
				if mde==2:
					f.write(','.join(row + (str(percentage),))+"\n")
else:
	maxcoupons = 10000
	cn = 0
	tsts = 0
	
	#for ix,row in enumerate(rowlist):
		#print(ix,":",row)

	valid_combinations = []

	for comb in itertools.product(*[enumerate(row) for row in rowlist]):  # Cartesian product of all rows with enumerated elements
		
		indices, values = zip(*comb)  # Unzip the enumerated pairs into indices and values
		s = sum(values)
		tsts += 1

		if tsts % 1000000 == 0:
			print(int(tsts / 1000000)," million iterations")
		if pmin <= s <= pmax:
			if mde == 2:
				indices=list(indices)+[s]
			valid_combinations.append(indices)
			#print (" ".join(str(nm) for nm in indices))
			cn += 1
		if cn>=maxcoupons:
			break
	
	with open(outfile, 'w') as f:
		f.write(f"Fulltraff,Omg={omg}\n") # första raden 
		for comb in valid_combinations:
			if mde == 1: # TXT-läge
				comb=list(comb)
				comb.pop() # ta bort summa som inte används i TXT-läge
				f.write("E,"+','.join(str(nm) for nm in comb)+"\n")
				
			elif mde == 2: # CSV-läge
				f.write(','.join(str(nm) for nm in comb)+"\n")



print(f"{outfile} skapad med {cn} rader!")

Oh, häftigt, lite för sent att påbörja nu ikväll men den ska igång direkt imorgon bitti.

Apropå normalfördelningen så blev det för både csv och text filvalen.
Citera
2023-09-01, 06:00
  #123
Medlem
Citat:
Ursprungligen postat av Enterprise
Med en del jobb tror jag att jag fick filskapandet att fungera även för Fullträff:
Kod:
import requests
import re
import json

import itertools
import sys

gamemode = int(input("Spelform? 1= Stryktipset 2= Europatipset 3= Fullträff "))

if not gamemode in [1,2,3]:
        print ("Endast 1-2 möjliga val. Avbryter.")
        quit()

if gamemode == 3:
	pgoal = int(input("Önskad summa (heltal) ? "))
	pdev = float(input("Tolerabel +/- avvikelse decimaltal (t.ex. 0.05)? "))
	pmin = pgoal-pdev
	pmax = pgoal+pdev
else:
	pmin = int(input("Golvnivå för antal streck (t.ex. 500)? "))
	pmax = int(input("Taknivå för antal streck (t.ex. 550)? "))

mde = int(input("Tryck 1 för text-fil och 2 för CSV-fil: "))

if not mde in [1,2]:
	print ("Endast 1 eller 2 möjliga val. Avbryter.")
	quit()

urls = ["", "https://spela.svenskaspel.se/stryktipset" , "https://spela.svenskaspel.se/europatipset","https://spela.svenskaspel.se/fulltraff"]

url = urls[gamemode]

outfiles = ["","tips.txt","tips.csv"] # namn för dina output-filer
outfile = outfiles[mde]

response = requests.get(url)
html_content = response.text

pattern = r'_svs\.tipsen\.data\.preloadedState\s*=\s*(\{.*\});'
match = re.search(pattern, html_content)
json_str = match.group(1)
json_obj = json.loads(json_str)
gameDict = json_obj["EventTypeStatistic"]
gameKeys = list(dict.keys(gameDict))

signlists = []

if gamemode == 3:  # om fullträff, sätt upp lista utifrån 13 rader
	rowlist=[]
	draws=json_obj["Draws"]["entities"]
	drawsKey = list(dict.keys(draws))[0]
	omg=draws[drawsKey]["drawNumber"]
	#print(draws)
	#print(drawsKey)
	print(f"Fullträff omgång {omg}:")	
else:   # annars sätt upp lista utifrån 3 tecken
	for _ in range(0,3):
		signlists.append([])

for gameKey in gameKeys: # iterera över alla 13 matcher
	if gamemode==3:  # Fullträff
	
		game = gameDict[gameKey]["odds"]["current"]["value"]  # hämtar odds-värden från Fullträff-sidan
		gamesum = 0.0
		floats = []
		fgame = []
		
		for i in range(0,6):
			f = float(game[i])
			floats.append(f)
		
		gamesum = sum(floats)
	
		for ix,o in enumerate(floats):
			newo = 100.0 * o / gamesum  # normalfördela fullträff-oddsen så att summan blir 100.0
			if ix<6:
				fgame.append(newo)

		rowlist.append(fgame)

	else:   # Tipsspel
		game = gameDict[gameKey]["distributions"][str(gamemode)]["Global"]["current"]["value"] # Hämta streckfördelning
	
	if gamemode<3:
		for ix,perc in enumerate(game):
			if perc is not None:
				signlists[ix].append(int(perc)) # använd heltal för tipsen

if gamemode<3:
	P = { "1": signlists[0], "X": signlists[1], "2": signlists[2] } 
	rows = itertools.product(*(['1X2'] * 13))

	cn = 0

	with open(outfile, 'w') as f:  
		for row in rows:
			percentage = sum(P[result][n] for (n, result) in enumerate(row))
		
			if  pmin <= percentage <= pmax:
				cn += 1
				if mde==1:
					f.write("E,"+','.join(row)+"\n")
				if mde==2:
					f.write(','.join(row + (str(percentage),))+"\n")
else:
	maxcoupons = 10000
	cn = 0
	tsts = 0
	
	#for ix,row in enumerate(rowlist):
		#print(ix,":",row)

	valid_combinations = []

	for comb in itertools.product(*[enumerate(row) for row in rowlist]):  # Cartesian product of all rows with enumerated elements
		
		indices, values = zip(*comb)  # Unzip the enumerated pairs into indices and values
		s = sum(values)
		tsts += 1

		if tsts % 1000000 == 0:
			print(int(tsts / 1000000)," million iterations")
		if pmin <= s <= pmax:
			if mde == 2:
				indices=list(indices)+[s]
			valid_combinations.append(indices)
			#print (" ".join(str(nm) for nm in indices))
			cn += 1
		if cn>=maxcoupons:
			break
	
	with open(outfile, 'w') as f:
		f.write(f"Fulltraff,Omg={omg}\n") # första raden 
		for comb in valid_combinations:
			if mde == 1: # TXT-läge
				comb=list(comb)
				comb.pop() # ta bort summa som inte används i TXT-läge
				f.write("E,"+','.join(str(nm) for nm in comb)+"\n")
				
			elif mde == 2: # CSV-läge
				f.write(','.join(str(nm) for nm in comb)+"\n")



print(f"{outfile} skapad med {cn} rader!")

Den var lurig, jag trodde inte jag fick ut några rader när jag inte fick se de komma ut, men testade lite olika så såg jag att det blev en fil sparad, har dock inte hunnit kolla ännu om det ser rätt ut, det är ju kanske en framtida grej man skulle kunna automatisera, men med lite formler så kan man lösa det hjälpligt om det inte blir för många förstås, det är den stora nackdelen med formler, det suger enormt med kraft från datorn och oftast svarar inte excel på mina beräkningar.

Ps: min summa var 5 ifrån på Europatipset igår så det ser ut att kunna bli något bra av detta till slut.
Då tog jag siffrorna med 1 timme till spelstopp, vid spelstopp var jag 3,5 ifrån, det är just det som är det viktiga eftersom de varierar med tiden när folk spelar, därför behöver man kunna göra systembygget så sent som möjligt, och ju fler som spelar i kombination med hur många tänkbara rader som finns, desto mindre förändringar sker.
__________________
Senast redigerad av Mysadname 2023-09-01 kl. 06:06.
Citera
2023-09-01, 14:17
  #124
Medlem
Citat:
Ursprungligen postat av Enterprise
Med en del jobb tror jag att jag fick filskapandet att fungera även för Fullträff:
Kod:
import requests
import re
import json

import itertools
import sys

gamemode = int(input("Spelform? 1= Stryktipset 2= Europatipset 3= Fullträff "))

if not gamemode in [1,2,3]:
        print ("Endast 1-2 möjliga val. Avbryter.")
        quit()

if gamemode == 3:
	pgoal = int(input("Önskad summa (heltal) ? "))
	pdev = float(input("Tolerabel +/- avvikelse decimaltal (t.ex. 0.05)? "))
	pmin = pgoal-pdev
	pmax = pgoal+pdev
else:
	pmin = int(input("Golvnivå för antal streck (t.ex. 500)? "))
	pmax = int(input("Taknivå för antal streck (t.ex. 550)? "))

mde = int(input("Tryck 1 för text-fil och 2 för CSV-fil: "))

if not mde in [1,2]:
	print ("Endast 1 eller 2 möjliga val. Avbryter.")
	quit()

urls = ["", "https://spela.svenskaspel.se/stryktipset" , "https://spela.svenskaspel.se/europatipset","https://spela.svenskaspel.se/fulltraff"]

url = urls[gamemode]

outfiles = ["","tips.txt","tips.csv"] # namn för dina output-filer
outfile = outfiles[mde]

response = requests.get(url)
html_content = response.text

pattern = r'_svs\.tipsen\.data\.preloadedState\s*=\s*(\{.*\});'
match = re.search(pattern, html_content)
json_str = match.group(1)
json_obj = json.loads(json_str)
gameDict = json_obj["EventTypeStatistic"]
gameKeys = list(dict.keys(gameDict))

signlists = []

if gamemode == 3:  # om fullträff, sätt upp lista utifrån 13 rader
	rowlist=[]
	draws=json_obj["Draws"]["entities"]
	drawsKey = list(dict.keys(draws))[0]
	omg=draws[drawsKey]["drawNumber"]
	#print(draws)
	#print(drawsKey)
	print(f"Fullträff omgång {omg}:")	
else:   # annars sätt upp lista utifrån 3 tecken
	for _ in range(0,3):
		signlists.append([])

for gameKey in gameKeys: # iterera över alla 13 matcher
	if gamemode==3:  # Fullträff
	
		game = gameDict[gameKey]["odds"]["current"]["value"]  # hämtar odds-värden från Fullträff-sidan
		gamesum = 0.0
		floats = []
		fgame = []
		
		for i in range(0,6):
			f = float(game[i])
			floats.append(f)
		
		gamesum = sum(floats)
	
		for ix,o in enumerate(floats):
			newo = 100.0 * o / gamesum  # normalfördela fullträff-oddsen så att summan blir 100.0
			if ix<6:
				fgame.append(newo)

		rowlist.append(fgame)

	else:   # Tipsspel
		game = gameDict[gameKey]["distributions"][str(gamemode)]["Global"]["current"]["value"] # Hämta streckfördelning
	
	if gamemode<3:
		for ix,perc in enumerate(game):
			if perc is not None:
				signlists[ix].append(int(perc)) # använd heltal för tipsen

if gamemode<3:
	P = { "1": signlists[0], "X": signlists[1], "2": signlists[2] } 
	rows = itertools.product(*(['1X2'] * 13))

	cn = 0

	with open(outfile, 'w') as f:  
		for row in rows:
			percentage = sum(P[result][n] for (n, result) in enumerate(row))
		
			if  pmin <= percentage <= pmax:
				cn += 1
				if mde==1:
					f.write("E,"+','.join(row)+"\n")
				if mde==2:
					f.write(','.join(row + (str(percentage),))+"\n")
else:
	maxcoupons = 10000
	cn = 0
	tsts = 0
	
	#for ix,row in enumerate(rowlist):
		#print(ix,":",row)

	valid_combinations = []

	for comb in itertools.product(*[enumerate(row) for row in rowlist]):  # Cartesian product of all rows with enumerated elements
		
		indices, values = zip(*comb)  # Unzip the enumerated pairs into indices and values
		s = sum(values)
		tsts += 1

		if tsts % 1000000 == 0:
			print(int(tsts / 1000000)," million iterations")
		if pmin <= s <= pmax:
			if mde == 2:
				indices=list(indices)+[s]
			valid_combinations.append(indices)
			#print (" ".join(str(nm) for nm in indices))
			cn += 1
		if cn>=maxcoupons:
			break
	
	with open(outfile, 'w') as f:
		f.write(f"Fulltraff,Omg={omg}\n") # första raden 
		for comb in valid_combinations:
			if mde == 1: # TXT-läge
				comb=list(comb)
				comb.pop() # ta bort summa som inte används i TXT-läge
				f.write("E,"+','.join(str(nm) for nm in comb)+"\n")
				
			elif mde == 2: # CSV-läge
				f.write(','.join(str(nm) for nm in comb)+"\n")



print(f"{outfile} skapad med {cn} rader!")

Nu vill man hem och kolla de 1745 rader som kom ut på fullträff, blir första checken för att se så att rätt rader kommit ut, det är ju lite för många för spel men jag hoppas hinna köra några gånger till för att se var toleransen bör vara eller om jag löser det sista med excels minsta formel.Om jag hinner så ska jag även kolla stryktips raderna som det ser ut just nu, där verkar antalet rader ligga mellan 5-6000 med samma summa då det är streckprocent, för där gäller fortfarande golv och tak.
Citera
2023-09-01, 14:24
  #125
Medlem
horfittans avatar
Citat:
Ursprungligen postat av Mysadname
Jag kör just nu och de första 2400000000 raderna tog 30 minuter, så det går lite fortare hos mig, ca: 80 miljoner per minut, snyggt att du kunde lägga alla 3 spelen i samma script.

Men pannben. Här använder man lämpligtvis någon BCH-kod för att göra ett lämpligt urval i termer av felkorrigerande kod, exempelvis [13, 5, 7] för reducering till 23675 rader.
Citera
2023-09-01, 14:34
  #126
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av horfittan
Men pannben. Här använder man lämpligtvis någon BCH-kod för att göra ett lämpligt urval i termer av felkorrigerande kod, exempelvis [13, 5, 7] för reducering till 23675 rader.
Kom gärna med exempel på fungerande kod, psuedo-kod åtminstone en länk till vad du pratar om. För jag har ingen jävla aning.
Citera
2023-09-01, 14:40
  #127
Medlem
horfittans avatar
Citat:
Ursprungligen postat av Mysadname
Jag skulle helt enkelt vilja kunna skriva ut alla stryktipsrader, enkelrader, tänker att det borde kanske inte vara så svårt, kruxet är ju antalet rader.

PHP:

Kod:
<?php

define
('SET', ['1''X''2']);

function 
konsumtion($starttid$radsumma$tipsrad) {
    
$minne memory_get_peak_usage(true) / 1048576.0;
    
$tidsdifferens round(microtime(true) - $starttid2);
    echo 
"Minnesåtgång: $minne MB<br/>";
    echo 
"Tidsåtgång: $tidsdifferens s<br/>";
    echo 
"Antal rader: $radsumma<br/>";
    echo 
"Slutlig tipsrad: $tipsrad<br/>";
}

function 
g($n) {
    if (
$n == 0yield '';
    else foreach(
g($n 1) as $e) foreach(SET as $kyield $e.$k;
}

function 
generation($n) {
    foreach(
g($n) as $tipsrad) {
//        echo "$tipsrad<br/>" . PHP_EOL;
        
$radsumma++;
    }
    return [
$radsumma$tipsrad];
}

$starttid microtime(true);
[
$radsumma$tipsrad] = generation(13);
konsumtion($starttid$radsumma$tipsrad);

Minnesåtgång: 2 MB
Tidsåtgång: 0.21 s
Antal rader: 1594323
Slutlig tipsrad: 2222222222222
Citera
2023-09-01, 14:44
  #128
Medlem
horfittans avatar
Citat:
Ursprungligen postat av Enterprise
Kom gärna med exempel på fungerande kod, psuedo-kod åtminstone en länk till vad du pratar om. För jag har ingen jävla aning.

Så gärna:

$x1 = (5 * $x10 + 3 * $x11 + 3 * $x12) % 7;
$x2 = ($x10 + 5 * $x12) % 7;
$x3 = (4 * $x10 + 2 * $x11 + $x12) % 7;
$x4 = (5 * $x10 + 5 * $x12) % 7;
$x5 = (4 * $x10 + 6 * $x11 + $x12) % 7;
$x6 = (5 * $x10 + 2 * $x12) % 7;
$x7 = (3 * $x10 + 4 * $x11 + 6 * $x12) % 7;
$x8 = (2 * $x10 + $x12) % 7;
$x9 = (5 * $x10 + 5 * $x11 + 3 * $x12) % 7;
Citera
2023-09-01, 16:49
  #129
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av horfittan
Så gärna:

$x1 = (5 * $x10 + 3 * $x11 + 3 * $x12) % 7;
$x2 = ($x10 + 5 * $x12) % 7;
$x3 = (4 * $x10 + 2 * $x11 + $x12) % 7;
$x4 = (5 * $x10 + 5 * $x12) % 7;
$x5 = (4 * $x10 + 6 * $x11 + $x12) % 7;
$x6 = (5 * $x10 + 2 * $x12) % 7;
$x7 = (3 * $x10 + 4 * $x11 + 6 * $x12) % 7;
$x8 = (2 * $x10 + $x12) % 7;
$x9 = (5 * $x10 + 5 * $x11 + 3 * $x12) % 7;
Med mindre än att du förklarar vad du menar att denna (PHP?) kod innebär, så är det mitt välgrundande förmodande att du försöker trolla oss.
Edit: Din PHP-kod i posten ovanför fungerar säkert att iterera över tipstabellen, den ser legit ut, men just det här ser bara ryckt ut från sitt sammanhang.
__________________
Senast redigerad av Enterprise 2023-09-01 kl. 16:53.
Citera
2023-09-01, 16:54
  #130
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av horfittan
PHP:

Kod:
<?php

define
('SET', ['1''X''2']);

function 
konsumtion($starttid$radsumma$tipsrad) {
    
$minne memory_get_peak_usage(true) / 1048576.0;
    
$tidsdifferens round(microtime(true) - $starttid2);
    echo 
"Minnesåtgång: $minne MB<br/>";
    echo 
"Tidsåtgång: $tidsdifferens s<br/>";
    echo 
"Antal rader: $radsumma<br/>";
    echo 
"Slutlig tipsrad: $tipsrad<br/>";
}

function 
g($n) {
    if (
$n == 0yield '';
    else foreach(
g($n 1) as $e) foreach(SET as $kyield $e.$k;
}

function 
generation($n) {
    foreach(
g($n) as $tipsrad) {
//        echo "$tipsrad<br/>" . PHP_EOL;
        
$radsumma++;
    }
    return [
$radsumma$tipsrad];
}

$starttid microtime(true);
[
$radsumma$tipsrad] = generation(13);
konsumtion($starttid$radsumma$tipsrad);

Minnesåtgång: 2 MB
Tidsåtgång: 0.21 s
Antal rader: 1594323
Slutlig tipsrad: 2222222222222
Det som tar tid är alltså att iterea över fullträffen eftersom det är 13 rader med 6 alternativ på varje = 13 miljarder kombinationer. Stryktipset går fort att iterera oavsett.
Citera
2023-09-01, 17:18
  #131
Medlem
horfittans avatar
Citat:
Ursprungligen postat av Enterprise
Med mindre än att du förklarar vad du menar att denna (PHP?) kod innebär, så är det mitt välgrundande förmodande att du försöker trolla oss.

https://en.wikipedia.org/wiki/BCH_code

Vill du bli rik får du nog plöja matten och inte hoppas på att få fisken doppad i halsen.
Citera
2023-09-01, 17:20
  #132
Medlem
horfittans avatar
Citat:
Ursprungligen postat av Enterprise
Det som tar tid är alltså att iterea över fullträffen eftersom det är 13 rader med 6 alternativ på varje = 13 miljarder kombinationer. Stryktipset går fort att iterera oavsett.

Ja, men man itererar alltså inte över hela FT, eftersom rymden är alldeles för stor. Man nyttjar felkorrigerande koder av något slag, varvid BCH-koder är de mest lämpliga.

Om man ändå tvunget vill köra över hela volymen kan man tillämpa parallella processer för att snabba upp förloppet.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback