[表示 : 全て 最新50 1-99 2chのread.cgiへ]
Update time : 05/09 09:04 / Filesize : 23 KB / Number-of Response : 44
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

いろんな言語で宿題 第四編



1 名前:デフォルトの名無しさん [2010/03/08(月) 08:19:03 ]
前回スレは512Kbを越えたため、終了しました

32 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 11:18:02 ]
pc11.2ch.net/test/read.cgi/db/1252492296/631
# MYSQL使ってます。
# id キーワード
# 1 りんご
# 2 みかん
# 3 りんご
# のようにDBに登録されてるキーワードが多い順に例えばヒット件数トップ10のキーワードを
# 抜き出したいのですがどのように書いたらいいでしょうか?
# 件数少ないうちは今までにないキーワードがでたら全検索で数えるって繰り替えそうと思ったんですけど、
# 件数多くなったら効率的に書かないとまずいかなと思いまして。

33 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 17:20:56 ]
>>33 (>>30)
# 数値を一行に一つずつ十行メモ帳に書き込みこれを保存する。
# このファイルを参照することによってこのうち5個の数値をランダムに取り出すプログラムを作りなさい。
% とするべきですね。

35 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 11:03:58 ]
pc12.2ch.net/test/read.cgi/tech/1263824755/920
# [1] 授業単元:C言語演習
# [2] 問題文(含コード&リンク):
# 1.fgets関数を用いてpgmファイルの始めの2行(添付ファイルの場合, P2, 304,
# 322)をそれぞれ、変数header, width, heightに格納するプログラム
# 2.上記で記憶したheader, width, heightを別ファイルに書き出すプログラム
# 1.と2.をそれぞれ作成せよ。

37 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 16:26:48 ]
pc12.2ch.net/test/read.cgi/tech/1263824755/921
# [1] 授業単元:Unix プログラミング
# [2] 問題文(含コード&リンク):時間昇降順で表示するwhoをC/C++で書きなさい。

40 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/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 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 07:04:37 ]
pc12.2ch.net/test/read.cgi/tech/1263824755/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は自動的に割り出されなければならない。ルーツが見つかるまで全てのプロセスを繰り返す。







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<23KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef