X



Prologの宿題片付けます 第二編
■ このスレッドは過去ログ倉庫に格納されています
0001?-
垢版 |
2012/10/22(月) 17:13:22.94
Prologの宿題あるいは演習の課題を掲載して、ソースプログラムを
書く契機を作るスレです。大学等でどんなProlog教育が試みられて
いるかを知る機会にもしたいと思います。

[1] 課題は # から始まる行表現でお願いします。それでソースコードと区別します。
[2] できるだけインデント表現になるように工夫してください。
[3] コードの途中または後での質問は % から始まるコメントの形式を取ってください。
[4] Prologは一つ仕様から多様なプログラム表現が生まれる言語です。先に答えを
書かれてしまっても、別の正解は無限といってよいほどあります。少しでも、味のある
部分を見つけたらどしどし上げてみましょう。
0002デフォルトの名無しさん
垢版 |
2012/10/22(月) 17:32:49.74
>>1
最近は2chを眺めてみる人は減ってしまったから、twitterでスレが
立ったことを宣伝した方がいい。
0005デフォルトの名無しさん
垢版 |
2012/10/22(月) 18:02:31.53
早速に昨日twitterで扱った問題を載せてみましょう。
#
# 「Prologへの入門」 I.Bratko著 安部憲広訳 1990年 近代科学社刊 ISBN4-7649-0165-X
# より、http://www.amazon.co.jp/dp/476490165X
#
# 3.13 次のような節が書けて,その後以下の質問ができるように,(was,of,the)に対して適切なオペレータの定義を考えよ.
#  diana wa the secretary of the department.
#  ?- Who was the secretary of the department.
#  Who = diana
#  ?- diana was What.
#  What = the secretary of the department

0006デフォルトの名無しさん
垢版 |
2012/10/22(月) 18:10:34.05
申し訳ない。肝心の文が一ヶ所間違っていた。wa -> was
#
#  diana was the secretary of the department.
#
#  ?- Who was the secretary of the department.
#  Who = diana
#  ?- diana was What.
#  What = the secretary of the department
0007デフォルトの名無しさん
垢版 |
2012/10/22(月) 18:15:34.43
>>5
#  diana was the secretary of the department.
#  ?- Who was the secretary of the department.
#  Who = diana
#  ?- diana was What.
#  What = the secretary of the department

:- op(600,xfx,was).
:- op(500,xfx,of).
:- op(400,fx,the).

diana was the secretary of the department.

0009デフォルトの名無しさん
垢版 |
2012/10/22(月) 18:51:09.43
# C/C++の宿題片付けます 141代 #323 より
# [1] 授業単元:
# [2] 問題文(含コード&リンク):
# 西暦年数を与えて、その年の干支を求めるプログラムを作成せよ。
# 干支は、十干と十二支とをそろぞれサイクリックに変えながら組み合わせることによって60(10と12の最小公倍数)通りが得られる。
# 例:1989年は己巳。
#
# 以下の述語を前提にしてください。

基準年(2010).

基準年の干(庚).

基準年の支(寅).
0010デフォルトの名無しさん
垢版 |
2012/10/22(月) 19:10:35.36
>>5 と同様の問題です。
# 後京極摂政前太政大臣といえば、九条良経。清冽な作風で知られ、新古今和歌集でも
# 最多の歌が採集された天才歌人ですが、その和歌から。
#
# 恋し と は 便り に 付けて 言ひやりき 年 は 還りぬ 人 は 歸らず
#
# と形態素解析できたとして、適宜オペレータを定義して以下の述語がエラーにならず
# 定義可能となるようにしなさい。
#

恋し と は 便り に 付けて 言ひやりき 年 は 還りぬ 人 は 歸らず.
0013デフォルトの名無しさん
垢版 |
2012/10/22(月) 20:19:15.39
# それでは私も、もう一問。
# JR山手線の駅の連環を示す述語を定義しなさい。
#
# どのような構造でも構いません。
#
0014デフォルトの名無しさん
垢版 |
2012/10/22(月) 21:06:00.29
>>13

山手線(品川,大崎).
山手線(大崎,五反田).
山手線(五反田,目黒).
山手線(目黒,恵比寿).
山手線(恵比寿,渋谷).
山手線(渋谷,原宿).
山手線(原宿,代々木).
山手線(代々木,新宿).
山手線(新宿,新大久保).
山手線(新大久保,高田馬場).
山手線(高田馬場,目白).
山手線(目白,池袋).
山手線(池袋,大塚).
山手線(大塚,巣鴨).
山手線(巣鴨,駒込).
山手線(駒込,田端).
山手線(田端,西日暮里).
山手線(西日暮里,日暮里).
山手線(日暮里,鶯谷).
山手線(鶯谷,上野).
山手線(上野,御徒町).
山手線(御徒町,秋葉原).
山手線(秋葉原,神田).
山手線(神田,東京).
山手線(東京,有楽町).
山手線(有楽町,新橋).
山手線(新橋,浜松町).
山手線(浜松町,田町).
山手線(田町,品川).
0016デフォルトの名無しさん
垢版 |
2012/10/23(火) 03:45:12.47
>>15 の応用問題です。
#
# 1から99までを値域とする7つの整数を乱数を使って発生させて、中央値が22となるようにしなさい
#

0017デフォルトの名無しさん
垢版 |
2012/10/23(火) 06:53:27.78
>>10
「言ひやりき」を xfx で定義しなくてはならず、相当に不自然だ。
上の句と下の句でばっさりと分断されている歌で出題に問題があるなぁ。
0019デフォルトの名無しさん
垢版 |
2012/10/23(火) 08:45:17.88
>>18 これでどうだ。

:- op(300,xf,と).
:- op(500,xfy,は).
:- op(300,xf,に).
:- op(400,xf,付けて)
:- op(700,xfy,言ひやりき).
:- op(600,xfx,還りぬ).
:- op(300,xf,は).

恋し と は 便り に 付けて 言ひやりき 年 は 還りぬ 人 は 歸らず.
0022デフォルトの名無しさん
垢版 |
2012/10/23(火) 18:51:17.71
>>20
山手線(秋葉原,神田,0.7).
山手線(神田,東京,1.3).
山手線(東京,有楽町,0.8).
山手線(有楽町,新橋,1.2).
山手線(新橋,浜松町,1.1).
山手線(浜松町,田町,1.2).
山手線(田町,品川,1.5).

% のような感じでいいのかな。
0023デフォルトの名無しさん
垢版 |
2012/10/23(火) 22:30:00.51
>>20 全部は大変!
乗り換え案内(浜松町,東日本旅客鉄道京浜東北線).
乗り換え案内(浜松町,東京モノレール).
乗り換え案内(浜松町,都営地下鉄浅草線).
乗り換え案内(浜松町,'都営地下鉄大江戸線(大門駅)').
0024デフォルトの名無しさん
垢版 |
2012/10/23(火) 23:08:58.23
>>20 追加
乗り換え案内(新橋,東日本旅客鉄道京浜東北線).
乗り換え案内(新橋,東日本旅客鉄道東海道線).
乗り換え案内(新橋,東日本旅客鉄道横須賀線).
乗り換え案内(新橋,ゆりかもめ東京臨海新交通臨海線).
乗り換え案内(新橋,東京地下鉄銀座線).
乗り換え案内(新橋,都営地下鉄浅草線).
002520
垢版 |
2012/10/24(水) 08:49:55.79
>>23 >>24
乗り換え案内をRDBとして定義してくるか、リストで定義してくるか、
の興味があったので出題しました。ありがとう。
0026デフォルトの名無しさん
垢版 |
2012/10/24(水) 10:38:02.68
#
# あるProlog処理系で冪集合を定義し、その結果が
#
# ?- 冪集合([a,b,c,d],X).
#
# X = [[],[a],[b],[c],[d],[a,b],[a,c],[a,d],[b,c],[b,d],[c,d],[a,b,c],[a,b,d],[a,
c,d],[b,c,d],[a,b,c,d]].
#
# となったとします。
# それでは、このXの要素の出現順序を崩さず、しかも、一旦冪集合を完全に生成すること
もなく、最初からn個目まで生成したらそこで打ち切って部分解として、
# その時点まで生成されたリストを返すプログラムを生成しなさい。
#
002726
垢版 |
2012/10/24(水) 10:41:06.76
最後、
リストを返すプログラムを「作成しなさい。」
です
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況