10/03/08 08:19:03
前回スレは512Kbを越えたため、終了しました
2:デフォルトの名無しさん
10/03/08 13:11:40
bを小文字で書くほど無知なくせにスレを立ててる件。
とつっこまれて bit だとか言い出す。
3:デフォルトの名無しさん
10/03/08 15:28:34
ついでに言うと、2ちゃんねるの容量制限は512kないし500Kだぞw
それはともかくスレ立て依頼しておいてなんといういいぐさだよ>>2
4:Prologの人
10/03/08 15:45:03
>>3 えーーっ これは、スレを立てる依頼をした私を >>1 さんが
からかって追記したんだと思った。
5:デフォルトの名無しさん
10/03/08 22:52:30
# bit誌の話題が出たところで、1977年11月号同雑の記事から。
# ロール・エンティティモデルは、ロールとエンティティの2つの概念を両者とも
# 認識することを提案している。さて、
# 以下に、22項目の語が提示してあるが、それがエンティティを表す概念なのか、
# ロールを表す概念なのかを分類していただきたい。
#
# 鶏 複合部品 自動車 ビルディング 母 子 依頼人 会社 顧客
# 医師 従業員 雇主 馬 法律家 所有者 単純部品 人 財産
# 株主 供給者 官庁 部品
#
# これらがどちらに分類されるかを示すプログラムを書きなさい。
# -- "鶏が先か卵が先か" チャールズ・W・バックマン による --
6:デフォルトの名無しさん
10/03/08 23:26:21
# 同じく1977年11月号 "マイクロコンピュータそのII プログラミングの基礎(まとめ)" から
# <<本として出版されていたら御免なさい。>>
# 数あてゲーム
# 1) 出題者は適当な4桁の数字(a)を決める。
# 2) 解答者は出題者の決めた数字を予想して出題者に数字(b)を示す。
# 3) 出題者は解答者の提示した数字を見て、次のヒントを出題者に知らせる。
# a,bの両方に含まれる数字の数(c)
# aとbの対応する桁の数字が一致した数(d)
# 4) 解答者は出題者が示したヒントからbを訂正して 2) に戻る。
#
# ゲームは正解を得るまでに何回のヒントを得たかによって判定されるので
# ヒントを得る回数が最少になるように努力するプログラムを作りなさい。
7:デフォルトの名無しさん
10/03/09 09:17:51
>>5
>>6
うざい
8:デフォルトの名無しさん
10/03/09 11:10:40
>>7
>>5 はともかく >>6 の数当てゲームは、少なくともここ一・二年出てこなかった
じゃないかな。
9:デフォルトの名無しさん
10/03/09 11:22:21
出てる出てないの問題じゃない。スレ違い。
ついでに言うと、このような形で雑誌の問題をそのまま掲載するのは、
著作権保護法にも違反してる。
10:デフォルトの名無しさん
10/03/09 11:42:13
>>9
著作権の問題については、おっしゃる通りなので、恐縮して載せている。
共立出版の不利益になるケースではまったくないので雑誌については
いいだろうという判断。私がbit誌を度々取り上げるのは、このような
ジャンルの雑誌が復刊して欲しいから。
スレ違いについてはこのスレのこれまでの歴史をみれば、まったく
見当違いであることがわかる。
11:デフォルトの名無しさん
10/03/09 12:20:34
>>5
% Prolog
エンティティ(鶏).
ロール(複合部品).
エンティティ(自動車).
エンティティ(ビルディング).
ロール(母).
ロール(子).
ロール(依頼人).
エンティティ(会社).
ロール(顧客).
エンティティ(医師).
ロール(従業員).
ロール(雇主).
エンティティ(馬).
ロール(法律家).
ロール(所有者).
ロール(単純部品).
エンティティ(人).
ロール(財産).
ロール(株主).
ロール(供給者).
エンティティ(官庁).
エンティティ(部品).
12:デフォルトの名無しさん
10/03/09 12:47:37
著作権保護法ってどこにあるんですか? 外国の法律ですか?
13:デフォルトの名無しさん
10/03/09 12:47:47
どうして自分で質問して自分で答えるの?
こんなの宿題じゃないじゃん。
Prologやりたいんなら、Prologスレ行けばいいのに。
14:デフォルトの名無しさん
10/03/09 12:55:12
>>12
つか君の国籍は?
もし日本に住んでるんなら、引用と転載の違いぐらい知っておいたほうがいいよ。
15:デフォルトの名無しさん
10/03/09 13:15:47
>>13
宿題スレは春休み、夏休み、冬休み期間は題材がなくなるから、
過去のおもしろそうな問題をdatから探し出したり、自分で問題を
考えたり、本や雑誌に課題を求めたりする。その他の期間の過半の
出所は「C/C++で宿題片付けます」スレだから「宿題」であるかどうかは
そちらの問題で、ここは見たことのないソースが溢れればそれでよい。
16:デフォルトの名無しさん
10/03/09 13:35:39
>>15
はぁ?
「C/C++で宿題片付けます」に準拠してるってご冗談を?
スレリンク(tech板)
出題は宿題ばかりだし、宿題でないものは宿題でないとツッコミを入れられてるだろ。
自分で問題を創作してる奴なんかいないし、市販の雑誌から転載する馬鹿もいない。
もちろんPrologのコードを見せたくて、自分で出題して、自分で回答する奴もいない。
「Prologでコード書きたいので問題ください」ってスレ作ればいいんだよ。
17:デフォルトの名無しさん
10/03/09 14:03:43
>>16
もう一ヶ月も経てば、また宿題が出始めますから、
ぜひ、問題を解いて、このスレに載せてください。
私は、関数型言語のコードを待っています。
18:デフォルトの名無しさん
10/03/09 18:08:02
>>14
で、著作権保護法ってどこにあるんですか?
19:デフォルトの名無しさん
10/03/10 09:27:11
スレリンク(db板:613番)
# <ユーザ情報テーブル>
# ID,氏名,住所
# 1,ユーザ1,青森県~~~
# 2,ユーザ2,青森県~~~
# 3,ユーザ3,北海道~~~
# 4,ユーザ4,宮城県~~~
# 5,ユーザ5,岩手県~~~
# ・・・
# <都道府県テーブル>
# ID,都道府県
# 1,北海道
# 2,青森県
# 3,岩手県
# 4,宮城県
# 5,秋田県
# ・・・
# この2つのテーブルから、クエリを使用して、都道府県別のユーザ数を取得(カウント)したいのですが、教えていた
だけませんでしょうか? 上記の5レコードで説明しますと、以下のような結果が望みです。
# 都道府県,人数
# 北海道,1
# 青森県,2
# 岩手県,1
# 宮城県,1
# 秋田県,0
20:デフォルトの名無しさん
10/03/10 11:24:57
スレリンク(tech板:891番)
# [1] 授業単元: プログラミング演習
# [2] 問題文(含コード&リンク):
# 行列のrankを求める関数 rank( ) を実装せよ
# (提示ソースコードは後記)
#
# include <iostream>
# #include <cstdlib>
# using namespace std;
#
# #define ROWS 5
# #define COLS 4
#
# int rank( double array[ROWS][COLS] )
# {
#
# }
#
21:デフォルトの名無しさん
10/03/10 11:26:32
>>20 の続き
# int main( )
# {
# srand( time(NULL) );
#
# double array[ROWS][COLS];
#
# for( int r=0; r<ROWS; ++r ){
# for( int c=0; c<COLS; ++c ){
# array[r][c] = rand( );
# }
# }
#
# rank( array );
#
# return 0;
# }
22:デフォルトの名無しさん
10/03/10 11:29:22
>>19
% Prolog
都道府県別のユーザ数一覧 :-
write('都道府県,人数\n'),
都道府県別のユーザ数を取得(_都道府県,_人数),
write_formatted('%t,%t\n',[_都道府県,_人数]),
fail.
都道府県別のユーザ数一覧.
都道府県別のユーザ数を取得(_都道府県,_人数) :-
都道府県(_,_都道府県),
count((ユーザ情報(_,_,住所),sub_atom(_住所,0,_,_,_都道府県)),_人数).
23:デフォルトの名無しさん
10/03/12 17:55:32
前スレにかこうとしてできなかったもの
スレリンク(tech板:790番)
使用言語:J
bubbleSort=:(([ (<. , >.) {.@]) , }.@])/^:_
insertionSort=:((>: # ]) , [ , < #])/
quickSort=:(($:@(<#[) ; (=#[) ,&< $:@(>#[)) ({~ ?@#)) ^: (1<#)
siftDown=: 4 : 0
's e'=. x
z=.y
c=.s
while. e > c=.1+2*s=.c do.
if. e > 1+c do. if. c <&({&z) c+1 do. c=.c+1 end. end.
if. s <&({&z) c do. z=. z {`(|.@[)`]}~ c,s else. break. end.
end.
z
)
heapSort =: 3 : 0
if. 1>: c=. # y do. y return. end.
z=. (] siftDown ~c,~[)&.>/ (<y),~]&.>i.1+<.-:c-2
> (](] siftDown {`(|.@[)`]}~) 0,[)&.>/ z,~]&.>1+i.c-1
)
rt=:6!:2
a=:?~1000
10 rt 'bubbleSort a' NB.1000個のデータでソートを10回行いその平均値を秒で返す
4.91614
10 rt 'heapSort a'
0.337704
10 rt 'quickSort a'
0.0169458
10 rt 'insertionSort a'
0.0110285
24:デフォルトの名無しさん
10/03/13 05:21:03
>>20
使用言語:J
rank=: monad define
SIZE=.|.{(;(<: # y), 2)$ 2#}.- >: i. # y
MAT=. SIZE {. L:0 y
(#y) - {. I. 1e_10 < | ;(-/ . * L:0 MAT)
)
rank 4 5$0 0 0 0 0,0 0 2 0 0,0 1 0 1 1,0 4 3 4 0
3
25:デフォルトの名無しさん
10/03/13 06:31:04
>>20
使用言語:maxima
(%i22) a:matrix([0, 0, 0, 0, 0],[0, 0, 2, 0, 0],[0, 1, 0, 1, 1],[0, 4, 3, 4, 0]);
[ 0 0 0 0 0 ]
[ ]
[ 0 0 2 0 0 ]
[ ]
[ 0 1 0 1 1 ]
[ ]
[ 0 4 3 4 0 ]
(%i23) rank(a);
(%o23) 3
26:デフォルトの名無しさん
10/03/13 07:50:29
>>20
使用言語:R
> a <- matrix(c(0, 0, 0, 0, 0,0, 0, 2, 0, 0,0, 1, 0, 1, 1,0, 4, 3, 4, 0),4,5,byrow=T)
> a
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 0 0
[2,] 0 0 2 0 0
[3,] 0 1 0 1 1
[4,] 0 4 3 4 0
> qr(a)$rank
[1] 3
27:デフォルトの名無しさん
10/03/13 10:28:20
>>20
% Prolog
行列の階数(_行列,_階数) :-
ガウス行列に変形(_行列,_ガウス行列),
count((member(L,_ガウス行列),\+(all(L,0))),_階数).
% ガウス行列に変形/2 は URLリンク(nojiriko.asia) を参照してください。
28:デフォルトの名無しさん
10/03/14 07:50:53
>>21 (>>20)
% Prolog 下のようにしておいた方が無難なんだろうか。
行列の階数(_行列,_階数) :-
ガウス行列に変形(_行列,_ガウス行列),
count((member(L,_ガウス行列),\+('すべての要素が0か0.0'(L))),_階数).
'すべての要素が0か0.0'([]).
'すべての要素が0か0.0'([0|R]) :-
'すべての要素が0か0.0'(R).
'すべての要素が0か0.0'([0.0|R]) :-
'すべての要素が0か0.0'(R).
29:デフォルトの名無しさん
10/03/15 07:30:55
スレリンク(tech板:915番)
# [1] 授業単元:Unix プログラミング
# [2] 問題文(含コード&リンク): C++/CでUnixのls -R -lと同じ動作をするmyls.c (.cpp)を作成して下さい。
# ls:ディレクトリ内のファイルをリストアップ。-R:サブディレクトリも探査。-l:sys/stat.hを使いファイルの詳細を表示する。
#
30:デフォルトの名無しさん
10/03/15 07:37:31
スレリンク(tech板:907番)
# [1] 授業単元:スレリンク(tech板)
# [2] 問題文(含コード&リンク):
# 保存済みのメモ帳に書いてある10個の数字からランダムに5個読み取るプログラム。
# [3.1] OS:わかりません
# [3.2] コンパイラ名とバージョン: わかりません
# [3.3] 言語:C++
# [4] 期限:201x年
# [5] その他の制限:fopen、fscanf、for、ifまで習いました。
31:デフォルトの名無しさん
10/03/15 10:54:35
>>30
% Prolog 「10個の」をどう反映させればよいか解らない・・・
保存済みのメモ帳に書いてある10個の数字からランダムに5個読み取る(_保存済みのメモ帳,L) :-
get_chars(_保存済みのメモ帳,Chars),
findall(N,(for(1,M,5),数字にヒットするまでランダムにならびを探す(Chars,N)),L).
数字にヒットするまでランダムにならびを探す(L,N) :-
length(L,Len),Len > 0,
repeat,
M is (random mod Len) + 1,
list_nth(M,L,A),
member(A,['0','1','2','3','4','5','6','7','8','9']),!.
32:デフォルトの名無しさん
10/03/15 11:18:02
スレリンク(db板:631番)
# MYSQL使ってます。
# id キーワード
# 1 りんご
# 2 みかん
# 3 りんご
# のようにDBに登録されてるキーワードが多い順に例えばヒット件数トップ10のキーワードを
# 抜き出したいのですがどのように書いたらいいでしょうか?
# 件数少ないうちは今までにないキーワードがでたら全検索で数えるって繰り替えそうと思ったんですけど、
# 件数多くなったら効率的に書かないとまずいかなと思いまして。
33:デフォルトの名無しさん
10/03/15 11:55:21
>>30
使用言語:J
この問題文では、詳細がさっぱりわかりません。
data=:45 97 8 21 51 64 24 62 46 3
(5?10){data
3 45 97 46 21
34:デフォルトの名無しさん
10/03/15 17:20:56
>>33 (>>30)
# 数値を一行に一つずつ十行メモ帳に書き込みこれを保存する。
# このファイルを参照することによってこのうち5個の数値をランダムに取り出すプログラムを作りなさい。
% とするべきですね。
35:デフォルトの名無しさん
10/03/15 17:37:53
>>34
% Prolog
十行の数値が書かれたメモ帳を保存し、このファイルから5個の数値をランダムに取り出す(_保存済みのメモ帳,_5個の数値ならび) :-
get_lines(_保存済みのメモ帳,Lines),
findall(N,(for(1,M,5),ならびからランダムに数値を取り出す(Lines,N)),_5個の数値ならび).
ならびからランダムに数値を取り出す(L,N) :-
length(L,Len),Len > 0,
repeat,
M is (random mod Len) + 1,
list_nth(M,Lines,A),
atom_to_term(A,N,_),
number(N),!.
36:デフォルトの名無しさん
10/03/16 11:03:58
スレリンク(tech板:920番)
# [1] 授業単元:C言語演習
# [2] 問題文(含コード&リンク):
# 1.fgets関数を用いてpgmファイルの始めの2行(添付ファイルの場合, P2, 304,
# 322)をそれぞれ、変数header, width, heightに格納するプログラム
# 2.上記で記憶したheader, width, heightを別ファイルに書き出すプログラム
# 1.と2.をそれぞれ作成せよ。
37:デフォルトの名無しさん
10/03/16 15:28:29
>>36
% Prolog
pgmファイルヘッダ(_pgmファイル,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル) :-
open(_pgmファイル,read,Input,[type(binary)]),
pgmヘッダの読み取り(Input,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル),
close(Input),!.
pgmファイルヘッダの読み取り(Input,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル) :-
マジックナンバー(Input,_マジックナンバー),
画像の幅方向サイズ(Input,_画像の幅方向サイズ),
画像の幅方向サイズ(Input,_画像の幅方向サイズ),
画像の高さサイズ(Input,_画像の高さサイズ),!.
マジックナンバー(Input,_マジックナンバー) :-
findall(Y,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;char_code(Y,X))),L),
concat_atom(L,_マジックナンバー),!.
画像の幅方向サイズ(Input,_画像の幅方向サイズ) :-
findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L),
number_codes(_画像の幅方向サイズ,L),!.
画像の高さサイズ(Input,_画像の高さサイズ) :-
findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L),
number_codes(_画像の高さサイズ,L),!.
画像の最大階調レベル(Input,_画像の最大階調レベル) :-
findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L),
number_codes(_画像の最大階調レベル,L),!.
'Whitespace'(X) :- X < 48,X >57,!.
38:デフォルトの名無しさん
10/03/16 15:37:01
>>37 (>>36) 訂正
% Prolog 'Whitespace'/2の定義を間違えた。それから述語名を入れ替えます。
pgmファイルヘッダの読み取り(_pgmファイル,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル) :-
open(_pgmファイル,read,Input,[type(binary)]),
pgmヘッダ(Input,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル),
close(Input),!.
pgmファイルヘッダ(Input,_マジックナンバー,_画像の幅方向サイズ,_画像の高さサイズ,画像の最大階調レベル) :-
マジックナンバー(Input,_マジックナンバー),
画像の幅方向サイズ(Input,_画像の幅方向サイズ),
画像の幅方向サイズ(Input,_画像の幅方向サイズ),
画像の高さサイズ(Input,_画像の高さサイズ),!.
マジックナンバー(Input,_マジックナンバー) :-
findall(Y,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;char_code(Y,X))),L),
concat_atom(L,_マジックナンバー),!.
画像の幅方向サイズ(Input,_画像の幅方向サイズ) :-
findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L),
number_codes(_画像の幅方向サイズ,L),!.
画像の高さサイズ(Input,_画像の高さサイズ) :-
findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L),
number_codes(_画像の高さサイズ,L),!.
画像の最大階調レベル(Input,_画像の最大階調レベル) :-
findall(X,(repeat,get_byte(Input,X),('Whitespace'(X),!,fail;true)),L),
number_codes(_画像の最大階調レベル,L),!.
'Whitespace'(X) :- X < 48.
'Whitespace'(X) :- X > 57.
39:デフォルトの名無しさん
10/03/16 16:26:48
スレリンク(tech板:921番)
# [1] 授業単元:Unix プログラミング
# [2] 問題文(含コード&リンク):時間昇降順で表示するwhoをC/C++で書きなさい。
40:デフォルトの名無しさん
10/03/17 08:37:27
>>39
% Prolog
時間昇降順で表示するwho(_昇降順) :-
shs(who,L),
時間昇降順で表示するwho(L,L1),
wrln(L1).
時間昇降順で表示するwho(_昇降順,L,_時間昇降順who) :-
findall([_時刻,_行],(member(L1,L),時刻を取り出す(_行,_時刻)),_時刻を先頭に付加したwho),
昇降順に整列(_昇降順,_時刻を先頭に付加したwho,_時間昇降順who).
時刻を取り出す(_行,_時刻) :-
split(_行,[' '],L1),
append(L2,[_分秒|L3],L1),
sub_atom(_分秒,_,1,_,':'),
last(L2,_年月日),
sub_atom(_年月日,_,1,_,'-'),
concat_atom([B,' ',A],_時刻),!.
昇降順に整列(昇順,_時刻を先頭に付加したwho,_時間昇降順who) :-
整列(_時刻を先頭に付加したwho,_整列した時刻を先頭に付加したwho),
findall(_行,member([_,_行],_整列した時刻を先頭に付加したwho),_時間昇降順who).
昇降順に整列(降順,_時刻を先頭に付加したwho,_時間昇降順who) :-
整列(_時刻を先頭に付加したwho,_整列した時刻を先頭に付加したwho),
reverse(_整列した時刻を先頭に付加したwho,_整列しかつ反転した時刻を先頭に付加したwho),
findall(_行,member([_,_行],_整列しかつ反転した時刻を先頭に付加したwho),_時間昇降順who).
41:デフォルトの名無しさん
10/03/17 10:42:58
>>32
% Prolog (その一)
キーワード数の上位10位までを表示 :-
findall([M,N],カウンタカウンタ(M,N),L1),
sort(L1,L2),
reverse(L2,L3),
上位10位まで(L3,L),
キーワード数の上位10位までを表示(L).
キーワード数の上位10位までを表示([]) :- !.
キーワード数の上位10位までを表示([M|R]) :-
キーワードカウンタ(_キーワード,M),
キーワード表示(_キーワード),
fail.
キーワード数の上位10位までを表示(R).
キーワード表示(_キーワード) :-
キーワード(ID,_キーワード),
write_formatted('%t,%t\n',[ID,_キーワード]).
上位10位まで([],_,[]) :- !.
上位10位まで(_,Count,[]) :- Count >= 10,!.
上位10位まで([[M,N]|R1],Count1,[M|R2]) :-
Count2 is Count1 + N,
上位10位まで(R1,Count2,R2).
42:デフォルトの名無しさん
10/03/17 10:43:55
>>32
% Prolog (その二)
キーワードカウンタを準備する :-
abolish(キーワードカウンタ/2),
キーワード(Id,_キーワード),
キーワードカウンタ((+),_キーワード),
fail.
キーワードカウンタを準備する.
キーワードカウンタ((+),_キーワード) :-
retract(キーワードカウンタ(_キーワード,_現在のカウント)),
_加算されたカウント is _現在のカウント + 1,
カウンタカウンタの更新((-),_現在のカウント)
カウンタカウンタの更新((+),_加算されたカウント),
asserta(キーワードカウンタ(_キーワード,_加算されたカウント)),!.
キーワードカウンタ((+),キーワード) :-
asserta(キーワードカウンタ(_キーワード,1)),
カウンタカウンタの更新((+),1),!.
カウンタカウンタの更新((+),M) :-
retract(カウンタカウンタ(M,N)),
N2 is N + 1,
asserta(カウンタカウンタ(M,N2)),!.
カウンタカウンタの更新((+),M) :- asserta(カウンタカウンタ(M,1)).
カウンタカウンタの更新((-),M) :-
retract(カウンタカウンタ(M,N)),
N1 is N - 1,
asserta(カウンタカウンタ(M,N1)),!.
43:デフォルトの名無しさん
10/03/18 07:04:37
スレリンク(tech板:945番)
# Bairstow Samples 名無しさん - 2010/03/17(Wed) 19:00 No.10560 10560.zip
# [1] 授業単元: 数値解析
# [2] 問題文(含コード&リンク): n=10の多項式をベアストウ法(Bairstow’s Method)により解析するプログラムを書くこと。
# N=coefficients r,s= initial value
# 繰り返しの際にはじめのr,s,b,cと△r、△s、エラーの値をプリントする。一定の値に集中するまで続ける。
# (Convergence)一点に集まった値がでたら、次は二次公式をするために同様の作動を繰り返す。この時rとsは自動的に割り出されなければならない。ルーツが見つかるまで全てのプロセスを繰り返す。