C/C++の宿題を片付けます 106代目at TECH
C/C++の宿題を片付けます 106代目 - 暇つぶし2ch2:デフォルトの名無しさん
08/05/03 19:36:31


3:デフォルトの名無しさん
08/05/03 19:37:58


4:デフォルトの名無しさん
08/05/03 19:43:39
前スレで出来る出来る言ってるヤツはソースあげてからにしてね。
回数数えて引けばいいって言ってるけど、nが1000なら引く前の数が2^1000で
intの範囲にはとても入りきらない数だって理解してないだろ。

5:デフォルトの名無しさん
08/05/03 19:45:02
ヒント (a - b) % n = a%n - b%n

6:デフォルトの名無しさん
08/05/03 19:54:02
ソースまだ~?

7:デフォルトの名無しさん
08/05/03 19:54:08
mod 10000000だからintでいいんだよ。
問題はs_mの重複除外で、ヤツの言う方法だとO(2^m)の計算量になる。
そこのところの解決方法を是非教えていただきたい。

8:デフォルトの名無しさん
08/05/03 19:55:50
まだ続けたい人はこちらでどうぞ

形式言語・形式文法
スレリンク(informatics板)


9:デフォルトの名無しさん
08/05/03 20:05:36
たとえば、{abb、aab、ab、aaa} ならば、{ab、aaa}を含む文字の総数を求める。
というのも、abbも含む文字は、abを含む文字全体に含まれる為。
A=ab、B=aaaとおき、AとBが少なくとも一回含まれるn桁の文字全体は、
A、Bをn桁に配置できる場合の数は、(n-1)(n-4)くらいとおもう。あとは{a,b}を適当に埋める。
するとたとえばAとAが重複して現れる場合の数が余分数えてしまうので除外する。
これは、たとえばAが2回、Bが1回含まれる場合の数を求めて引く。全ての場合に対して計算する必要あり。

10:デフォルトの名無しさん
08/05/03 20:13:30
だからそのソースを書いてよ

11:デフォルトの名無しさん
08/05/03 20:14:47
> 関心無いので、やりたい人がやればいい やれば出来る程度はおもう。

12:デフォルトの名無しさん
08/05/03 20:15:55
こんだけ長文連投しといて関心ないってのはありえないw

13:デフォルトの名無しさん
08/05/03 20:21:19
ソース書かなくてもいいから

n = 10
S = {aaaa, aaab, baaa, abba}

のときの答えをその手法で出してみてくれる?

14:デフォルトの名無しさん
08/05/03 20:21:47
文字列S含む場合の数と、文字列SとTを両方含む場合の数が求まれば
解決する。聴いてみてくれれば教えるのでやってくれ。

15:デフォルトの名無しさん
08/05/03 20:22:12
>>1
> 気に入らない質問やその他や発言はスルーの方向で。

16:デフォルトの名無しさん
08/05/03 20:24:15
気に入らないんじゃなくて、よりよいソースを見たいんだよ。

17:デフォルトの名無しさん
08/05/03 20:25:22
>>13
aaaaとaaabを含む文字が最低5桁で実現できる事を考慮していなかった

18:デフォルトの名無しさん
08/05/03 20:30:09
>>13 17のようなケースがある為、これはなかなか数え上げるのが困難な気がするな。
17の場合は、aaaaとbaaab、aaaa(とaaaab)の場合を数える事で解決できるとは思うが
コードを書くのも手計算も面倒だ。 

19:デフォルトの名無しさん
08/05/03 20:31:06
>13程度に即答できないようじゃ話にならんだろw
前スレ702でも709でも一瞬だぜ

20:デフォルトの名無しさん
08/05/03 20:36:13
>>18
smに何が入力されるかもわかんないのに手計算ってw

21:デフォルトの名無しさん
08/05/03 20:39:51
SM > にしおかすみこ > アッーーーー! > クソミ(ry

22:デフォルトの名無しさん
08/05/03 20:42:08
プログラムは書いてみたけどあってるかわからん

とりあえずランダム入力を生成する部分だけアップローダにあげてみた
できた人は、この入出力があってるか確認してくれんかね?

URLリンク(kansai2channeler.hp.infoseek.co.jp)

23:デフォルトの名無しさん
08/05/03 20:48:26
mとlが同じなら文字列何いれても同じ答えになるの?

24:デフォルトの名無しさん
08/05/03 20:55:45
すまん、乱数シード狂ってた結果を張ってたので直した

URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>23
m と l は、m 個の文字列(それぞれ長さl)を
線形合同法で生成してるってこと

25:デフォルトの名無しさん
08/05/03 20:58:50
solveがないものを貼られても意味ないよ

26:デフォルトの名無しさん
08/05/03 21:00:24
間違ってる solve を堂々と張るのが恥ずかしいから
誰かに結果検証してもらうために結果だけ張ってるんじゃねーか わかってくれよ

27:デフォルトの名無しさん
08/05/03 21:01:01
>>23
そんなはずがない。
同じ文字列はいくつ入れても1つとかわらないので。

28:デフォルトの名無しさん
08/05/03 21:01:54
nとmとlの値が同じでも入力する文字列が違えばansは違ってくるんだから
何を入れたかわからないんじゃあってるかどうかなんてわからないだろ

29:デフォルトの名無しさん
08/05/03 21:02:55
お前らソロソロウザイ

30:デフォルトの名無しさん
08/05/03 21:04:09
>>26 前スレのプログラムと比較せよ

31:デフォルトの名無しさん
08/05/03 21:05:12
>>26
13のを手入力で入れて答えが288ならあってるんじゃね?

32:生ハム の代理人
08/05/03 21:09:52
[1] 授業単元:プログラミング演習
[2] 問題:ある英語の文章が規則に従って変換されてファイルに保存されています。
     その文章をファイルとして読み込み、正しい英文に復元し、ファイルに出力する
     プログラムを作成せよ。です。規則を解読したところ、単語の文字数の分だけ
     (ASCIIコード表でいう)引数?が下げられています。つまり本文でaは、
     ファイルではb,ofはqh,TheはWkhで表示されています。また、zはaに戻ります。
      willはamppです。数字やピリオド等はそのままです。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:2008年5月10日まで
[5] その他の制限:プログラムでポインタを用いて文字列を定義し、既存の文字列操作
         関数(strxxx(),例えばstrlen()など)は使わずに、自分で作成すること。
  
よろしくおねがいします。

流れぶった切って、まだ期限があるから俺はやるぞ!

33:22
08/05/03 21:11:49
>>28
乱数で生成する部分も張ったから大丈夫かなと思ったけど
そうでもないのか 入力したものを直接張るからできた人頼む

URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>30-31
前スレのが終わるくらい(20くらい)までは確かめたけどそれ以上が分からんのよ

34:デフォルトの名無しさん
08/05/03 21:12:46
文書がないことには無理

35:デフォルトの名無しさん
08/05/03 21:14:40
>>33 途中まで間違えが無かったら、大きい数字だけ間違える方が難しい。

36:デフォルトの名無しさん
08/05/03 21:16:15
>>32
それ終わってなかった?

37:デフォルトの名無しさん
08/05/03 21:16:22
>>32
一応前スレで解決してんじゃねーの?

38:デフォルトの名無しさん
08/05/03 21:21:30
>>36 >>37
コンパイルして実行してみた?本人のレス見た?

39:デフォルトの名無しさん
08/05/03 21:21:46
>>32はいちいち引っ張るような内容じゃないだろ

40:デフォルトの名無しさん
08/05/03 21:25:15
GWが終わるまでコンパイルできる環境にないって言ってたな

で、なんで>>32

41:デフォルトの名無しさん
08/05/03 21:28:26
なんだ>>32は既出だったのか
危うく吊られるとこだったZE

42:デフォルトの名無しさん
08/05/03 23:16:02
>>32の解
初心者丸出しのソースならできた
前スレに出したのは単語毎じゃなくて文単位で変換してしまってたorz

43:デフォルトの名無しさん
08/05/03 23:39:16
>>39
> あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。
> 気に入らない質問やその他や発言はスルーの方向で。

44:C++コンパイラ
08/05/03 23:57:30

Microsoft Visual C++ Toolkit 2003
fURLリンク(195.252.112.9)

VCToolkitSetup.exe

size 32952488
sha1sum 956c81c3106b97042c4126b23c81885c4b5211f4

edonkey checksum
ed2k://|file|VCToolkitSetup.exe|32952488|c534888fa7605403dcb183d2d15282d1|/


45:C++
08/05/03 23:58:41

Visual Studio 2005 Express Edition CD イメージからのインストール方法
URLリンク(www.microsoft.com)

Visual C++ 2005 Express Edition 日本語版 サイズ 611,540 KB CRC 0xB3AD1A2F
URLリンク(download.microsoft.com)




Visual Studio 2008 Express Edition の DVD イメージからのインストール
URLリンク(www.microsoft.com)
URLリンク(download.microsoft.com)



46:デフォルトの名無しさん
08/05/04 00:20:04
>>32
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
6421.cは変換用。file1.txtを読み込み、file2.txtに変換したものを出力。
6422.cは復元用。file2.txtを読み込み、file3.txtに復元したものを出力。
ファイルが存在しない場合、その場で標準入力に切り替え。終了はEOF。

47:デフォルトの名無しさん
08/05/04 00:33:25
>>5
違う気がするよ

48:デフォルトの名無しさん
08/05/04 01:02:11
>>5はヒントになってないよ。
少なくとも、任意のa,bにおいて成り立つ理論ではないからね。

49:デフォルトの名無しさん
08/05/04 01:09:52
今入っている配列の中身の数(定義したときの大きさではない)を取得するにはどうすれば良いですか?
例、
int ar[5];
ar[0]=15;
ar[1]=20;

このとき定義した大きさ5のうち2つは値を入れたので2となって欲しい。

50:デフォルトの名無しさん
08/05/04 01:15:02
>>49
別の変数で数えておけばいつでも取得できるよ。

51:デフォルトの名無しさん
08/05/04 01:22:57
配列って定義しただけだとar[3]とかには何が入ってるの?
あと大きさを越えたar[7]とかでは何が入ってるの?

52:デフォルトの名無しさん
08/05/04 01:24:00
>>49
ar[0]から順番に入れる事前提で
ar[2]に「プログラム中で使わない数字」入れる

とか>>50とか

53:デフォルトの名無しさん
08/05/04 01:30:37
>>51
配列確保してから何も入れてない状態だと何が入ってるか分からない
0 かも知れないし -8000万 かも知れない
メモリの中の物がそのまま残ってる

確保してない部分に何が入ってるかは分からないけど、
他のアプリケーションが使ってたりするから、ar[7]とかは使っちゃいけない

54:デフォルトの名無しさん
08/05/04 02:23:01
>>49
0番目に個数を入れるとか

55:デフォルトの名無しさん
08/05/04 09:37:05
>>49
C++ で STL の map を使えば数えられる

56:デフォルトの名無しさん
08/05/04 10:26:51
メモリがある程度自由に使えるのなら
>>50の方法が一番賢い方法

他の関数でその値をいじるなら、
使用する関数にカウントしている変数をアドレス渡しにすれば
関数から呼び出し元の変数を書き換えられる。
まあグローバル変数でもいいんだけどね^^;

57:デフォルトの名無しさん
08/05/04 10:44:04
>>49
iostream より printf の方が楽なので cstdio 使ってるけどこんな感じ
#include<cstdio>
#include<map>

typedef std::map< int, int > mymap;

int main(void)
{
mymap::const_iterator n;
mymap ar;
int search_index=5;

ar[0]=15;
ar[1]=20;
printf("ar.size()=%d\n", ar.size());
printf("ar[%d]=%d\n", print_index, ar[print_index]);

n = ar.find(search_index);
if(n != ar.end()) printf("ar[%d]=%d\n", search_index, n->second);
else printf("ar[%d] not exist!\n", search_index);

return 0;
}

58:デフォルトの名無しさん
08/05/04 10:48:52
画像処理で
SetPixel(hdc,x,y,c);
だと普通に表示されるのが
    x1=cos(s)*x-sin(s)*y;
    y1=sin(s)*x+cos(s)*y;
    SetPixel(hdc,x1+350,y1,c);
だと白ドットがたくさん入って表示されます。
なぜでしょうか?

59:デフォルトの名無しさん
08/05/04 10:50:51
>>58
投影される側から計算すればおk

60:デフォルトの名無しさん
08/05/04 11:12:04
そろそろ誰か課題投げてくれ
暇と飢えで死にそうだ

61:デフォルトの名無しさん
08/05/04 11:15:42
>>60
スレリンク(tech板:872番)

62:デフォルトの名無しさん
08/05/04 11:23:01
残ってる問題ってたいてい問題不備か何かだよな

63:デフォルトの名無しさん
08/05/04 11:29:16
>>61ありがと、前スレの>830をやってみようかな

64:デフォルトの名無しさん
08/05/04 11:57:30
これまで張ってくれてた人と別人だけど、前スレで残ってるのを張るぜ
しかし >>62 の言うとおり問題不備だったりするのが多いな

【未回答一覧】
>>398 2008/04/27 ヘッダに記載された内容を把握し、ヘッダを使用したプログラムを作成
>>609 2008/04/27 02:12:23 の明日 コードを説明する
>>557 2008/04/29 00:00 <copying-GCをC言語で作成 >
>>558 2008/04/29 for文を使用して、15パズルを作成せよ。
>>784 2008/05/01 22:00 5日分の気温データを最高気温の高い順に並び替えるプログラム
>>651 2008/05/04 ペイントソフトの作成
>>719 2008/05/09 waveOutGetPositionを使用して、非同期で再生中のwavの再生位置を取得する
>>826 2008/05/10 配線経路を導く配線アルゴリズム
>>629 指定なし パズル URLリンク(www2u.biglobe.ne.jp)
>>929 指定なし グレースケールPNGの画像位置(i,j)における値

65:58
08/05/04 12:00:08
度々すみません。。
投影される側から計算とは
具体的にどうすればよいのでしょう??



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch