次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part129
http://echo.2ch.net/test/read.cgi/tech/1483940967/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.100【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1478440682/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
C++相談室 part130 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ f37a-QmV0)
2017/03/31(金) 08:47:49.65ID:UkLjKqcm0622デフォルトの名無しさん (ワッチョイ 06af-D66J)
2017/07/01(土) 07:25:20.19ID:qtP/3v2i0 意味というか行列の逆行列のij成分はij余因子を行列式で割った値だと言うことを知っていれば
NxN行列の逆行列の各成分はij余因子行列である(N-1)x(N-1)行列の行列式の計算になるから
数学的帰納法的にテンプレート化可能
NxN行列の逆行列の各成分はij余因子行列である(N-1)x(N-1)行列の行列式の計算になるから
数学的帰納法的にテンプレート化可能
623デフォルトの名無しさん (ワッチョイ 42aa-wjSU)
2017/07/01(土) 07:49:52.59ID:nS8nnQe50 >>622
君は説明がうまいね
君は説明がうまいね
624デフォルトの名無しさん (ワッチョイ 06af-D66J)
2017/07/01(土) 08:05:35.58ID:qtP/3v2i0 いやそれほどでも・・・///
625デフォルトの名無しさん (ワッチョイ 42aa-wjSU)
2017/07/01(土) 08:28:19.10ID:nS8nnQe50 式テンプレートで正項と負項をバサッと消し合うようなことができないかと考えて挫折したなあ
626デフォルトの名無しさん (ワッチョイ 921b-zTMA)
2017/07/01(土) 08:44:48.56ID:C6ffpB7m0 >>622
いや、その余因子を求めることも、そこから行列式を求めるにも、全行列値が必要になるわけだし、
そもそも、余因子行列式の計算はNxN->3x3までの変換が再帰的な計算でスタックを使いたおすことになるので、
ヒープに一時オブジェクトを使わずにすむといという式テンプレートのメリットが全くないんじゃないんですか?
だいたい余因子行列式の除算なんて効率悪すぎて数値計算じゃ使いませんよ。
話をはっきりさせるために、ここは逆行列計算をGauss-Jordanの掃き出し法に限定しましょうや。
>数学的帰納法的にテンプレート化可能
どういう意味です?
数学的帰納法とは、
i=1のときf(1)が成立する
i=nのときf(n)が成立すると仮定すれば
i=n+1のときも成立することを証明して、一般的にf(n)が成立とする
いや、その余因子を求めることも、そこから行列式を求めるにも、全行列値が必要になるわけだし、
そもそも、余因子行列式の計算はNxN->3x3までの変換が再帰的な計算でスタックを使いたおすことになるので、
ヒープに一時オブジェクトを使わずにすむといという式テンプレートのメリットが全くないんじゃないんですか?
だいたい余因子行列式の除算なんて効率悪すぎて数値計算じゃ使いませんよ。
話をはっきりさせるために、ここは逆行列計算をGauss-Jordanの掃き出し法に限定しましょうや。
>数学的帰納法的にテンプレート化可能
どういう意味です?
数学的帰納法とは、
i=1のときf(1)が成立する
i=nのときf(n)が成立すると仮定すれば
i=n+1のときも成立することを証明して、一般的にf(n)が成立とする
627デフォルトの名無しさん (ワッチョイ 921b-zTMA)
2017/07/01(土) 09:09:28.46ID:C6ffpB7m0 >>626
ちょっと、誤解を招きかねないんで、
余因子行列式が再帰的云々と書きましたが、
余因子に限らず、行列式の計算そのものが再帰的という意味です。
だから、行列式計算そのものがやたら時間がかかる。
大学の試験の答案とかで、途中点をかせぐために(連立方程式を解いて計算間違いするより加点が期待できる)、
余因子行列式/行列式
を明記したりしますが、このやり方はせいぜい手計算でできる4x4程度の話で、
それ以上だと掃き出し法に比較して極端に非効率ということです。
ちょっと、誤解を招きかねないんで、
余因子行列式が再帰的云々と書きましたが、
余因子に限らず、行列式の計算そのものが再帰的という意味です。
だから、行列式計算そのものがやたら時間がかかる。
大学の試験の答案とかで、途中点をかせぐために(連立方程式を解いて計算間違いするより加点が期待できる)、
余因子行列式/行列式
を明記したりしますが、このやり方はせいぜい手計算でできる4x4程度の話で、
それ以上だと掃き出し法に比較して極端に非効率ということです。
628デフォルトの名無しさん (オッペケ Sr71-F+4p)
2017/07/01(土) 09:32:16.00ID:T5yR4indr >>626
>効率悪すぎて数値計算じゃ使いませんよ
「式テンプレートの勉強」を「汎用数値計算ライブラリを式テンプレート化するための勉強」にすりかえられても…
>どういう意味です?
ヒント:回答者は日本語を正しく使えない
>効率悪すぎて数値計算じゃ使いませんよ
「式テンプレートの勉強」を「汎用数値計算ライブラリを式テンプレート化するための勉強」にすりかえられても…
>どういう意味です?
ヒント:回答者は日本語を正しく使えない
629デフォルトの名無しさん (ワッチョイ 42aa-wjSU)
2017/07/01(土) 10:10:34.74ID:nS8nnQe50 再帰的に→帰納的に→帰納法的に
jk
jk
630デフォルトの名無しさん (ワッチョイ 0111-WwN4)
2017/07/01(土) 12:42:17.52ID:RfHKhQjf0 数学用語はよくわからんけど
>行列の逆行列のような一要素の計算に行列全部が影響するような計算を
>こいつで実装する意味ってありまつか?
ない
というか式テンプレート勉強するというなら自分で軽く実装してみるべきだよ
↑の場合は速度がどうこう以前の問題だとわかるから
>行列の逆行列のような一要素の計算に行列全部が影響するような計算を
>こいつで実装する意味ってありまつか?
ない
というか式テンプレート勉強するというなら自分で軽く実装してみるべきだよ
↑の場合は速度がどうこう以前の問題だとわかるから
631デフォルトの名無しさん (オッペケ Sr71-F+4p)
2017/07/01(土) 13:26:13.77ID:T5yR4indr >再帰的に→帰納的に
これはひどい
再帰的と帰納的は関係ないし、数学的帰納法は帰納的でも帰納法でもない
>>こいつで実装する意味ってありまつか?
>ない
確かに質問に対する明確な回答なのだが、何かこう足りないような…
これはひどい
再帰的と帰納的は関係ないし、数学的帰納法は帰納的でも帰納法でもない
>>こいつで実装する意味ってありまつか?
>ない
確かに質問に対する明確な回答なのだが、何かこう足りないような…
632デフォルトの名無しさん (スッップ Sd62-TIEP)
2017/07/05(水) 14:15:27.50ID:/9Xtn5yvd scanfより速い標準入力ってない?
スペース区切りの大量のintをベクトルにいれたいんだけどループ回してscanfがどうやっても最速なのかな
スペース区切りの大量のintをベクトルにいれたいんだけどループ回してscanfがどうやっても最速なのかな
633デフォルトの名無しさん (ワッチョイ 6e1c-4/kT)
2017/07/05(水) 15:44:26.17ID:4h6UtxrL0 istream_iterator<int> first(cin), last;
vector<int> wish_of_632{first, last};
vector<int> wish_of_632{first, last};
634デフォルトの名無しさん (スッップ Sd62-TIEP)
2017/07/05(水) 16:39:36.49ID:/9Xtn5yvd >>633
試してみるサンクス
試してみるサンクス
635デフォルトの名無しさん (オッペケ Sr71-F+4p)
2017/07/05(水) 16:59:04.15ID:UhWlQCq1r Visual Studio 2017のリリースビルドで試したが>>633 の方法は倍ほど遅いような
636片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT)
2017/07/05(水) 17:16:22.28ID:2aUA7xnEd fread, fgets, getchar
637片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT)
2017/07/05(水) 17:22:18.00ID:2aUA7xnEd int n = 0;
if ('0' <= ch && ch <= '9') {
n *= 10;
n += ch - '0';
} else {
put_int(n);
n = 0;
}
if ('0' <= ch && ch <= '9') {
n *= 10;
n += ch - '0';
} else {
put_int(n);
n = 0;
}
638片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT)
2017/07/05(水) 17:31:38.49ID:2aUA7xnEd GetStdHandle(STD_INPUT_HANDLE)
639デフォルトの名無しさん (ワッチョイ c2f0-wjSU)
2017/07/05(水) 18:03:51.31ID:IVGCprss0 大量=一行10000個程度の数字が10000行ほど?
640デフォルトの名無しさん (オッペケ Sr71-F+4p)
2017/07/05(水) 18:09:07.25ID:UhWlQCq1r 自前が最速なのだろうが汎用性を考えるとお勧めできない
ある環境での適当な100万個の整数読み込み時間:
istream_iterator : 470ms
scanf : 230ms
fgetc+自前スペース解析+atoi :
175ms
最初に全部char配列に読み込み+片山式パース: 32ms
ある環境での適当な100万個の整数読み込み時間:
istream_iterator : 470ms
scanf : 230ms
fgetc+自前スペース解析+atoi :
175ms
最初に全部char配列に読み込み+片山式パース: 32ms
641デフォルトの名無しさん (ワッチョイ 46e4-ejav)
2017/07/05(水) 19:23:43.26ID:rZavNuQl0 何のチェックもしないscanf,printfのやり方が最速なのは自明
642デフォルトの名無しさん (ワッチョイ 6111-wjSU)
2017/07/05(水) 20:06:49.25ID:tZeoWZVY0643デフォルトの名無しさん (オッペケ Sr71-F+4p)
2017/07/05(水) 20:09:41.12ID:UhWlQCq1r644デフォルトの名無しさん (ワッチョイ 6111-wjSU)
2017/07/05(水) 21:04:30.49ID:tZeoWZVY0 >>643
てことは
fgetc+自前スペース解析+atoi :175ms
fread++自前スペース解析+atoi :80ms
読み込みのオーバーヘッドで175-80=95msロスしてるわけか
atoiは変換不能文字とか16進とかチェックしてるからその分遅くなるんだろう
自前で10進のみに特化させるのが一番なんだけどもな
てことは
fgetc+自前スペース解析+atoi :175ms
fread++自前スペース解析+atoi :80ms
読み込みのオーバーヘッドで175-80=95msロスしてるわけか
atoiは変換不能文字とか16進とかチェックしてるからその分遅くなるんだろう
自前で10進のみに特化させるのが一番なんだけどもな
645デフォルトの名無しさん (スップ Sdc2-Pf3w)
2017/07/05(水) 21:05:36.71ID:O+22iBefd 複数スレッドに分けてアセンブラの自作関数で回す
646デフォルトの名無しさん (スップ Sdc2-Pf3w)
2017/07/05(水) 21:07:40.11ID:O+22iBefd 各スレッドも、複数数値を並列で動かす
647デフォルトの名無しさん (スップ Sdc2-Pf3w)
2017/07/05(水) 21:08:36.26ID:O+22iBefd C++スレだった
すまんこ
すまんこ
648はつみつ餃子 ◆8X2XSCHEME (ワッチョイ 8215-CicO)
2017/07/05(水) 21:23:34.13ID:YH3wEyty0 どういう風に並列化できる?
649片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT)
2017/07/05(水) 21:26:33.09ID:2aUA7xnEd 処理すべきブロックに対して、ちょうどいい区切りで、等分割に近い分割をやって、それぞれを別々のスレッドで処理する。
スレッドがすべて終わったら、処理結果を結合する。
スレッドがすべて終わったら、処理結果を結合する。
650デフォルトの名無しさん (ワッチョイ 6111-wjSU)
2017/07/05(水) 21:28:54.47ID:tZeoWZVY0 スレッドもインラインアセンブラもC++の範疇だよ
ただIOはロックされるから解放待ちの時間が出来てしまう
ラインごとに随時読み込んでスレッド振り分けかな
パースに時間がかかるならそれも悪くないんだろうけど簡易atoi程度じゃ差は出にくい
ただIOはロックされるから解放待ちの時間が出来てしまう
ラインごとに随時読み込んでスレッド振り分けかな
パースに時間がかかるならそれも悪くないんだろうけど簡易atoi程度じゃ差は出にくい
651デフォルトの名無しさん (ワッチョイ c21b-8PSv)
2017/07/05(水) 21:34:38.31ID:slEXI2jh0 原理的にはブロッキングIOのファイル読み出しの待ち時間を有効に活用すれば
それが最速だけど並列化のオーバーヘッドを最小にしようと思ったら
OS毎あるいはファイルIOのライブラリ毎に特化しなきゃならない気がするので面倒くさい
それが最速だけど並列化のオーバーヘッドを最小にしようと思ったら
OS毎あるいはファイルIOのライブラリ毎に特化しなきゃならない気がするので面倒くさい
652片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT)
2017/07/05(水) 21:40:11.90ID:2aUA7xnEd #ifdef _WIN32
// Windowsの場合
...
#elif ...
// Windowsの場合
...
#elif ...
653デフォルトの名無しさん (ワッチョイ c99a-Pf3w)
2017/07/05(水) 23:16:04.44ID:icFnMa9s0 各スレッドも、前から順番にやってたら遅い
各スレッドのなかでも複数を同時にやらないと
例えば>>637みたいなのだと、各ステップが終わらないと次のステップに進めない
演算の遅延があるので、各演算ポートはスカスカになる
HTで少しはマシにはなるが、それでもスカスカ
整数演算は同時に3個〜4個出来るのだ
これを活かさないと
まあいずれにしろファイルなんか使ってたら読み込み時間がほとんどなので、ガリガリにアセンブラで組む価値もないけど
各スレッドのなかでも複数を同時にやらないと
例えば>>637みたいなのだと、各ステップが終わらないと次のステップに進めない
演算の遅延があるので、各演算ポートはスカスカになる
HTで少しはマシにはなるが、それでもスカスカ
整数演算は同時に3個〜4個出来るのだ
これを活かさないと
まあいずれにしろファイルなんか使ってたら読み込み時間がほとんどなので、ガリガリにアセンブラで組む価値もないけど
654デフォルトの名無しさん (ワッチョイ be91-DoE+)
2017/07/05(水) 23:24:23.81ID:9lrezxXx0 C++のすごい人お願い教えて!!!functionにメンバ関数を代入するにはどうすればいいのか全然わからんのや!!!
#include <iostream>
#include<functional>
using namespace std;
struct C{
int i=0;
function<void()> f;
void A(){ cout << i;}
void B(){
f=A;//ここで「reference to non-static member function must be called; did you mean to call it with no arguments?」
//関数A();をstaticにすればエラーは消えるものの、C::A()を呼びたいのではなくc.A();を呼び出したい
f();
}
};
void main(void){
C c;
c.B();
}
#include <iostream>
#include<functional>
using namespace std;
struct C{
int i=0;
function<void()> f;
void A(){ cout << i;}
void B(){
f=A;//ここで「reference to non-static member function must be called; did you mean to call it with no arguments?」
//関数A();をstaticにすればエラーは消えるものの、C::A()を呼びたいのではなくc.A();を呼び出したい
f();
}
};
void main(void){
C c;
c.B();
}
655デフォルトの名無しさん (ワッチョイ 06a6-F+4p)
2017/07/05(水) 23:25:58.77ID:pl4REjuI0 釣りならもっと議論の余地のあるネタにしろ
656デフォルトの名無しさん (ワッチョイ 06a6-F+4p)
2017/07/05(水) 23:36:21.55ID:pl4REjuI0 f = [this]{A();};
c.f = [&]{c.A();};
二度と来んなカス
c.f = [&]{c.A();};
二度と来んなカス
657デフォルトの名無しさん (ワッチョイ b7ea-rvkC)
2017/07/06(木) 09:30:12.16ID:x5DiEtc40 ファイル読み取りの待ち時間を別スレッドに割り当てるってのは、
誰もが考えつく話だけど、誰もがどうでもいいやと投げ出す話。
誰もが考えつく話だけど、誰もがどうでもいいやと投げ出す話。
658デフォルトの名無しさん (ワッチョイ f7e2-pw7F)
2017/07/06(木) 20:44:37.47ID:3RH7JsNg0 テンプレートクラスの継承で↓みたいなことをやりたいんですが
エラーが出てコンパイルが通りません
どこが間違っていますか?もしくはもっと良い方法はありますか?
template< typename T >
class alpha
{
private:
T mVar;
public:
alpha( T var ) : mVar( var ) {}
};
class bravo : public alpha< float >
{
public:
bravo( float var ) : alpha( var ) {}
};
エラーが出てコンパイルが通りません
どこが間違っていますか?もしくはもっと良い方法はありますか?
template< typename T >
class alpha
{
private:
T mVar;
public:
alpha( T var ) : mVar( var ) {}
};
class bravo : public alpha< float >
{
public:
bravo( float var ) : alpha( var ) {}
};
659デフォルトの名無しさん (ワッチョイ bfaf-VFUi)
2017/07/06(木) 20:54:42.22ID:1SuD/0Q50 コンパイル通りそうだけど
どんなエラー?
どんなエラー?
660デフォルトの名無しさん (ワッチョイ 976f-U373)
2017/07/06(木) 20:54:56.95ID:r4C+2lo90 なぜ肝心のエラーの内容を書かないのか
661デフォルトの名無しさん (ワッチョイ f7e2-pw7F)
2017/07/06(木) 20:58:24.06ID:3RH7JsNg0 658です
コンパイル通りました
すまんこ
コンパイル通りました
すまんこ
662デフォルトの名無しさん (ワッチョイ bfe4-LW8t)
2017/07/06(木) 21:29:46.08ID:RDUi9QjP0 ゆるさねえからな
663デフォルトの名無しさん (スプッッ Sd3f-RGC3)
2017/07/06(木) 22:12:30.80ID:8iMXbcNhd いえいえどういたしまして
664デフォルトの名無しさん (ワッチョイ 9f8f-gRQY)
2017/07/07(金) 00:01:47.76ID:lYH0c+880 ヽ(・ω・)/ズコー
665デフォルトの名無しさん (ワッチョイ 1f1b-6//c)
2017/07/10(月) 06:02:24.59ID:kxDJWNLg0 最近は3年毎に仕様改訂されてるC++なので
プロパティはどーなってるのカナー♪
RWPropertyて・・・
このハゲーーーー!!!
違うだろ
ち・が・う・だ・ろーーーー!!!
C#みたいに
class Body{
size_t Chimpo{ get; set;}
};
Body Oreno;
Oreno.Chimpo = 20;
cerr << Oreno.Chimpo <<"cm\n";
と簡単に書きたいんです・す・す
プロパティはどーなってるのカナー♪
RWPropertyて・・・
このハゲーーーー!!!
違うだろ
ち・が・う・だ・ろーーーー!!!
C#みたいに
class Body{
size_t Chimpo{ get; set;}
};
Body Oreno;
Oreno.Chimpo = 20;
cerr << Oreno.Chimpo <<"cm\n";
と簡単に書きたいんです・す・す
666デフォルトの名無しさん (ワッチョイ 1f1b-6//c)
2017/07/10(月) 06:06:24.38ID:kxDJWNLg0 テンプレートなんかでお茶濁し腐って
言語仕様として実装しろつってんだよハゲーーーー!!!
ぶち殺すぞ
言語仕様として実装しろつってんだよハゲーーーー!!!
ぶち殺すぞ
667デフォルトの名無しさん (ワッチョイ 9709-8gU5)
2017/07/10(月) 06:07:31.30ID:NdIMybBN0 C#のあれ結局関数だから、下駄と雪駄書きなさい。
668デフォルトの名無しさん (ワッチョイ 1f1b-6//c)
2017/07/10(月) 06:21:29.79ID:kxDJWNLg0 はやっ
なんでこんな時間に2chなんかやってんだよ
なんでこんな時間に2chなんかやってんだよ
669デフォルトの名無しさん (ワッチョイ 9709-8gU5)
2017/07/10(月) 06:42:08.85ID:NdIMybBN0 オマエモナー。
670デフォルトの名無しさん (ワッチョイ 1f1b-6//c)
2017/07/10(月) 06:48:01.08ID:kxDJWNLg0 俺は超早く寝て朝4:30に起きるように
生活習慣変えたから
生活習慣変えたから
671名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 9709-8gU5)
2017/07/10(月) 07:03:50.00ID:NdIMybBN0 俺は、夜行性なだけだ。
今日は用事があるからこのまま起きてるが。
今日は用事があるからこのまま起きてるが。
672デフォルトの名無しさん (スップ Sd3f-nGAm)
2017/07/10(月) 11:54:33.30ID:okOc14zTd 単独プロパティでゲットセット?
あまり需要ないなあ。(個人の感想です)
あまり需要ないなあ。(個人の感想です)
673デフォルトの名無しさん (ワッチョイ 7f32-MxGc)
2017/07/11(火) 00:29:34.07ID:4iHLvMGp0 メンバ変数はない方がいいし、アクセスする必要がある時点で、隠蔽が崩れ始めてると思った方がいいと思う。
特定のパターン除けば、外からメンバ変数にアクセスしたいケースってすくなくない?
get/setは、リフレクションと命名規則に依存するフレームワークがあるから便利なのであって、c++には微妙じゃね?
特定のパターン除けば、外からメンバ変数にアクセスしたいケースってすくなくない?
get/setは、リフレクションと命名規則に依存するフレームワークがあるから便利なのであって、c++には微妙じゃね?
674デフォルトの名無しさん (ワッチョイ bfe4-LW8t)
2017/07/11(火) 01:25:20.72ID:7V5lebao0 自動実装のgetsetってpublicなメンバ変数と何が違うんだ
675デフォルトの名無しさん (ワッチョイ 9709-8gU5)
2017/07/11(火) 01:29:35.46ID:CDrVRBQX0676デフォルトの名無しさん (ワッチョイ 174b-R6aQ)
2017/07/11(火) 01:48:50.09ID:8G8H3ksE0 ゲッタセッタとか使いたくなるような場面ならそもそもpublicな構造体使った方がいい説はある
677デフォルトの名無しさん (ワッチョイ 174b-R6aQ)
2017/07/11(火) 01:50:07.47ID:8G8H3ksE0 配列のlengthとかあったか
やっぱ取り消し
やっぱ取り消し
678デフォルトの名無しさん (ワッチョイ b7ea-rvkC)
2017/07/11(火) 06:32:58.41ID:nM0jXF630 関数オーバーロードやプロパティによるget/setの乱用は、メソッド名の文字列検索によるソースコード追跡ができなくなりかえって難読性が高まる。
679デフォルトの名無しさん (ワッチョイ 1f1b-6//c)
2017/07/11(火) 07:59:11.17ID:MCsEtOKi0 ↓のテンプレートとジェネリックの違い、にある
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics
トップ項目にある
・C# ジェネリック クラスでは、ユーザー定義演算子は呼び出すことができますが、算術演算子を呼び出すことはできません。
"算術演算子を呼び出すことはできません"ってどーいう意味っすか?
算術演算子って+-*/のこと?
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics
トップ項目にある
・C# ジェネリック クラスでは、ユーザー定義演算子は呼び出すことができますが、算術演算子を呼び出すことはできません。
"算術演算子を呼び出すことはできません"ってどーいう意味っすか?
算術演算子って+-*/のこと?
680デフォルトの名無しさん (アウアウウー Sa5b-X9Wr)
2017/07/11(火) 08:03:15.77ID:ZtZ4WBZMa C++すれでC#聞かれても。。。
681デフォルトの名無しさん (ワッチョイ 9f9f-ieup)
2017/07/11(火) 08:05:01.05ID:bgByaxVg0 頭悪いからだろ
682デフォルトの名無しさん (ワッチョイ 1f1b-6//c)
2017/07/11(火) 08:18:43.46ID:MCsEtOKi0 >>680
あ、C#スレ行きます
あ、C#スレ行きます
683はつみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-rvkC)
2017/07/11(火) 18:08:51.11ID:W3h9V8nz0 理解が逆なんだよ。
関数の組 (ときには片方のこともある) を変数として抽象化しようとするのがプロパティであって、
メンバ変数のアクセサとしても使えるのは用例のひとつでしかない。
ゲッタとセッタが自動生成できるとかいうのはまた別問題だるぉおおお
関数の組 (ときには片方のこともある) を変数として抽象化しようとするのがプロパティであって、
メンバ変数のアクセサとしても使えるのは用例のひとつでしかない。
ゲッタとセッタが自動生成できるとかいうのはまた別問題だるぉおおお
684デフォルトの名無しさん (ワッチョイ 5711-rvkC)
2017/07/11(火) 18:54:25.62ID:dSS1j36W0 [][Tebla][]
}
000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS
001-GYORLith"0\R"/"ESUBA"%$%
HADO-"EM","L","O","NU"###END
}
000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS
001-GYORLith"0\R"/"ESUBA"%$%
HADO-"EM","L","O","NU"###END
685デフォルトの名無しさん (スップ Sd3f-nGAm)
2017/07/11(火) 19:07:21.76ID:DqTb1LDQd >>683
素人なので「変数として抽象化」ってとこがよくわからない
素人なので「変数として抽象化」ってとこがよくわからない
686デフォルトの名無しさん (ワッチョイ d796-rvkC)
2017/07/11(火) 19:17:50.67ID:dG3xud1d0 みなさんが複雑すぎて糞と言われるC++を使う理由を教えて下さい。
687デフォルトの名無しさん (ワンミングク MM7f-hrVG)
2017/07/11(火) 19:37:55.48ID:FP4c/tWpM688デフォルトの名無しさん (スップ Sd3f-nGAm)
2017/07/11(火) 19:40:41.20ID:DqTb1LDQd >>686
言われるほど複雑じゃないから
言われるほど複雑じゃないから
689デフォルトの名無しさん (ワッチョイ bfe4-LW8t)
2017/07/11(火) 19:43:55.52ID:7V5lebao0 >>686
複雑すぎではないし糞でもないから
複雑すぎではないし糞でもないから
690デフォルトの名無しさん (ワッチョイ bfaf-VFUi)
2017/07/11(火) 19:45:13.43ID:YnoqV4V50 SDKがC++しかなくて仕方なく・・・
691デフォルトの名無しさん (ドコグロ MM2b-d65a)
2017/07/11(火) 20:21:24.75ID:Wcul0TB2M ネイティブコードを吐けるオブジェクト指向言語でメジャーな奴は C++ ぐらいしかないし
692デフォルトの名無しさん (ワッチョイ d796-rvkC)
2017/07/11(火) 21:14:29.35ID:dG3xud1d0 二人は複雑じゃないもん
二人は仕方なし
二人は仕方なし
693デフォルトの名無しさん (ワッチョイ 9f89-EAWM)
2017/07/11(火) 21:42:20.62ID:VLYeJXw20 いちばん使い慣れていて、使い勝手の良い道具だから。
694デフォルトの名無しさん (ワッチョイ d79a-0UkT)
2017/07/11(火) 22:06:48.92ID:qjau/h5c0 複雑だが糞ではない
695デフォルトの名無しさん (ドコグロ MMbf-rPCP)
2017/07/11(火) 22:11:10.23ID:mCNEANh4M696デフォルトの名無しさん (スップ Sd3f-nGAm)
2017/07/11(火) 22:18:58.63ID:DqTb1LDQd697デフォルトの名無しさん (ワッチョイ bfe4-LW8t)
2017/07/11(火) 22:30:22.09ID:7V5lebao0698デフォルトの名無しさん (ドコグロ MMbf-rPCP)
2017/07/11(火) 22:35:06.05ID:mCNEANh4M699デフォルトの名無しさん (ワッチョイ 176f-zXdO)
2017/07/11(火) 22:35:38.41ID:jUUyBjmf0 ビットローテーションについての相談です
今やりたいことは128文字の文字列を暗号化したい
その中で4バイトごとに区切って、4バイトごとにビットローテーションして暗号化を考えている
それの実現方法で悩んでいます
想定では右シフト
char a[128] = 文字列;
int x = a[0] << 24 + a[1] << 16 + a[2] << 8 + a[3];
// 下位2bitを上位2bitでtmp作成
int tmp = a[3] << 30;
x = x >> 2 + tmp;
これを繰り返す。
こんな感じのを考えたのだけどもっと良い方法はあるだろうか?
今やりたいことは128文字の文字列を暗号化したい
その中で4バイトごとに区切って、4バイトごとにビットローテーションして暗号化を考えている
それの実現方法で悩んでいます
想定では右シフト
char a[128] = 文字列;
int x = a[0] << 24 + a[1] << 16 + a[2] << 8 + a[3];
// 下位2bitを上位2bitでtmp作成
int tmp = a[3] << 30;
x = x >> 2 + tmp;
これを繰り返す。
こんな感じのを考えたのだけどもっと良い方法はあるだろうか?
700デフォルトの名無しさん (ワッチョイ d79a-0UkT)
2017/07/11(火) 22:42:18.86ID:qjau/h5c0 環境依存で良いなら色々と思い付く
とりあえず、<<より+の方が優先度が高いので()を付けないと
| なら()は不要
コストは多分ほとんどの環境で同じ
8086とかだと | の方が速かったり
とりあえず、<<より+の方が優先度が高いので()を付けないと
| なら()は不要
コストは多分ほとんどの環境で同じ
8086とかだと | の方が速かったり
701片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v)
2017/07/11(火) 22:43:45.50ID:7IW2GOwZd >>699
数学や計算機科学を知らない素人が暗号化方式を考えるのは、おそらく無駄であり、出来たとしてもすぐハッキングされてしまう。
暗号化方式は、先人の研究によって評価されている手法を使うのが一般的。より良い暗号化方式を
考えるのは計算機科学者の仕事であり、プログラマーはその手法をプログラムに取り入れるだけだ。
数学や計算機科学を知らない素人が暗号化方式を考えるのは、おそらく無駄であり、出来たとしてもすぐハッキングされてしまう。
暗号化方式は、先人の研究によって評価されている手法を使うのが一般的。より良い暗号化方式を
考えるのは計算機科学者の仕事であり、プログラマーはその手法をプログラムに取り入れるだけだ。
702デフォルトの名無しさん (ワッチョイ d79a-0UkT)
2017/07/11(火) 22:45:09.93ID:qjau/h5c0 どっちみち>>699の時点で環境依存だ
703デフォルトの名無しさん (ワッチョイ d79a-0UkT)
2017/07/11(火) 22:46:16.83ID:qjau/h5c0704デフォルトの名無しさん (ワッチョイ bfaa-rPCP)
2017/07/11(火) 23:06:53.51ID:01bGuLEG0 >>703
家の鍵を素人が作るのは意味ない。
家の鍵を素人が作るのは意味ない。
705デフォルトの名無しさん (ワッチョイ 9f89-EAWM)
2017/07/11(火) 23:17:01.14ID:VLYeJXw20 質問者の目的が言語の学習とか、ちょっとしたテキストの難読化なのかもしれないのに、
外野が憶測で否定したり変な方向で議論を展開したり…。
相談室なのだから、もうちっと質問者の為になる話の流れにならないかなと思う。
外野が憶測で否定したり変な方向で議論を展開したり…。
相談室なのだから、もうちっと質問者の為になる話の流れにならないかなと思う。
706デフォルトの名無しさん (ワッチョイ bfe4-LW8t)
2017/07/11(火) 23:17:54.39ID:7V5lebao0707デフォルトの名無しさん (ワッチョイ 176f-zXdO)
2017/07/11(火) 23:21:49.34ID:jUUyBjmf0 >>705さんの言うとおりにテキストの難読化が目的です
bit演算に触れてみるのにちょっとした暗号化が良いレベルなのかなって思ってチャレンジしているところ
やっぱり演算子の優先度とかで注意点あるね
環境依存するのかな?この方法
bit演算に触れてみるのにちょっとした暗号化が良いレベルなのかなって思ってチャレンジしているところ
やっぱり演算子の優先度とかで注意点あるね
環境依存するのかな?この方法
708デフォルトの名無しさん (ワッチョイ 176f-zXdO)
2017/07/11(火) 23:23:13.79ID:jUUyBjmf0709デフォルトの名無しさん (オッペケ Srcb-sNxi)
2017/07/11(火) 23:33:54.38ID:L5b0rMHKr >環境依存するのかな?
むしろこのコードで動く環境が珍しいような
むしろこのコードで動く環境が珍しいような
710デフォルトの名無しさん (ワッチョイ 9f89-EAWM)
2017/07/11(火) 23:45:11.34ID:VLYeJXw20 char型が負数を表すかが環境依存。
負数を左シフトした結果が環境依存。
だからunsigned型の変数を使う。
負数を左シフトした結果が負数だったとして、それを加算したら想定してた結果にならないから、加算ではなくビットORを使う。
負数を左シフトした結果が環境依存。
だからunsigned型の変数を使う。
負数を左シフトした結果が負数だったとして、それを加算したら想定してた結果にならないから、加算ではなくビットORを使う。
711デフォルトの名無しさん (ワッチョイ bfe4-LW8t)
2017/07/11(火) 23:50:08.05ID:7V5lebao0 思いつきで変な暗号作るより検索するなりしてまともな基礎的なアルゴリズムを実装したほうが勉強になる
712デフォルトの名無しさん (スップ Sd3f-nSBM)
2017/07/11(火) 23:55:54.87ID:KCPaJcrVd 文盲多すぎね?
bit演算をやる方法を学びたい的な雰囲気なのに暗号作る方をメインに読み取ってるやつおおくね?
しかもレスもあったあとなのに
bit演算をやる方法を学びたい的な雰囲気なのに暗号作る方をメインに読み取ってるやつおおくね?
しかもレスもあったあとなのに
713デフォルトの名無しさん (ワッチョイ 176f-zXdO)
2017/07/11(火) 23:59:49.23ID:jUUyBjmf0714デフォルトの名無しさん (オッペケ Srcb-sNxi)
2017/07/12(水) 00:01:29.72ID:XspFYFk7r715デフォルトの名無しさん (ワッチョイ bfe4-LW8t)
2017/07/12(水) 00:04:15.65ID:WTh+eJgx0716デフォルトの名無しさん (スップ Sd3f-nSBM)
2017/07/12(水) 00:06:40.65ID:vUTYJqrrd717はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-rvkC)
2017/07/12(水) 00:15:27.23ID:trGyb9bp0 >>713
単に int と書いたら signed int と書いたのと同じ意味になるからよく誤解されるんだけど、
char は signed char でも unsigned char でもない固有の型なんだよ。
オーバーロードで試してみたらすぐわかる。
表現できる範囲は signed char か unsigned char のどちらかと同じではあるけど、
どちらかは処理系が選択していい。
処理系によってはオプションで変えられる場合もある。
単に int と書いたら signed int と書いたのと同じ意味になるからよく誤解されるんだけど、
char は signed char でも unsigned char でもない固有の型なんだよ。
オーバーロードで試してみたらすぐわかる。
表現できる範囲は signed char か unsigned char のどちらかと同じではあるけど、
どちらかは処理系が選択していい。
処理系によってはオプションで変えられる場合もある。
718片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v)
2017/07/12(水) 00:22:30.14ID:mvEs3lAId #include <cstdint>
unsigned char a[128];
...
unsigned char prev4bits = (a[128 - 1] >> 4);
for (int i = 0; i < 128 - 1; i++) {
unsigned char b = (a[i] >> 4);
a[i] <<= 4;
a[i] |= prev4bits;
prev4broken = b;
}
unsigned char a[128];
...
unsigned char prev4bits = (a[128 - 1] >> 4);
for (int i = 0; i < 128 - 1; i++) {
unsigned char b = (a[i] >> 4);
a[i] <<= 4;
a[i] |= prev4bits;
prev4broken = b;
}
719片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v)
2017/07/12(水) 00:29:02.98ID:mvEs3lAId >>718
訂正。
#define NUM_BYTES 123
unsigned char a[NUM_BYTES];
...
unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4);
for (int i = 0; i < NUM_BYTES; i++) {
unsigned char b = (a[i] >> 4);
a[i] <<= 4;
a[i] |= prev4bits;
prev4bits = b;
}
訂正。
#define NUM_BYTES 123
unsigned char a[NUM_BYTES];
...
unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4);
for (int i = 0; i < NUM_BYTES; i++) {
unsigned char b = (a[i] >> 4);
a[i] <<= 4;
a[i] |= prev4bits;
prev4bits = b;
}
720片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v)
2017/07/12(水) 00:42:16.50ID:mvEs3lAId あるいは
#define NUM_BYTES 128
unsigned char a[NUM_BYTES];
...
unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4);
for (int i = 0; i < NUM_BYTES / sizeof(int); i++) {
unsigned char b = (a[(i + 1) * sizeof(int) - 1] >> 4);
((int *)a)[i] <<= 4;
a[i * sizeof(int)] |= prev4bits;
prev4bits = b;
}
#define NUM_BYTES 128
unsigned char a[NUM_BYTES];
...
unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4);
for (int i = 0; i < NUM_BYTES / sizeof(int); i++) {
unsigned char b = (a[(i + 1) * sizeof(int) - 1] >> 4);
((int *)a)[i] <<= 4;
a[i * sizeof(int)] |= prev4bits;
prev4bits = b;
}
721片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v)
2017/07/12(水) 00:46:41.27ID:mvEs3lAId >>720
訂正。
#define NUM_BYTES 128
unsigned char a[NUM_BYTES];
...
unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4);
for (int i = 0; i < NUM_BYTES / sizeof(unsigned int); i++) {
>unsigned char b = (a[(i + 1) * sizeof(unsigned int) - 1] >> 4);
((unsigned int *)a)[i] <<= 4;
a[i * sizeof(unsigned int)] |= prev4bits;
prev4bits = b;
}
訂正。
#define NUM_BYTES 128
unsigned char a[NUM_BYTES];
...
unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4);
for (int i = 0; i < NUM_BYTES / sizeof(unsigned int); i++) {
>unsigned char b = (a[(i + 1) * sizeof(unsigned int) - 1] >> 4);
((unsigned int *)a)[i] <<= 4;
a[i * sizeof(unsigned int)] |= prev4bits;
prev4bits = b;
}
722デフォルトの名無しさん (ワッチョイ 9f8f-gRQY)
2017/07/12(水) 01:19:28.71ID:L1I2nS9y0 >>710
負数を左シフトしても問題ないだろ
負数を左シフトしても問題ないだろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★3 [Hitzeschleier★]
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 ★4 [少考さん★]
- 「ヒートテックに寿命があります」ユニクロが明かした“3年劣化”の理由 暖かさが落ちる意外な原因とは [ぐれ★]
- 三谷幸喜氏 温泉嫌いの理由を熱弁「知らない人の股間を素通りしたお湯なんですよ」「おじさんの肛門を通り過ぎたお湯が自分の前に」 [Ailuropoda melanoleuca★]
- 【伊原剛志】62歳俳優、夫婦別姓に「選択出来るならしたい人はする したくない人はしない 何が問題?」 [少考さん★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 ★2 [蚤の市★]
- 喜多川海夢(その着せ替え人形は恋をする)水着シーンのフィギュア化キタ━━━━(゚∀゚)━━━━! [723839345]
- 八奈見杏菜(負けヒロインが多すぎる)が水着でプライズのフィギュア化キタ━━━━(゚∀゚)━━━━!! [723839345]
- あ、出ちゃう、イクッ😫💦🏡
- 【悲報】すまん何で日本ってこんなに反『中国』が増えたんだ?ネトウヨどころかそこらの一般人レベルでもゴロゴロいる [483447288]
- 【実況】博衣こよりのえちえちドラクエ1&4リメイク🧪★2
- ホロライブ百鬼あやめさん、純粋なファンをXでブロックしてしまう
