C言語なら俺に聞け(入門編)Part 125 [sc](★0)
-
- 1
- 2014/02/16(日) 01:49:14.42
-
C言語の入門者向け解説スレッドです。
★前スレ
C言語なら俺に聞け(入門編)Part 124
http://toro.2ch.net/test/read.cgi/tech/1389096769/
★過去スレ
ttp://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 166代目
http://toro.2ch.net/test/read.cgi/tech/1381909900/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
# サイズが大きい場合はアップローダ等を利用してください。
ttp://codepad.org/
ttp://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
【重要】
当たり前の事ですが、2chではコピペ荒らしは禁止されています
-
- 737
- 2014/03/24(月) 21:29:18.09
-
お前はID真っ赤だ
これ以上質問するなゴミすれになるぞ
-
- 738
- アルゴリズム
- 2014/03/24(月) 21:40:07.75
-
うん?やっぱり要素数18のバブルソートなのかな…
-
- 739
- 2014/03/24(月) 21:48:00.78
-
お前調子のるな
質問者だからって許されることじゃない
-
- 740
- アルゴリズム
- 2014/03/24(月) 21:48:49.36
-
結論出ました。上限回数はバブルソートの回数ですね。
長方形を一列とみなすという事ですが、縦も交換できるから
強化バージョンが作れると思うのですが無理でしょうか?
-
- 742
- 2014/03/24(月) 22:08:40.60
-
これだけレスついて回答しないとか馬鹿だろ
スレを私物化するな、出ていけ
-
- 743
- 2014/03/24(月) 22:09:53.03
-
自分の頭で考えるってことができないんじゃプログラミングは無理
クレクレで出来ることなんてたかが知れてるぞおい
-
- 744
- アルゴリズム
- 2014/03/24(月) 22:18:58.11
-
使える変数はa[17]だけとします
つまり好きな要素を選んだり、選択ソートみたいに最小要素を選んだり
する事はできない。
-
- 745
- 2014/03/24(月) 22:30:34.53
-
チョンの脳なんじゃね?本国に帰れよ
-
- 746
- 2014/03/25(火) 00:11:31.10
-
愚直に1から順番に移動してみた例 :
https://ideone.com/5EgKA2
各値を線形探索しているため遅い。
-
- 747
- 2014/03/25(火) 00:20:15.28
-
>>746
96行も…ありがとうございます
それってバブルソートのアルゴリズム使ってないですか?
-
- 748
- 2014/03/25(火) 00:25:10.02
-
マナーすら守れない奴はこないでね。
回答なんて誰もできないから。
マナーの無い奴に回答すると調子乗って暴れまくるし
ほかの馬鹿がマナー守らなくていいと勘違いするからね。
だから、お前には誰も回答しないんじゃなくて、 "誰も回答できない" んだよ。
-
- 749
- 2014/03/25(火) 00:33:14.10
-
>>747
バブルソートに当たるかどうかは分かりませんが、かなり近い操作はしています。
1. n = 1とする
2. nと一致する横x番目, 縦y番目を検索する
3. nが位置すべきなのは横correct_x番目縦correct_y番目である
4. xがcorrect_xに近づくように隣同士交換する
5. yがcorrect_yに近づくように隣同士交換する
6. n = n + 1して2.へ(n = 18まで繰り返す)
左上から確定していき、初めにxで並び替えるため、左上を絶対に通りません。
従って必ず並び替えられます。
-
- 750
- 2014/03/25(火) 00:37:56.95
-
>>749
なるほど、変数は使ってるものの思いつかなかった…
整列されてる要素に影響はないでしょうか?
-
- 751
- 2014/03/25(火) 00:42:57.89
-
なるほどー
123と並んでる時、4がどこかにあるはずですが、yを先に選ぶと
重なる可能性ありますからね、よくできたアルゴリズムですね!
感動しました
-
- 752
- アルゴリズム
- 2014/03/25(火) 00:46:01.81
-
選択ソートとバブルソートの組み合わせみたいな感じですね
とても良い勉強になりました、ありがとうございます
満足しました^o^
-
- 753
- 2014/03/25(火) 07:35:56.55
-
可能な操作が、一対一のスワップではなく、4つの正方形で右・左まわりとかだと超絶難しくなりそうですね
そもそももっと一般化すると、状態を表すパラメータと、それを変化させる操作が定義された時に、
ある状態からある状態への移動が可能なのか(言い換えると、状態のグループ化)、また最速な操作の仕方はわかるのかというん問題に帰結しますね
前者の問題は、操作をずっと繰り返してすべての状態をメモリ確保して調べていけば、すべての問題で回答可能ですね
後者の問題はわかりません!誰か偉い人教えてください
ルービックキューブだと、最小手順数の最大値とかまでもうわかってるんでしたっけ確か
-
- 754
- アルゴリズム
- 2014/03/25(火) 08:21:30.02
-
中々この問題は面白いですね
移動が可能かどうかという問題は解決可能なんですか?
全ての状態を割り出して、その中に移動可能かどうか調べたい状態が無ければ移動不可能
という事になると思いますが、全ての状態を割り出したかどうかどうやって判断するんでしょうか?
-
- 755
- 2014/03/25(火) 08:31:00.39
-
>>754
まず前提として初期値が設定されています。ある状態に対する操作は有限個であるので、はじめの状態から一回操作した状態がわかるので
それを記録します。以下繰り返していき、すでに記録された状態に辿り着いたらその分岐はおしまい。
すべての状態の数は有限なので、操作していった時の状態の分岐はいつか終了するので、初期値から変化可能な状態が全て割り出せます。
状態Aから状態Bへたどり着けるかはわかりませんが、状態Aからたどり着けるすべての状態をグループ化できます
そのグループに状態Bが含まれていれば到達可能であり、
そうでないならば先のグループとは別の、状態のグループが存在しているということになります
-
- 756
- 2014/03/25(火) 08:45:38.35
-
>>754
ヨー・ロール・ピッチに3段
片方向1づつなら9通り、2手目以降も同様
その他ならなら18通り、2手目以降は15通り
完成状態から全列挙しちゃうのが最も簡単な方法なのではないかな?
-
- 757
- 2014/03/25(火) 10:02:12.13
-
また自分にとって難しい話になったww
初期値Aとして
A→B→C→D→A→E
こういう場合もあるんじゃないでしょうか?
同じ状態が途中にないような操作をしないとダメなんでしょうか?
-
- 758
- 2014/03/25(火) 10:16:14.31
-
>>757
その場合は最初のA→Bの時にA→Eも判明するだけ
-
- 759
- 2014/03/25(火) 11:32:14.30
-
4つの正方形で右・左まわり
こういう場合、適切な操作は難しいですね
全ての状態を列挙とか可能なんでしょうか
-
- 760
- 2014/03/25(火) 11:42:49.14
-
1 2 3
4 5 6
7 8 9
を上下横交換で全てのパターンを列挙せよ
この場合は、横を一回、上を一回を繰り返せばいいだけですか?
-
- 761
- 2014/03/25(火) 11:52:00.33
-
ちょっと自分でやってみます。昨日からスレ独占してすいませんでした。
-
- 762
- 2014/03/25(火) 15:20:52.88
-
これだからCはやなんだよ
-
- 763
- ◆QZaw55cn4c
- 2014/03/25(火) 19:05:34.70
-
パリティ(偶奇性)とか気になるけど,実際どなんでしょう?
-
- 764
- 2014/03/25(火) 20:11:54.20
-
おまえがどうかまず言え、ぼけ
-
- 765
- 2014/03/25(火) 20:23:01.89
-
アルゴリズムは専門書読んだら気が狂いそうになるな
グラフが出てきたら瞬間で詰む
基本的な事だけ万遍なく覚えて精神を満たすのが良いな
-
- 766
- ◆QZaw55cn4c
- 2014/03/25(火) 21:40:40.63
-
>>764
しらんがな‥‥
-
- 767
- 2014/03/26(水) 05:33:13.14
-
>>765
おまえみたいなアホがcでやるような仕事なんてないだろうから
アルゴリズムを学ぶだけ時間の無駄じゃない?
-
- 768
- 2014/03/26(水) 06:38:28.83
-
>>765-767
院生が「勉強は大変だ」と愚痴っているのを見かけた小学生が
「勉強なんて簡単だよ!」とたしなめている光景が思い浮かんだ。
-
- 769
- 2014/03/26(水) 10:51:00.49
-
適当なスペースの入れ方どうしています?
制御文
1.if(a>0){...}
2.if( a>0 ){...}
3.if ( a > 0 ) {...}
関数
1.function(argment1, argument2,[ ..].){...}
2.function( argment1, argument2, [ ...] ){...}
3.function ( argment1, argument2, [ ...] ){...}
-
- 770
- 2014/03/26(水) 11:06:21.80
-
3。
あと中括弧は次の行に入れると決まっている
-
- 771
- 2014/03/26(水) 12:00:33.25
-
括弧悪い……
>>769
if (a > 0) {
...;
}
type function(type arg1, type arg2, ...)
{
...;
}
-
- 772
- 2014/03/26(水) 12:06:32.13
-
if(a > b){
TAB...;
}
type *func(type *arg, type gra, type rag[], ...);
-
- 773
- 2014/03/26(水) 12:28:57.83
-
if(式)
{
...
}
func(引数){
...
}
-
- 774
- 2014/03/26(水) 12:32:10.47
-
俺は>>771。でelseは
if (a > 0) {
...;
}
else {
...;
}
-
- 775
- 2014/03/26(水) 13:00:51.54
-
括弧の内側にスペース入れるなとだけ言っておく
-
- 776
- 2014/03/26(水) 13:08:45.68
-
if ( a >= 0 ){
}else if ( b == 0 ){
}else if ( ( c > 4 )&&( d < 5 ) ){
}else{
}
int func( int a , char *b , long c )
{
}
for( x=0;x<100;x++ ){
}
switch( xxx ){
}
-
- 779
- 2014/03/26(水) 19:32:09.75
-
>>776の人のは、カッコが他とくっつき過ぎてちょっと俺的には見にくいわ
for (int i = 0; i < 100; i++) {
[TAB]...;
}
switch (i) {
case 0:
[TAB]...;
[TAB]break;
case 1:
[TAB]...;
[TAB]break;
}
-
- 781
- 2014/03/26(水) 20:06:06.20
-
>>777
>771と>774は別人よ。
そんな私(>771)はelse周りは>777と一緒。
-
- 782
- 2014/03/26(水) 20:46:03.99
-
if (a > 0) {
[TAB]...;
} else if (a == 0) {
[TAB]...;
} else {
[TAB]...;
}
type function(type arg1, type arg2, ...)
{
[TAB]...;
}
struct str {
[TAB]...;
};
for (int i =0; i < 10; i++) {
}
a = function(100);
-
- 783
- 2014/03/26(水) 20:50:44.47
-
自由にかけるのがCの魅力だ
-
- 784
- KAC
- 2014/03/26(水) 20:57:03.42
-
読み手にどう読んでほしいかによって書き方変える。
変化をつけるってのは、注意を引くための手法の一つ。
-
- 785
- 2014/03/26(水) 20:59:31.27
-
オイラは { 〜 } の中身の具合によって違うな。
-
- 786
- 2014/03/26(水) 21:03:58.84
-
こういうのってIDEとかで変換できないの?
できたら個人が好きなように書いて、読み手によって表示変えたりとか
-
- 787
- 2014/03/26(水) 21:58:03.18
-
VSで自分の好みにフォーマットできるよ
-
- 788
- KAC
- 2014/03/26(水) 23:49:42.71
-
空白などの書き方や癖なんかも
他人のソースを読む上での重要な情報なんだよ。
それを機械で全部取り去るなんて愚の骨頂。
このページを共有する
おすすめワード