На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Prolog. Символ встречающийся в списке наибольшее число раз
    Помогите пожалуйста доделать задачу!

    Условие: вводим N чисел. Определить какое среди введенных чисел повторяеться наибольшое число раз. Сколько раз оно встречаеться. И если таких чисел несколько, то выбираем из них наименьший.

    Осталось выбрать наименьший, если таких чисел несколько...помогите плиз(

    ExpandedWrap disabled
      DOMAINS        
      i=integer    
      il=i*
       
      PREDICATES
       
      go(string)
      count(string,il)    
      insert(i,il,il)    
      getmax(il,il,i)    
      pull(i,i,il,i,il,i)
      w
       
      CLAUSES
      go(""):- exit.
      go(S):- count(S,L), getMax(L,X,Y), write("Max=",X,";\n\n").
       
      count(S,List):- fronttoken(S,Tok,Rest),!, count(Rest,L), str_int(Tok,In), insert(In,L,List).
      count(_,[]).
       
      insert(I,[I,A|H],[I,Ac|H]):- !, Ac=A+1.
      insert(I,[X,Y|H],[X,Y|Z]):- !, insert(I,H,Z).
      insert(I,[],[I,1]).
       
      getMax([X,Y|H],M,N):- getMax(H,K,L),!, pull(X,Y,K,L,M,N).
      getMax([],[],0).
       
      pull(X,Y,_,L,[X],Y):- Y>L,!.
      pull(X,Y,H,Y,[X|H],Y):-!.
      pull(_,_,X,Y,X,Y).
       
      w. w:-w.  
        
      GOAL w, readln(S), go(S), fail.
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0136 ]   [ 15 queries used ]   [ Generated: 2.05.24, 22:11 GMT ]