Aller au contenu

Thread du 462


kozayamax

Messages recommandés

  • 1 mois après...
  • Réponses 400
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Messages populaires

En cherchant un avatar pour Adium, dans des dimensions "adéquates"... un beau 462² :

En plus ça ne pouvait être que pour toi.

Images postées

  • 3 semaines après...

Attention :c'est long, compliqué et moche

s={}

--[[s[1]={0' date='0,3,0,2,0,6,0,0,}

s[2']={9,0,0,3,0,5,0,0,1,}

s[3]={0,0,1,8,0,6,4,0,0,}

s[4]={0,0,8,1,0,2,9,0,0,}

s[5]={7,0,0,0,0,0,0,0,8,}

s[6]={0,0,6,7,0,8,2,0,0,}

s[7]={0,0,2,6,0,9,5,0,0,}

s[8]={8,0,0,2,0,3,0,0,9,}

s[9]={0,0,5,0,1,0,3,0,0,}--]]

--[[s[1]={2,0,0,0,8,0,3,0,0,}

s[2]={0,6,0,0,7,0,0,8,4,}

s[3]={0,3,0,5,0,0,2,0,9,}

s[4]={0,0,0,1,0,5,4,0,8,}

s[5]={0,0,0,0,0,0,0,0,0,}

s[6]={4,0,2,7,0,6,0,0,0,}

s[7]={3,0,1,0,0,7,0,4,0,}

s[8]={7,2,0,0,4,0,0,6,0,}

s[9]={0,0,4,0,1,0,0,0,3,}--]]

s[1]={0,0,0,0,0,0,9,0,7,}

s[2]={0,0,0,4,2,0,1,8,0,}

s[3]={0,0,0,7,0,5,0,2,6,}

s[4]={1,0,0,9,0,4,0,0,0,}

s[5]={0,5,0,0,0,0,0,4,0,}

s[6]={0,0,0,5,0,7,0,0,9,}

s[7]={9,2,0,1,0,8,0,0,0,}

s[8]={0,3,4,0,5,9,0,0,0,}

s[9]={5,0,7,0,0,0,0,0,0,}

r={}

r[1]={0,0,0,0,0,0,0,0,0}

r[2]={0,0,0,0,0,0,0,0,0}

r[3]={0,0,0,0,0,0,0,0,0}

r[4]={0,0,0,0,0,0,0,0,0}

r[5]={0,0,0,0,0,0,0,0,0}

r[6]={0,0,0,0,0,0,0,0,0}

r[7]={0,0,0,0,0,0,0,0,0}

r[8]={0,0,0,0,0,0,0,0,0}

r[9]={0,0,0,0,0,0,0,0,0}

--Bitwise Or

function bor(a,:p

ua=a

ta={0,0,0,0,0,0,0,0,0}

ub=b

tb={0,0,0,0,0,0,0,0,0}

for i=8,0,-1 do

aa=2^(i)

if ua>=aa then ua=ua-aa; ta[i+1]=1 end

end

for i=8,0,-1 do

ba=2^i

if ub>=ba then ub=ub-ba; tb[i+1]=1 end

end

res={0,0,0,0,0,0,0,0,0}

for i=1,9,1 do

if (ta==1 or tb==1) then res=1 end

end

ua=0

for i=8,0,-1 do

ua=ua+res[i+1]*2^(i)

end

return ua

end

--Bitwise And

function band(a,:p

ua=a

ta={0,0,0,0,0,0,0,0,0}

ub=b

tb={0,0,0,0,0,0,0,0,0}

for i=8,0,-1 do

aa=2^(i)

if ua>=aa then ua=ua-aa; ta[i+1]=1 end

end

for i=8,0,-1 do

ba=2^i

if ub>=ba then ub=ub-ba; tb[i+1]=1 end

end

res={0,0,0,0,0,0,0,0,0}

for i=1,9,1 do

if (ta==1 and tb==1) then res=1 end

end

ua=0

for i=8,0,-1 do

ua=ua+res[i+1]*2^(i)

end

return ua

end

-- Check for obvious answers

function phase1()

ok=1

-- bug : Could use the s array for c, simplifying checks.

while ok==1 do

ok=0

-- by individual square

for x=1,7,3 do

for y=1,7,3 do

d=511

for a=x,x+2,1 do

for b=y,y+2,1 do

c=r[a]

if c==1 or c==2 or c==4 or c==8 or c==16 or c==32 or c==64 or c==128 or c==256 then d=d-c end

end

end

for a=x,x+2,1 do

for b=y,y+2,1 do

c=r[a]

if not (c==1 or c==2 or c==4 or c==8 or c==16 or c==32 or c==64 or c==128 or c==256) and not(band(r[a],d)==r[a]) then r[a]=band(r[a],d); ok=1; end

end

end

end

end

-- by line

for y=1,9,1 do

d=511

for x=1,9,1 do

c=r[y][x]

if c==1 or c==2 or c==4 or c==8 or c==16 or c==32 or c==64 or c==128 or c==256 then d=d-c end

end

for x=1,9,1 do

c=r[y][x]

if not (c==1 or c==2 or c==4 or c==8 or c==16 or c==32 or c==64 or c==128 or c==256) and not(band(r[y][x],d)==r[y][x]) then r[y][x]=band(r[y][x],d);ok=1 end

end

end

--by column

for x=1,9,1 do

d=511

for y=1,9,1 do

c=r[y][x]

if c==1 or c==2 or c==4 or c==8 or c==16 or c==32 or c==64 or c==128 or c==256 then d=d-c end

end

for y=1,9,1 do

c=r[y][x]

if not (c==1 or c==2 or c==4 or c==8 or c==16 or c==32 or c==64 or c==128 or c==256) and band(r[y][x],d)~=r[y][x] then r[y][x]=band(r[y][x],d);ok=1 end

end

end

end

end

--Check for singleton

function phase2()

ok=0

ok=singlesquare()

phase1()

ok=ok+singlecolumn()

phase1()

ok=ok+singleline()

phase1()

if ok>=1 then phase2() end

end

function singlesquare()

ok=0

for i=0,6,3 do

for j=0,6,3 do

--select square

nbr={0,0,0,0,0,0,0,0,0}

-- count each possible number in each unresolved parts

for x=1,3,1 do

for y=1,3,1 do

c=r[y+j][x+i]

for a=0,8,1 do

d=2^a

if band(c,d)==d and s[y+j][x+i]==0 then nbr[a+1]=nbr[a+1]+1 end

if s[y+j][x+i]==a+1 then nbr[a+1]=0 end

end

end

end

--set each unique number

for a=1,9,1 do

if nbr[a]==1 then

d=2^(a-1)

for x=1,3,1 do

for y=1,3,1 do

c=r[y+j][x+i]

if band(c,d)==d and s[y+j][x+i]==0 then r[y+j][x+i]=d; s[y+j][x+i]=a; ok=1 end

end

end

end

end

end

end

return ok

end

function singleline()

ok=0

--check for singletons by line

for y=1,9,1 do

-- for each line create an array counting the possibles numbers

nbr={0,0,0,0,0,0,0,0,0}

for x=1,9,1 do

c=r[y][x]

for a=0,8,1 do

d=2^a

if band(c,d)==d and s[y][x]==0 then nbr[a+1]=nbr[a+1]+1 end

end

end

-- now check if one or more are present only once and set them.

for a=1,9,1 do

if nbr[a]==1 then

d=2^(a-1)

for x=1,9,1 do

c=r[y][x]

if band(c,d)==d and s[y][x]==0 then r[y][x]=d; s[y][x]=a;ok=1 end

end

end

end

end

return ok

end

function singlecolumn()

ok=0

for x=1,9,1 do

-- for each column create an array counting the possibles numbers

nbr={0,0,0,0,0,0,0,0,0}

for y=1,9,1 do

c=r[y][x]

for a=0,8,1 do

d=2^a

if band(c,d)==d and s[y][x]==0 then nbr[a+1]=nbr[a+1]+1 end

end

end

-- now check if one or more are present only once and set them.

for a=1,9,1 do

if nbr[a]==1 then

d=2^(a-1)

for y=1,9,1 do

c=r[y][x]

if band(c,d)==d and s[y][x]==0 then r[y][x]=d; s[y][x]=a;ok=1 end

end

end

end

end

return ok

end

function printit()

print("╠═════╬═════╬═════╣")

for b=1,9,1 do

c=""

for a=1,9,1 do

e=r[a]

f=0

if e>=256 then e=e-256; f=f*10+9 end

if e>=128 then e=e-128;f=f*10+8 end

if e>=64 then e=e-64;f=f*10+7 end

if e>=32 then e=e-32;f=f*10+6 end

if e>=16 then e=e-16;f=f*10+5 end

if e>=8 then e=e-8;f=f*10+4 end

if e>=4 then e=e-4;f=f*10+3 end

if e>=2 then e=e-2;f=f*10+2 end

if e>=1 then e=e-1;f=f*10+1 end

-- if f==0 then f=e end

if (a-1)%3==0 then c=string.format("%s║%01d",c,f) else c=string.format("%s %01d",c,f) end

end

print(string.format("%s║",c))

if b%3==0 then print("╠═════╬═════╬═════╣") end

end

end

-- / Main Loop /

-- print the unresolved sudoku

for b=1,9,1 do

c=""

for a=1,9,1 do

c=string.format("%s %d",c,s[a])

end

print©

end

--init the array

-- add ability to load the puzzle from file

for a=1,9,1 do

for b=1,9,1 do

if s[a]==0 then r[a]=511 end

if s[a]>0 and s[a]<=9 then r[a]=2^(s[a]-1) end

end

end

print()

phase1()

--printit()

phase2()

-- print and interpret the content of the logic solved sudoku

printit()

lancez le programme. Tout ça durant un debuggage. :p

Lien à poster
  • 1 mois après...
  • 2 semaines après...

stranger> Encore une preuve que je passe trop de temps devant mon PC : j'en veux.

TeKa> A chaque fois que je vois une info "officielle" comme celle-là, l'adjonction d'un gros 462 a tendance à la décrédibiliser quelque peu à mes yeux.

Il a pas mal augmenté, le carburant...

Les gens dans mon entourage immédiat se sont visiblement demandé pourquoi je prenais la pompe en photo :

img1739kh.th.jpg

Lien à poster
  • 3 semaines après...
  • 3 semaines après...
  • 2 semaines après...
  • 3 semaines après...
  • 3 semaines après...

Je viens d'appeler le 1014 : sur ma facture de fixe, un appel de 14 secondes vers un service de recherche de numéros internationaux m'a été facturé... 1.462 €.

(et comme je n'ai *jamais* de ma vie appelé un service de ce type, j'ai demandé des explications : 10 min plus tard j'ai reçu un SMS m'indiquant que le dossier était régularisé et que la somme me serait restituée - je ne me sais pas si je dois me désoler de ce type d'erreur ou me réjouir de l'efficacité du service de traitement des erreurs un samedi après-midi).

Lien à poster
  • 3 semaines après...
  • 2 mois après...

Exercice d'arithmétique de ce matin,

Calculer l'indicatrice d'euler de 462 dans Z/nZ.

Calculer le reste de 5^2042 dans la division euclidienne par 462.

Je vous ferait une photocopie quand je récupère mon sujet demain. C'est moi que le prof a interrogé, j'avais un sourire jusqu'aux oreilles. Grand moment de solitude quand après avoir répondu aux questions j'ai du aussi expliquer que je souriais parce que 462 est un socket de processeur AMD. "Et alors?" "Ben c'est un c...omposé, 42*11, il est ultime."

Lien à poster

×
×
  • Créer...