【BTC有償】C/C++/Java/C#/JSの問題を片付けます(5) [転載禁止]©2ch.net
あなたが解けない C/C++/Java/C#/JavaScript の問題を有償で片付けるスレッドです。
ビットコイン (https://bitcoin.org/) により決済を行います。
【回答掲示までの流れ】
1. 依頼者が問題を投稿する。
2. 回答者は、回答できる問題があれば、受託レスを行う。
回答者は、受託レスに必要ビットコイン, 送金用アドレス,決済日を基点とした回答提示予定日を記述しなければならない。
3. 依頼者は 受託レスのアドレスにビットコインを送金する.
4. 回答者は,依頼者の送金を確認したら、受託レスの回答予定日にしたがって回答を掲示する。
(http://codepad.org/, http://ideone.com を推奨します。)
※本フローに従わない回答掲示についてはビットコインの請求は発生しないものとします。
【料金】
・回答者は回答と交換するビットコインを受託レスに記述します。
・一つのレスに記述できる内容を一問とします。アップローダーを使用してもかまいません。
・回答者は、ビットコイン返還条件を受託レスに記述することを強く推奨します。
【修正】
・回答者は、いかなる場合においても修正の義務は負わないこととします。
ただし回答者が受託レスに修正条件を記述した場合はその限りではありません。 >>75
いくら勉強してもプログラムが書けないヒトも居るんだよ。自分の技術を活かしなよ。そのままだと消えちゃうよ。 >>76
と思ったが、標準化も合理化もされてない汚いコードだった。同情する。 >>77
C ならばこんなもの、では?
標準化・合理化とはどういう意味か、キーワードを教えていただけませんか? >>78
標準関数labsやabsを差し置いてiabsを定義したり、標準ヘッダ<stdint.h>を差し置いて互換性のない整数型を使ったりするのは、標準化が進んでないと言える。
また、入出力が1バイトずつだったり、1関数内で必要以上に複雑に機能を混ぜたりするのは合理性や哲学が足りないと言える。 gotoの連続は時代遅れだし、IDEデバッグの一発で変数の値を調査できるのに今どきprintfデバッグはないでしよう。 >>79
ありがとうございます
>標準関数labsやabsを差し置いてiabsを定義したり、
>標準ヘッダ<stdint.h>を差し置いて互換性のない整数型を使ったりするのは、標準化が進んでないと言える。
確かに耳がいたい、特に 2011 年の頃は stdint は意識していませんでした
>入出力が1バイトずつだったり、1関数内で必要以上に複雑に機能を混ぜたりするのは合理性や哲学が足りないと言える。
入出力が 1 バイトずつなのは趣向です、つまり「処理系の」エンディアン依存を回避するための書き方を模索していたから
1関数内で必要以上に複雑に機能を混ぜたり、というのは、ある意味やっつけ仕事だったような気がしますから、この点はもう少し整理できるのやもしれませんね >>80
goto は使いどころだと思いますし、私の goto の使い方はよくあるやりかたかと
printf デバッグ‥‥まあ、#if 0 の中の話は許してください‥‥ エンディアンの問題はプリプロセッサでコンパイラのエンディアンの種類を判定して、必要ならば後で各整数値のバイト順を入れ替えることで対処可能。 >>83
そのプリプロでエンディアン判定って具体的にどうするのですか?もしかしてコンパイラ依存のプリプロなのでは? >>86
1. endian.h は標準ですか?
2. __ORDER_LITTLE_ENDIAN__ は誰が定義するのですか?
3. 私は、エンディアンに依存する部分をちまちま #if でわけわけするくらいなら、最初からどっちでも動くコードを書く価値観を(ときどきはそうでないにせよ、たまには)持ちますが、片山さんはどうお考えですか? >>87
ここ有償のスレでしょうが
あんたが質問したらそれも有償で答えをもらうつもりってことですね >>88
そのつもりです
>>1-4 のテンプレートに従って回答者が BTC を提示するのを待ちますよ 順番に見ていくよ。
#if defined(__linux__) || defined(__ANDROID__)
この行はライナックスかアンドロイドであるか確認している。そうなら<endian.h>をインクルードできる。
#elif defined(__Apple__)
この行はアポウ製品かどうか確認している。アポウなら
<machine/endian.h>
をインクルードできる。
これでエンディアン関連のマクロが定義されるであろう。 __ORDER_LITTLE_ENDIAN__
これはコンパイラまたはエンディアン関連のヘッダーが定義する。
いちいちちまちま定義するのは、エンディアン関連の処理の最速を狙うため。それがそんなに重要でなければ自己流で書けばいい。 最後にこの行:
#elif defined(_WIN32) || defined(__i386__) || defined(__x86_64__)
32ビットまたは64ビットのWindowsコンパイラなら_WIN32が定義済み。また、i386コンパイラならおそらく__i386__が、定義済みである。
これらはすべてリトルエンディアンである。 どのシンボルを誰が定義するのかがどこで標準化されてるのかって話だろ 少し改良しました。
https://github.com/katahiromz/swap_endian/blob/main/swap_endian.h
エンディアン関連はまったく標準化されてません。ほとんどOSごとに違うし、明文化があまりされてない。OS作る人が別々にテキトーに定義しちゃったらしい。 >>96
なるほど、価値観を率直に提示いただき感謝します makeファイル内でエンディアンチェック等の小さなコード走らせて define を生成することもできるよね >>98
まけファイルって、int main(){ return r; } の r を識別するのですか?成功(ゼロ値)か失敗(非ゼロ)かしか見ていないかと思っていました、まあそれだけでも使えるかもしれませんが、というか、返り値で挙動を変えることのできる make ってあんまり聞かないな‥‥ >>99
例えば endian.h を生成するんだよ、そのコードで。 Windows環境なんですがddao35.dllって何者?
Windows SDKにインポートライブラリだけはあるので
CdbDatabaseとかCdbRecordsetとか書いてビルドは通るんだけど
dllが無いから実行時にエラー。
Windows 10環境複数、Windows 7、Windows XPでdllを探し回ったが同じ
(どの環境もインポートライブラリだけは"C:\Program Files"内にある
ひょっとしてDAOよりさらに古いODBCドライバか何か?? 425 名前: ◆QZaw55cn4c [sage] 投稿日:2012/09/12(水) 04:03:24.28
http://toro.2ch.net/test/read.cgi/tech/1342966104/633
>>365 を元にして出題の仕様にあわせました。
http://ideone.com/WtkcM
本当にΟ(nlogn)かはよくわかりませんが、バブルソートよりはましなようです。http://ideone.com/Dsiv2
なお >>365 はコムソートの実装自体にあやまりがあることが判明しました。次に訂正します。
http://codepad.org/1KriOa6z クイックソートの最悪計算量はO(N^2)、
と世間一般には認識されているが
クイックセレクトと組み合わせたら最悪計算量もO(n*log(n))になる、
というオーダー記法マジック、 >>109
イントロソート、というのもあるようですね そこまでするならクイックソートなんか使わん
実装の簡単さしか売りがないんだから >>111
実用的なソートでは、ソート範囲がある程度まで狭くなったら選択ソート・挿入ソートに切り替えますよ
そういうところは、あなたお得意の実時間評価的に優位でしょう? 「あなたお得意の」????
俺が誰だか知ってるの?