データ構造,アルゴリズム,デザインパターン総合スレ 3©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/06/19(日) 14:47:29.63ID:5KvSKdL/
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

データ構造,アルゴリズム,デザインパターン総合スレ 2
http://echo.2ch.net/test/read.cgi/tech/1362301811/

【関連スレ】
3Dアルゴリズム全般
http://toro.2ch.net/test/read.cgi/tech/1164171086/
<集大成>アルゴリズム大辞典
http://toro.2ch.net/test/read.cgi/tech/1086272325/
アルゴリズム総合スレ in ム板
http://toro.2ch.net/test/read.cgi/tech/1217773415/

アルゴリズムとデータ構造 - Kaneko Lab.
ttp://www.kkaneko.com/adp/algo/index.html
アルゴリズムとデータ構造 - ソースコード探険隊
ttp://www.codereading.com/algo_and_ds/
各種アルゴリズムの C++ による実装 - Spaghetti Source
ttp://www.prefield.com/algorithm/
アルゴリズムとデータ構造 - プログラミングスレまとめ in VIP
ttp://vipprog.net/wiki/algo_and_data_const.html
2016/09/25(日) 01:17:16.51ID:MeFnEkA4
>>71
上でも指摘されているが整っているの定義が不明
二分探査の場合は、存在しないこともlog n で確認可能だが、この手法は整っているの定義次第では存在しない者の確認が非常に時間かかる(ソートされている場合は存在するものと同等だが、そうすると二分探索よりも利点が少なくなる)
平均計算量を求めるのはちと難しそうだけど、格納される値の値域に依存するかな
たぶん、log n 程良くはないと思う
2016/09/25(日) 09:29:52.06ID:byM8xGto
>>72
ご指摘ありがとうございます。確かに整っているの定義ができていないのが一番の難点ですよね。いつか勉強して考えたいと思います
74デフォルトの名無しさん
垢版 |
2016/09/25(日) 12:26:29.96ID:3wiQalb8
>>67
ごめん
みたけど
だめだこりゃ
2016/09/25(日) 12:52:11.14ID:NTqjAG/u
>>71
各要素間の差が一定であればO(1)、当たり前だけど、これは計算で求まる
各要素間の差の分布数が要素数に近づき、尚且つその落差が激しい場合
著しく線形時間になる

で、探索したい数値と差の最大値の商が1だった場合
その探索したい数値がある位置以下の数値探索はO(n)になる
データ列の後半に行くほど1回の演算で要素をステップする数が増えるけど
その移動は微々たるもの
データ列の内容に左右されることを差っ引いても、O(log n)からは程遠いと思う
詳しい計算は出来ないが、これを線形時間としても無理はないと思う

参考として
0 1 3 6 10 15 21 28 36 45
このデータ列では、15以下の探索はO(n)、
21は5回、28は4回、36は4回、45は3回の演算

結論として
このアルゴリズムの最大の欠点は差の最大値が必要な事を含めて
データ列の内容に左右されてしまうことだな
この手のアルゴリズムはデータの外側にあるべきだな
2016/09/25(日) 14:20:01.83ID:8PebKpFu
>>74
88
2016/09/26(月) 13:42:01.27ID:ymOrEJcI
>>61
すもモンがnewton法をガチで知らないのであればnewton法をまず勉強するべき
カンガルーの敵はバイナリではなくnewtonだ
2016/09/26(月) 20:32:40.67ID:7l1kSKga
確かにデータ間の差に一様離散分布を使ったのは公平ではなかったです。
なので、データを完全にランダムにして調べてみました。
データはCのrand()%1000000で10000個生成しソートして、
探索の時配列のうちランダムな値を探すキーとし間を線形探索、カンガルー法
バイナリサーチで100回比べてみました。
その結果線形探索では平均比較回数約4963回最大比較回数は9972回でした
カンガルー法は平均比較回数約70回 最大比較回数は111回でした。
バイナリーサーチはやはり一番はやく、平均比較回数約12回、最大比較回数は14回でした
皆さんがご指摘の通りやはりバイナリーサーチが一番はやいようです。
ただ、例えばKMP法が逆行がないから使われているようにカンガルー法も逆行がないので
使うことはできないでしょうか?もし、とんちんかんなこと言ってたらすいません。
2016/09/26(月) 20:37:55.45ID:7l1kSKga
>>74
www確かにそうかもしれませんね。
>>77
一応私はニュートン法については知っています。Newton法は求める関数の微分した値を
しっていなければならないとおもうのですが、現実の探索だと関数が微分できないことも
多いかと思います。ちょっと、私が使った例が悪くてsinカーブや円を使ったのがよく
なかったのかもしれません。整っていてソートされていないデータとして扱いやすかったので
sin関数を使ったのであってとくにデータが微分可能である必要はありません。円と
Y切片の交点も中学生でも二次方程式ときゃいいのでもっと簡単にできますが、本来は
多角形とさまざまな図形の交点を探るアルゴリズムです。円を使ったのは例をわかりやすく
したかったからです。
80デフォルトの名無しさん
垢版 |
2016/10/16(日) 18:51:48.49ID:LqkHCFhg
状態遷移ってどういうステータス持てばいいの?

A と B のステータスがあって、お互いが切り替わるのに n秒 かかる
切り替わりに失敗したら切り替えをリトライする
AはBになろうとし、BはAになろうとする

というとき、A と B のほかに AからBになるのを待ってる状態と
BからAになるを待ってる状態の 2つがさらに状態として必要?
過渡状態も状態?
2016/10/17(月) 07:56:46.27ID:TukeUWYl
>>80
システムの設計次第。
切り替え中、待ち中が状態として存在するのならプログラムでも状態にすればいい
2016/10/17(月) 15:43:18.44ID:srAFoI0L
>>81
そりゃそうだけど
状態がn個あると過渡状態がたくさんになるのは
辛い
2016/10/17(月) 17:53:14.06ID:75S5w4gh
現在の状態と次の状態のペアにすれば?
2016/10/17(月) 21:23:44.83ID:sc7L52q+
辛かろうが状態が存在するのならしょうがあるまい。
あるいは遷移をアトミックにして遷移中状態そのものを無くすか、遷移中の動作を共通化
できるなら遷移先をパラメータ化して「*への遷移中」という1状態にしてしまうとか。
2016/10/17(月) 23:34:18.88ID:WkWdUImM
>>82には無理ということで
2016/11/05(土) 20:41:10.12ID:PXYcOtjJ
ポリモーフィックなクラスの相互作用において特定の型の組み合わせの場合のみ処理を特殊化したい場合はどうすればいいのだろう?

x = xFactory.create(...);
y = yFactory.create(...);

if(x.typeCode() == X.Foo && y.typeCode() == Y.Hoge)
executeSpecial((Foo) x, (Hoge) y);
else if (...)
...
else
executeNormal(x, y);
2016/12/12(月) 23:13:40.61ID:IcWOSn01
デザインパターンを使って実装すると、年長プログラマーから、またこんなことしやがって的な拒否反応が帰ってくるんだがどうすれば
2016/12/12(月) 23:42:41.92ID:bt79hYqC
排除する他道は無い。
2016/12/12(月) 23:50:03.81ID:hGpJarHd
転職しろ
2016/12/13(火) 03:19:26.34ID:neuXXcOh
若者で組合(または派閥)を創る
2016/12/13(火) 08:14:05.45ID:5xcG7lRc
>>87 がどんなコードを書いたかも分からんのに
2016/12/13(火) 18:53:42.04ID:MUcELcjh
下手くそがデザインパターンとか使うと逆にこんがらがるからなぁ
老害とどっこいどっこいだろ
93デフォルトの名無しさん
垢版 |
2016/12/13(火) 21:32:18.83ID:lYWHr0pJ
マルチスレッドで、なんの考えもなくオブザーバー使いまくられて、データ破壊しまくられた時には、本気で殺意を抱いたよ
94デフォルトの名無しさん
垢版 |
2016/12/16(金) 15:12:11.72ID:kO0vFktz
『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』

の優先度付きキューについてのプログラムについて質問です。

p.241の heapIncreaseKey(A, i, key) という関数内で、

「if key < A[i] エラー:新しいキーは現在のキーより小さい」

というのがあります。

これがなぜ必要なのかが分かりません。

insert(key) を見れば分かるように、この本の使われ方では、
key < A[i] になることは決してありません。

よろしくお願いします。
2016/12/16(金) 15:34:53.22ID:n8JQ6xp/
assertionじゃね
96デフォルトの名無しさん
垢版 |
2016/12/17(土) 16:05:18.68ID:lvQHWty7
完成形をいきなり見てると不思議に思うよね。
でも実際には作成中のバグを考慮して、最初にチェックを入れておくもんなんだよね。
まあ、一言で言えばassertなんだけど。

ただ、作業やデバッグ用には必須であっても、その本の例示として必要か?と言われれば、確かにいらない気がする。
97デフォルトの名無しさん
垢版 |
2016/12/17(土) 16:09:26.93ID:GDWdcO6h
>>95-96

『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』の参考文献に
挙げられている『アルゴリズムイントロダクション』を見てみたら、全く同じプログラム
が載っていました。

完全にパクっていますね。

>>96
デバッグ用にどうして必要なのかが分かりません。

『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』はお持ちでしょうか?
もし、お持ちでないようでしたら該当箇所の画像をアップロードします。
98デフォルトの名無しさん
垢版 |
2016/12/17(土) 16:23:27.88ID:GDWdcO6h
>>94

念のため、該当箇所の画像をアップロードさせていただきます。
読めば読むほど意味不明です。

http://imgur.com/zKVWzAJ.jpg
http://imgur.com/owa8NkX.jpg
http://imgur.com/NmCczss.jpg
2016/12/17(土) 16:42:25.50ID:a9hyyPvt
>>97
参考文献ならパクってるとは言わない
2016/12/17(土) 16:43:27.67ID:a9hyyPvt
>>98
こういうのが本当のパクり
訴えられたら負ける
2016/12/17(土) 18:12:28.79ID:rDdwnYMe
>>97
他の本も読んでみるとわかると思うけど、プライオリティキューを二分木ヒープで実装するのは定番で、どの本でも大体同じことが書いてある
102デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:29:55.59ID:GDWdcO6h
>>98

「if key < A[i] エラー:新しいキーは現在のキーより小さい」

というのが、デバッグ用であるとは思えないのですが、これは一体何なんでしょうか?

heapIncreaseKey(A, i, key) を何か別の用途に使う場合があって、そのときに必要に
なるのならば納得しますが。
103デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:31:29.47ID:GDWdcO6h
>>101

「if key < A[i] エラー:新しいキーは現在のキーより小さい」

という意味不明のコードも『アルゴリズムイントロダクション』のプログラムには
書いてあります。

こんな余計なコードは普通は入れないと思います。

完全にパクりだと思います。
104デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:35:00.61ID:a9hyyPvt
>>103
参考文献に書いてあるんだからパクリも糞も無い罠
参考文献に書き漏れたら小保方さんみたいに突っ込まれるが
105デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:35:29.11ID:GDWdcO6h
『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』の
他のプログラムもおそらくすべて『アルゴリズムイントロダクション』の
プログラムをそのまま使っています。

恥を知れと言いたいです。
106デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:36:34.73ID:GDWdcO6h
参考文献に文献を挙げれば何でも許されるということはないと思いますが。
107デフォルトの名無しさん
垢版 |
2016/12/17(土) 19:39:42.80ID:GDWdcO6h
『アルゴリズムイントロダクション』のほうをよく読んでいませんが、

「if key < A[i] エラー:新しいキーは現在のキーより小さい」

というのも『アルゴリズムイントロダクション』のほうでは意味があるのかもしれません。

それをそのまま何も考えずにコピペしたために、意味不明なことになっているのかも
しれません。

>>98

を見て、誰か納得のいく説明ができるでしょうか?

意味不明としか言えないかと思います。
2016/12/17(土) 19:42:21.87ID:C/wQAZQ3
『アルゴリズムイントロダクション』のほうをよく読んでいませんが、
『アルゴリズムイントロダクション』のほうもまたどっか別の本からのパクリの悪寒。
2016/12/17(土) 19:47:48.93ID:YhK78PBA
"error: heap underflow" でググるといっぱい出てくる
2016/12/17(土) 19:57:50.69ID:rDdwnYMe
ID:GDWdcO6h は何をそんなに怒ってるの?
問題が解けなくてイライラしてるだけ?

どんな本も参考文献があり、どんなアルゴリズム、データ構造も元をたどれば最初に「ヒープで実装すればうまく行くぞ!」と発見した人の論文があるはず

新しい本を書くときは参考文献よりもわかりやすくなるように、説明やイラスト、擬似コードを変えたり、あるいは同じものを流用することもあるだろう
2016/12/17(土) 20:55:04.47ID:jmPH7DRp
disるのがはやってるらしい
2016/12/18(日) 00:45:20.51ID:aCKcGLhu
プログラミングコンテスト攻略のための、
アルゴリズムとデータ構造、渡部有隆(わたのべ ゆたか)、2015
Ozy(協力), 秋葉 拓哉(協力)

Aizu Online Judge(AOJ、会津大学)

プログラミング・コンテスト・チャレンジブック、第2版、2012
秋葉 拓哉, 岩田 陽一, 北川 宜稔

元々は、3人の東大大学院生が作った、チャレンジブックが大ヒットした。
今までは、こういうコンテストの問題を研究した本が無かった

一方、すでに海外では、TopCoder, Google Code Jam などが、
プログラマーの主戦場となっていて、日本では、AOJ が後を追っている状態

渡部有隆の本は、チャレンジブックの後に出した。
協力に、秋葉 拓哉の名前もある

プログラマ脳を鍛える数学パズル
シンプルで高速なコードが書けるようになる70問、増井 敏克、2015

一方、増井は、Rubyで解く、このパズル本で、
「ITエンジニアに読んでほしい!技術書・ビジネス書 大賞(ITエンジニア本大賞)」を受賞している
113デフォルトの名無しさん
垢版 |
2016/12/18(日) 00:49:54.79ID:VFzWAIXP
めんどくさ
2016/12/18(日) 01:14:58.25ID:aCKcGLhu
漏れも、JavaScriptで、2分ヒープ(BinaryHeap)を実装したので、参照して
http://jsdo.it/michihito/bGH5

2分ヒープは、優先度つきキュー (順位キュー、priority queue)や、
ダイクストラ法 (Dijkstra's Algorithm)で使う

配列の[0]は使わない。[1]から始めると計算が楽
親1, 左右の子は2, 3で、親n, 子2n, 2n+1

プログラミング・コンテスト・チャレンジブックでは、[0]から始めていますが、
もし[0]から始めると、
親0, 左右の子は1, 2で、
親1, 左右の子は3, 4で、
親n, 子2n+1, 2n+2、となり複雑だから
2016/12/18(日) 01:56:35.37ID:05Ug+E6t
>>114
汚すぎるコードだ。なんだろう。初心者とも違うな。
まるで20年ぐらい前から成長してない人が書いたコードのようだ。
116デフォルトの名無しさん
垢版 |
2016/12/18(日) 02:12:34.14ID:KR24tnjc
>>115
ド素人と丸出しの感想文だな
117114
垢版 |
2016/12/18(日) 04:57:12.61ID:aCKcGLhu
すまぬ

JavaScriptも、よく知らずに書いたのだw
本当は、== ではなく、型も一致する厳密等価演算子、=== を使うべきだろう

まあ、JSなどで、とても開発はできない。
Haxe で書き直せばよいのだろうが

Kotlin, Electron やら何やら、最近の言語に、ついていけてないw
2016/12/18(日) 08:19:04.80ID:05Ug+E6t
> 本当は、== ではなく、型も一致する厳密等価演算子、=== を使うべきだろう
そういうレベルじゃない。

無駄なロジック、意味不明な変数名、多すぎるコメント、
コードの意味を何一つ分かってないとしか思えないといってんの
2016/12/18(日) 11:08:48.21ID:7J/3tpZx
俺はむしろここ
> このソースコードのライセンスは、MIT License です
> Original Copyright (c) 2014 Michihito Seto All Rights Reserved.
残飯を神棚に飾るが如く宣言
ここにこそ初心者らしさが凝縮されてる
120デフォルトの名無しさん
垢版 |
2016/12/18(日) 11:50:21.36ID:5nrc1ooF
>>114

『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』の

「if key < A[i] エラー:新しいキーは現在のキーより小さい」

というのは意味があるのでしょうか?
2016/12/18(日) 11:50:54.72ID:05Ug+E6t
jsdo使ってるやつって汚いコードが多いよな。
素人が使いたくなる機能でもあんのか?
ブラウザだけで開発ができるとか?
122デフォルトの名無しさん
垢版 |
2016/12/18(日) 11:53:36.61ID:5nrc1ooF
デバッグなど必要のないくらい簡単なコードなので、デバッグ用とは考えられないかと思います。
2016/12/18(日) 11:57:14.52ID:0+9ctOie
馬鹿ほど自説に拘るw
124デフォルトの名無しさん
垢版 |
2016/12/18(日) 12:12:58.36ID:5nrc1ooF
Introduction to AlgorithmsよりもAlgorithms(Sedgewick、赤い本)のほうがいい本ですね。

読んでいて楽しい。
125デフォルトの名無しさん
垢版 |
2016/12/18(日) 12:18:23.69ID:5nrc1ooF
日本語のデータ構造とアルゴリズムの本だと、茨木の本が有名だけど、
どこがいいのかさっぱりわからない。

翻訳書ではない日本語の本でまともなのは、浅野孝夫の本くらいではないでしょうか?
2016/12/18(日) 12:18:30.80ID:d5jVhhWj
アルゴリズムやコードのライセンスってどの程度のものから付けていいんだ
あんまり簡単なものだと既出すぎてライセンス付けられるのか?って考えてしまう
かといってじゃあライセンス付けていい最低ラインは何なんだという話になる
127デフォルトの名無しさん
垢版 |
2016/12/18(日) 12:20:00.87ID:5nrc1ooF
>>126

ライセンスとか書いてあっても一部だけコピペして利用したら、分からないですよね。

どうやって、だれかのコードを流用したか判定するのか、それに興味があります。
2016/12/18(日) 12:30:54.60ID:RB5DyRP2
アルゴリズムには著作権ないよ
あるのはそれをどう表現したか
簡単なアルゴリズムには表現バリエーションなんて限られてるから
ある程度似るのはどうしようもない
129デフォルトの名無しさん
垢版 |
2016/12/18(日) 12:37:57.44ID:5nrc1ooF
特許ならありますよね。
2016/12/18(日) 13:02:47.44ID:PELrVlNw
デザインパターンの本高い・・・
一冊持ってたけど引っ越しのごたごたでなくしちゃった
無料で網羅できるサイトありませんかね
一冊読んではあるので、さらっと構造や仕組みを紹介してくれていればいいし
英語もある程度は読めます

基本のデザインパターンだけでもありがたいし
マルチスレッド対応に踏み込んだサイトならなおありがたいです
2016/12/18(日) 13:22:26.46ID:d5jVhhWj
基本的な考え方覚えたら幾らでも応用できるだろ
カタログを後生大事にとっておく意味はない
2016/12/18(日) 13:35:15.82ID:PELrVlNw
覚えてないんすよ
記憶力ないんで忘れちゃって、ぼんやりとしか覚えてないんです
だから概要をしっかり覚え直したいなと思って
2016/12/18(日) 13:42:55.97ID:+dKTlaSP
>>132
いや、デザパタ本こそ手元においておくべき
わけのわからん二次情報を見るとどんどんブレていくぞ
2016/12/18(日) 13:45:05.00ID:RB5DyRP2
リファレンスとしてはどの本がいい?
135デフォルトの名無しさん
垢版 |
2016/12/18(日) 13:45:12.43ID:5nrc1ooF
ソフトウェア工学的な本って重要なんですか?
136デフォルトの名無しさん
垢版 |
2016/12/18(日) 13:45:59.00ID:5nrc1ooF
学問的には全く面白くない分野ですよね。
2016/12/18(日) 14:08:17.53ID:PELrVlNw
TECHSCOREのデザインパターンのページ見ることで自己解決しました
138デフォルトの名無しさん
垢版 |
2016/12/18(日) 15:45:37.97ID:VFzWAIXP
デザパタカタログは便利だよね
煮詰まったときに、休憩がてらパターンを眺めてると、閃くときがある
2016/12/18(日) 16:24:54.12ID:+Ko1jSRc
ねーわ、普通のコードが99.99%
2016/12/18(日) 18:22:27.13ID:d5jVhhWj
基本的な発想を学んだらカタログはポイ
パターンに執着してもデザインがぎこちなくなるだけ
141114
垢版 |
2016/12/18(日) 23:03:56.86ID:aCKcGLhu
>>119
jsdo.it では、全員のソースコードが、サイト内に限り、MITになる

漏れが、わざわざ、MITと書いておいたのは、サイト外でも使ってほしいという意味。
学生が勉強することも多いから、コメントも一杯書いた

2分ヒープ、AVL、赤黒木など、アルゴリズムの実装は、どうしても汚いソースコードになる
2016/12/18(日) 23:11:13.26ID:f3M2Oqre
143デフォルトの名無しさん
垢版 |
2016/12/18(日) 23:11:21.17ID:5nrc1ooF
2分ヒープって簡単なアルゴリズムですよね。

汚くなりようがないように思うのですが。
144デフォルトの名無しさん
垢版 |
2016/12/18(日) 23:12:19.64ID:5nrc1ooF
計算幾何学って難しい割に見返りが少ないように思います。

だからあんまり人気がないのかもしれないですね。
2016/12/19(月) 00:01:07.57ID:hSWjQy3F
漏れw
2016/12/19(月) 01:06:56.52ID:8cVREo5r
流石に漏れは笑う
2016/12/19(月) 08:08:43.72ID:judB9f5Y
>>144
全体的なリテラシの底上げがされるまではどうしてもね。
148デフォルトの名無しさん
垢版 |
2016/12/19(月) 12:42:11.26ID:z9XVuDpo
>>144
理論的な上限値をあらかじめ計算することが出来て
無駄な努力や試行錯誤をしなくて済むというメリットがあるよ
2016/12/19(月) 17:37:02.75ID:ic0p/3Yf
長さnの整数からなる列(a_1 ,a_2, ..., a_n) があるとして、列の大きさを
|a_1|+...+|a_n|で定義します。、
大きさがmの任意の列を大きさm-1の列の中の一つの値だけ1違う
列一つに対応させたいんですけど
対応のさせ方がわかりません、教えてください。
例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する長さ2の列は
(0 ,-1 ,1), (1,0,1),(1,-1,1),(1,-1,0)とかあるので一つには定まってません。
なのでその対応をする関数をおしえてください。
2016/12/19(月) 17:39:59.34ID:ic0p/3Yf
長さnの整数からなる列(a_1 ,a_2, ..., a_n) があるとして、列の大きさを
|a_1|+...+|a_n|で定義します。、
大きさがmの任意の列を大きさm-1の列の中の一つの値だけ1違う
列一つに対応させたいんですけど
対応のさせ方がわかりません、教えてください。
例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する大きさ2の列は
(0 ,-1 ,1), (1,0,1),(1,-1,0)とかあるので一つには定まってません。
なのでその対応をする関数をおしえてください。
2016/12/19(月) 17:48:27.12ID:z9XVuDpo
(1,-1,1)の長さが2?
152デフォルトの名無しさん
垢版 |
2016/12/19(月) 17:53:09.70ID:yHCszZUX
>なのでその対応をする関数をおしえてください。

意味不明です。
153デフォルトの名無しさん
垢版 |
2016/12/19(月) 17:55:40.11ID:yHCszZUX
(a_1, a_2, ..., a_i, ..., a_n)

a_i > 0 のときには、

(a_1, a_2, ..., a_i-1, ..., a_n)

a_i < 0 のときには、

(a_1, a_2, ..., a_i+1, ..., a_n)

a_i = 0 のときには、

(a_1, a_2, ..., a_i±1, ..., a_n)

を返せばいいのでは?
154デフォルトの名無しさん
垢版 |
2016/12/19(月) 17:57:14.37ID:yHCszZUX
(a_1, a_2, ..., a_i, ..., a_n)

a_i > 0 のときには、

(a_1, a_2, ..., a_i-1, ..., a_n)

a_i < 0 のときには、

(a_1, a_2, ..., a_i+1, ..., a_n)

を返せばいいのでは?

a_i = 0 のときには、条件を満たす列は存在しないね。
155デフォルトの名無しさん
垢版 |
2016/12/19(月) 17:58:07.65ID:yHCszZUX
>>150

何がやりたいのかが不明確。
2016/12/19(月) 17:58:17.41ID:hSWjQy3F
>>149
列の最初の数字だけ1足すなり引くなりして返せばいいだけじゃないの?
157デフォルトの名無しさん
垢版 |
2016/12/19(月) 18:01:17.72ID:yHCszZUX
>例えば n=3のとき(1, -1, 1)は大きさが3で、これに対応する大きさ2の列は
>(0 ,-1 ,1), (1,0,1),(1,-1,0)とかあるので一つには定まってません。
>なのでその対応をする関数をおしえてください。

一つに定まらないから、すべての結果を返したいのか、
任意の一つの結果を返したいのか?
158デフォルトの名無しさん
垢版 |
2016/12/19(月) 18:02:09.41ID:yHCszZUX
明らかに、

(0, 0, ..., 0) に対しては条件を満たす結果は存在しないね。
2016/12/19(月) 18:50:37.10ID:ic0p/3Yf
0はスタート地点なので
2016/12/19(月) 18:57:02.98ID:ic0p/3Yf
>>154
a_2を1としたとき(-1, 1)のとき(-1,0)を返し
a_1を-1としたとき (-1,1)は(0,1)をかえすことになるので
一つに定まりません
2016/12/19(月) 19:06:19.22ID:ic0p/3Yf
>>157
大きさn>0の任意の列aにたいしてf(a)=bでbがn-1の大きさでaと列の中の値が1だけ違う
列を出力する関数fを求めるということです。
2016/12/19(月) 19:13:51.38ID:ic0p/3Yf
>>156
初めはそんな風に考えてる時期もありました
もう2か考えてるけれど全然わからないのでここで質問してみました
2016/12/19(月) 19:16:05.63ID:hSWjQy3F
>>161
問題文を鸚鵡返しするんじゃなくて、質問者の質問に答えたら?
2016/12/19(月) 19:23:49.64ID:ic0p/3Yf
>>163
fの出力は列の集合じゃないから普通わかりますよね
2016/12/19(月) 19:31:58.40ID:hSWjQy3F
>>164
fが返すのは集合じゃないってのはどこに書いてある?
2016/12/19(月) 19:34:42.99ID:ic0p/3Yf
>>165
14行上に書いてあります
2016/12/19(月) 19:47:31.40ID:hSWjQy3F
>>166
Mateだと>>156って書いてあるわ
自分の中ではこれは当然みたいな条件がいろいろあるんだろうけど、それを人に説明するのが下手なんじゃね
2016/12/19(月) 20:02:25.40ID:ic0p/3Yf
改行コードの数を数えてますか?
文の折り返しと改行とは違いますよ?
2016/12/19(月) 20:17:02.98ID:2q/Y95iw
こりゃまたひどい質問者だな
2016/12/19(月) 20:18:06.39ID:Xx/umGft
課題の丸投げ、しかも「日本語」が
2016/12/19(月) 20:25:56.12ID:ic0p/3Yf
課題という証拠はありますか?
実際課題じゃなくプログラミングしていたら出てきた問題なので
全然課題じゃないです
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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