トップページ⇒tech
245コメント149KB

Prologの宿題片付けます

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/04/23(金) 16:02:04
Prologで宿題が出たら、自分でプログラムが書くことができた
人も、思い悩んでいる人も、ここにその問題を載せてください。
宿題はその講座がどんな内容かをちょっとだけ垣間見させて
くれます。
全国の大学に100を越える講座があるといわれるProlog。
どんな宿題がでてくるのか楽しみです。
0237デフォルトの名無しさん2011/08/04(木) 09:14:38.92
>>215

shuffle(_カードの束,_切られたカードの束) :-
    length(_カードの束,_カードの枚数),
    _カードの枚数 > 2,
    M is _カードの枚数 // 12 + 3,
    _乱数値 is random(M),
    length(L0,_乱数値),
    append(L0,L1,_カードの束),
    shuffle(L1,_カードの束_2),
    append(_カードの束_2,L0,_切られたカードの束),!.
shuffle(_カードの束,_カードの束).
0238デフォルトの名無しさん2011/08/04(木) 09:23:19.35
>>215
トランプの場合は >>236 と >>237 の組合せで切ってると思う。
0239デフォルトの名無しさん2011/08/05(金) 08:30:19.87
# 「どうでもいいけど猫同士のコミュニケーションの代数構造どうなってんすかね」 by m0h1can on twitter
#
# これにヒントを得て、
#
# 述語 「猫は回さない」 を定義せよ。
#
0240デフォルトの名無しさん2011/10/07(金) 07:36:05.65
このあたりを参考に型推論をせよ
ttp://rainyday.blog.so-net.ne.jp/2008-06-16
ただし参考例は返値しか推定できないので
返値から逆に関数の引数の型なども推定できるようにせよ
0241デフォルトの名無しさん2011/10/08(土) 13:02:12.04
>488 名前: 365 Mail: sage 投稿日: 2011/09/29(木) 18:07:57.87
>>>485
>Prolog で型チェック:Rainy Day Codings:So-net blog
> http://rainyday.blog.so-net.ne.jp/2008-06-16
>
>題名は型チェックだけど、コードはまぎれもなく型推論
>
>489 名前: デフォルトの名無しさん Mail: sage 投稿日: 2011/09/29(木) 19:09:02.35
>ああPrologだから単一化で型推論が起きるのか。
>
>490 名前: デフォルトの名無しさん Mail: sage 投稿日: 2011/10/04(火) 18:43:07.61
>prologで型推定が一番楽にできそう
>しかし返値しか推定してないね
0242デフォルトの名無しさん2011/12/16(金) 00:41:29.75
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|
0243デフォルトの名無しさん2012/05/25(金) 08:00:45.01
http://toro.2ch.net/test/read.cgi/tech/1332279659/111
などは如何なものでしょうか?
0244デフォルトの名無しさん2012/06/29(金) 16:45:14.54
>>37

'リストの要素として、4個目のaを見つけて残りのリスト'(_リスト,_残りのリスト) :-
    'リストの要素として、4個目のaを見つけて残りのリスト'(1,_リスト,_残りのリスト).

'リストの要素として、4個目のaを見つけて残りのリスト'(4,[a|_残りのリスト],_残りのリスト) :- !.
'リストの要素として、4個目のaを見つけて残りのリスト'(N,[a|R1],_残りのリスト) :-
    N_2 is N + 1,
    'リストの要素として、4個目のaを見つけて残りのリスト'(N_2,R1,_残りのリスト),!.
'リストの要素として、4個目のaを見つけて残りのリスト'(N,[_|R1],_残りのリスト) :-
    'リストの要素として、4個目のaを見つけて残りのリスト'(N,R1,_残りのリスト).
0245デフォルトの名無しさん2012/06/29(金) 16:54:54.11
>>38

'リストの要素が変数Xで与えられるとする。N個目のXの残りのリストを返す'(N個目,X,_リスト,_残りリスト) :-
    'リストの要素が変数Xで与えられるとする。N個目のXの残りのリストを返す'(1,N個目,X,_リスト,_残りリスト).

'リストの要素が変数Xで与えられるとする。N個目のXの残りのリストを返す'(N,N,X,[X|_残りリスト],_残りリスト) :- !.
'リストの要素が変数Xで与えられるとする。N個目のXの残りのリストを返す'(M,N,X,[X|R],_残りリスト) :-
    M_2 is M + 1,
    'リストの要素が変数Xで与えられるとする。N個目のXの残りのリストを返す'(M_2,N,X,R,_残りリスト),!.
'リストの要素が変数Xで与えられるとする。N個目のXの残りのリストを返す'(M,N,X,[_|R],_残りリスト) :-
    'リストの要素が変数Xで与えられるとする。N個目のXの残りのリストを返す'(M,N,X,R,_残りリスト).
■ このスレッドは過去ログ倉庫に格納されています