Jump to content
php.lv forumi

uzdevums2 - reizinājums un summa


Recommended Posts

Posted

Risinot šo uzdevumu izdomāju interesantu variantu.

 

Ir 2 skaitļi no 1 līdz 99, Jānim pasaka skaitļu reizinājumu, bet Pēterim summu.

Starp viņiem norisinās šāds dialogs:

 

J: Es nezinu šos skaitļus

P: Es nezinu šos skaitļus

J: Es nezinu šos skaitļus

P: Es nezinu šos skaitļus

J: Es nezinu šos skaitļus

P: Es nezinu šos skaitļus

J: Es nezinu šos skaitļus

P: Es nezinu šos skaitļus

J: Es nezinu šos skaitļus

P: Es nezinu šos skaitļus

J: Es nezinu šos skaitļus

P: Es nezinu šos skaitļus

J: Es nezinu šos skaitļus

P: Es nezinu šos skaitļus

J: Tagad es zinu šos skaitļus 

 

Kādi ir šie skaitļi?

 

 

Posted

Uzdevums patiesībā nav grūts.

Uzģenerējam visus iespējamos variantus, kopā ar to summām un reizinājumiem.

Ja sākumā Jānis nezin, tas nozīmē, ka ir viņa reizinājums ir vairākas reizes starp iespējamajiem variantiem. Sagrupējam visus variantus pēc reizinājuma un atlasām to, kuri ir vairāk kā 1 reizi.

To pašu dara ar summām, atlasa tās, kuras ir vairāk kā vienu reizi.

Pēdējos 2 soļus dara 7 reizes.

Tālāk, ja Jānis zin atbildi, tas nozīmē, ka šajā brīdī eksistē viens variants ar unikālu reizinājumu, kas arī ir atbilde.

 

Kurš tiks pie atbildes?

Posted

Tāpat kā pirmajā.

Pirmajā sākumā noņem visus reizinājumus, kas ir pa vienam, pēc tam visas summas.

Otrajā iterācijā atkal būs jauni reizinājumi, kuri ir par vienam, jo iepriekš noņemot summas tādi varēja rasties.

Posted (edited)

Jā, tā ir pareizā atbilde.

 

 

 

77 un 84

 

https://ideone.com/X48DIB

  case class State(a: Int, b: Int, sum:Int, prod:Int)
   
  val allPossibleStates:Seq[State] = for {
    i <- 1 to 99;
    j <- i to 99
  } yield State(i,j,i+j,i*j)
 
  (1 to 7).foldLeft(allPossibleStates)( (states, _) => 
    states
     .groupBy(_.prod).filter(_._2.size > 1).flatMap(_._2)
     .groupBy(_.sum).filter(_._2.size > 1).flatMap(_._2)
     .toSeq
  ).groupBy(_.prod).filter(_._2.size == 1).flatMap(_._2)  
   .map(println)

P.S.

Gribēju ielikt uzdevumu stackexcahnge puzlēs, bet ierakstot virsrakstu pamanīju, ka ir vesela kaudze ar summas un reizinājuma uzdevumu variācijām. Un kā reizi viena tieši tāda pati:

http://puzzling.stackexchange.com/questions/8440/product-and-sum-variant-2b

 

1 - 99 izvēlējos tāpēc, ka tas bija ar visgarāko "es nezinu" dialogu. Daudzi pārējie varianti apkārt bija īsāki.

 

 

 

Edited by codez

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...