亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Prolog僅刪除唯一元素

Prolog僅刪除唯一元素

米琪卡哇伊 2019-11-21 09:34:56
我想返回一個列表,例如刪除所有唯一元素的列表remUniqueVals([1,1,2,2,3,4,4,5,6,6,6],Q).   Q = [1,1,2,2,4,4,6,6,6].  我的問題是目前我有返回的代碼remUniqueVals([1,1,2,2,3,4,4,5,6,6,6],Q).  Q = [1, 2, 4, 6, 6].這樣就只返回這些非唯一值的第一個實例。這是我的代碼:remUniqueVals([], []).  remUniqueVals([Q1|RestQ],[Q1|Xs]) :-           member(Q1,RestQ),     remUniqueVals(RestQ,Xs).  remUniqueVals([Q1|RestQ],Xs) :-     remove(Q1,[Q1|RestQ], NewQ),     remUniqueVals(NewQ,Xs).  我可以看到member(Q1,RestQ)它在第二次檢查1,2,4時失敗,因為它們現在不再在列表中,因此將其刪除。我想幫助解決這個問題,我的想法是檢查member(Q1, PreviousQ),這是決賽中已經存在的要素Q。不確定如何實施,盡管會有所幫助。更新:好的,謝謝您提出的建議,最后我最終提出了以下建議:remUniqueVals(_,[], []).  remUniqueVals(_,[Q1|RestQ],[Q1|Xs]) :-           member(Q1,RestQ),    remUniqueVals(Q1,RestQ,Xs).  remUniqueVals(PrevQ,[Q1|RestQ],[Q1|Xs]) :-           Q1 = PrevQ,    remUniqueVals(PrevQ,RestQ,Xs).  remUniqueVals(PrevQ,[_|RestQ],Xs) :-     remUniqueVals(PrevQ,RestQ,Xs). remUniqueVals(0,[4,1,1,3,2,2,5,5],Q).Q = [1, 1, 2, 2, 5, 5].remUniqueVals(0, [A,B,C], [1,1]).A = 1,B = 1,C = 1.
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 592 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號