Pentru a putea publica, trebuie să vă înregistraţi.
Contul se valideaza de admin in cel mult 24 de ore.
Pune o întrebare

3.6k intrebari

6.8k raspunsuri

15.4k comentarii

2.4k utilizatori

2 plusuri 0 minusuri
886 vizualizari

O altă problemă de clasa a IV, interesantă, mi s-a părut, pentru acest nivel. Deci, ar trebui rezolvată la nivelul clasei precizate.

TREI +
  DOI
  UNU
--------
SASE

Senior (11.9k puncte) in categoria Matematica
editat de
1 0
Nu știu dacă rezolvarea mea cu un progrămel ultra-simplu, de numai 20 de rînduri, se califică pentru nivelul clasei a patra, deși cu siguranță există copii isteți de clasa a patra care să poată face un astfel de progrămel. În orice caz, pot să vă spun că problema are fix 170 de soluții.
0 0
Cred că progrămelul, publicat aici, nu poate decât ajuta.
Pe de altă parte, după câte ştiu eu, elevii din România abia prin liceu învaţă să mânuiască un limbaj de programare.
0 0
@ Quark  Sa inteleg ca nu traiesti in Romanica de nu stii cand incep elevii sa studieze programarea ? Avand in vedere ca pana si eu am facut programare pe calculator in clasele primare din generala, pe vremea cand nimeni nu avea un calculator personal ci doar anumite scoli, acum as putea spune ironic ca se face de la gradinita si in absolut niciun caz tocmai din liceu !  (te-as intelege daca ai locui in america unde cei din liceu deabia invata geometrie (sa deseneze cercul si patratul) dar nu e cazul si la noi)
0 0
Ok, eu nu ştiu. Dar tu ştii? Că mi-ai spus că nu e bine cum am zis eu, ceea ce poate fi adevărat, dar nu şi cum e bine. În clasa a 4-a elevii, în genere, ştiu să programeze pentru că au avut ore de programare la şcoală?
0 0
la modul general toate scolile de stat fac din clasa a V-a, dar sunt si cazuri de institutii private care fac si mai devreme cls. III, IV-a
0 0
Azi dimineață am citit o știre care îmi confirmă că pînă și copiii de clasa a patra sînt în stare să facă programe mult mai complexe decît cel care rezolvă problema de față.

http://www.bbc.co.uk/news/technology-21371609

Pe scurt e vorba de un hacker de 11 ani din Canada.

Pun mai jos codul (în Matlab) pentru rezolvarea problemei. Nu e optimizat deloc (de aceea face risipă de memorie), ci e făcut „pe genunchi”, doar cît să funcționeze. Ideea e simplă: iei un șir cu numerele de la 0 la 9 (sînt 10 litere în problemă și fiecare reprezintă o cifră), generezi toate permutările posibile și apoi verifici la fiecare permutare în parte dacă e soluție. Dacă e, o afișezi și incrementezi un contor care numără soluțiile. La final afișezi și cîte soluții au fost găsite.

-----
cifre=0:9; %sir de 10 cifre distincte
contor=0; %contor de solutii
permutari=perms(cifre); %toate permutarile posibile cu "cifre"
lungime=length(permutari);
for caz=1:lungime %toate configuratiile
  config=permutari(caz,:); %configuratia curenta
  T=config(1); R=config(2); E=config(3); I=config(4); D=config(5);
  O=config(6); U=config(7); N=config(8); S=config(9); A=config(10);
  %Verifica daca configuratia curenta este solutie:
  if T~=0 && D~=0 && U~=0 && S~=0 %prima cifra a numerelor sa nu fie 0
    TREI=T*1000+R*100+E*10+I;
    DOI =       D*100+O*10+I;
    UNU =       U*100+N*10+U;
    SASE=S*1000+A*100+S*10+E;
    if TREI+DOI+UNU==SASE %daca este solutie
      fprintf('%.0f + %.0f + %.0f = %.0f\n',TREI,DOI,UNU,SASE);
      contor=contor+1;
    end
  end
end
fprintf('Contor: %.0f\n\n',contor);
-----
0 0
@Ciprian Constantin

Eu trăiesc în România şi nu am habar când încep copiii să studieze un limbaj de programare. Înţeleg din cele de mai sus că am lipsuri mari...

Detaliile despre ce şi cum învaţă copiii prin SUA, unde pricep că la 15-16 ani se foloseşte în premieră compasul, de unde le aveţi?

1 Raspuns

0 plusuri 0 minusuri
Sunt incepator in php, asa incat programelul de mai jos poate avea probleme (sper ca nu, totusi). Conform cu acest program, problema nu are solutie.

<?php
for ($t=1, $r=0, $e=0,$i=0, $d=1, $o=0, $u=1, $n=0, $s=1, $a=0; $t<10 && $r<10 && $e<10 && $i<10 && $d<10 && $o<10 && $u<10 && $n<10 && $s<10 && $a<10; $t++, $r++, $e++, $i++, $d++, $o++, $u++, $n++, $s++, $a++)
{
if($t*1000+$r*100+$e*10+$i+$d*100+$o*10+$i+$u*100+$n*10+$u==$s*1000+$a*100+$s*10+$e)
{echo $t,$r,$e,$i,"+<br/>",$d,$o,$i,"<br/>",$u,$n,$u,"<br/><hr>",$s,$a,$s,$e;}
else {
echo "Nu are solutie";
}
}
?>
Junior (1.3k puncte)
0 0
Ceva nu e în regulă cu linia if-ului: la final e tăiată brusc. Dacă nu e asta problema atunci nu știu de ce nu merge (nu mă pricep la php), dar în mod evident programul e greșit, pentru că nu găsește cele 170 de soluții.

Mai observ în treacăt că în timp ce progrămelul meu pus mai sus face risipă de memorie, al dumneavoastră face risipă de procesor (și de ecran, pentru că afișează de miliarde de ori mesajul „Nu are solutie”). Dar n-ar fi nimic dacă ar merge. Sînteți sigur că printre cele peste 6 miliarde de mesaje „Nu are solutie” nu sînt scrise și soluțiile?
0 0
Linia if-ului e ok, doar ca nu se vede bine in orice browser (se poate lua, observ, cu copy-paste programelul si pus in notepad se vede complet). Cred ca totusi problema e programul in sine...
0 0
Încă o problemă de concepție: programul nu verifică dacă cifrele sînt distincte.
...