Hello hackers !
Qiitaは、エンジニアリングに関する知識を記録・共有するためのサービスです。
コードを書いていて気づいたことや、自分がハマったあの仕様について、
他のエンジニアと知見を共有しましょう ;)
https://qiita.com/
Qiita(キータ)は、Incrementsが運営するプログラミング情報のナレッジコミュニティ。
2016年現在で日本最大のプログラマーコミュニティとされている[1]。
https://internet.watch.impress.co.jp/docs/news/1025972.html
前スレ Qiita
https://mevius.5ch.net/test/read.cgi/tech/1542357242/
探検
Qiita 2 - キータぞ、来たぞ、キータだぞー
■ このスレッドは過去ログ倉庫に格納されています
2022/07/26(火) 00:20:10.32ID:XQj8UtG3
796デフォルトの名無しさん
2023/03/16(木) 08:57:56.89ID:coFKYGG/797デフォルトの名無しさん
2023/03/16(木) 09:03:39.04ID:coFKYGG/ 辞書なら一回の変換でO(1)だから文書をnとしてO(n)なのにそこで線形探索持ってきて機械語を考慮して云々言うのがどれだけアホなのかわからんのかよw
そんなの一発で消し飛ぶのは実測しなくてもわかるわw
そんなの一発で消し飛ぶのは実測しなくてもわかるわw
798795
2023/03/16(木) 10:08:11.84ID:oia5IsuT n✕O(1)とn✕O(テーブル数)やろ
どの変換処理だろうが文字数nでループして内部変換処理にnは関わってない
どの変換処理だろうが文字数nでループして内部変換処理にnは関わってない
799デフォルトの名無しさん
2023/03/16(木) 12:06:57.05ID:coFKYGG/ 結局必要なのは個々の変換速度じゃなく最終的な速度だと何度説明してもわからんアホには何も作れんよ
800795
2023/03/16(木) 12:15:09.02ID:nUks2Duv 結論に異論はないが説明が間違ってりゃそりゃ伝わらんよ
801デフォルトの名無しさん
2023/03/16(木) 12:21:16.93ID:coFKYGG/ 間違ってるように見えるのはお前がアホだからだよ
トンチンカンなことばかり言ってるからわかる
トンチンカンなことばかり言ってるからわかる
802デフォルトの名無しさん
2023/03/16(木) 12:44:45.67ID:d8Ckr3uM >>774
異字体てなに
異字体てなに
803デフォルトの名無しさん
2023/03/16(木) 13:17:41.07ID:5yhRoe8q アホっていうやつがアホ
マジでアホ
どうしようもなくアホ
雑談する目的で誹謗中傷するのは精神がいかれてる
小学生の義務教育からリカレント教育を受け直すべき
誹謗中傷せずに話せないの?
くだらない話題にしか見えない
この話題には当然参加してない
マジでアホ
どうしようもなくアホ
雑談する目的で誹謗中傷するのは精神がいかれてる
小学生の義務教育からリカレント教育を受け直すべき
誹謗中傷せずに話せないの?
くだらない話題にしか見えない
この話題には当然参加してない
804デフォルトの名無しさん
2023/03/16(木) 13:20:30.56ID:k5zGeUtM これで自分は誹謗中傷してないつもりなのがアホだろ?w
805デフォルトの名無しさん
2023/03/17(金) 00:05:29.98ID:aeVIJ/KU 今年のカレンダーで25記事書ききってぬいぐるみとTシャツもらうためにいまから書きだめておこうと思うんだが(´・ω・`)
806デフォルトの名無しさん
2023/03/17(金) 14:38:47.90ID:2zEmq53G そのぬいぐるみは必要なんですか
807デフォルトの名無しさん
2023/03/21(火) 08:51:57.85ID:C5sD27fs ChatGPTばっかりやな
808デフォルトの名無しさん
2023/03/21(火) 09:55:36.79ID:Tpygyrgn 今そういうキャンペーンしてるしホームに並ぶ記事には運営が恣意的な重みをつけてるからな
809デフォルトの名無しさん
2023/03/21(火) 15:54:59.44ID:vHVc4/ZP セカイを変えるChatGPTを追求せよという空気でChatGPT以外の記事を書ける?
おまえは空気を読めないやつかもしれんが
おまえは空気を読めないやつかもしれんが
810デフォルトの名無しさん
2023/03/21(火) 17:23:05.79ID:GtV9DAzh 現状ちょっと弄っただけで糞とわかるChatGPTの記事なんて書く意味ない
811デフォルトの名無しさん
2023/03/22(水) 12:50:34.89ID:2yBOIXco 現状、正しいコードを書かせるためにプロントを四苦八苦してるうちに自分でコード書いたほうが早いからな…
812デフォルトの名無しさん
2023/03/25(土) 05:45:02.74ID:g6eb42ch 元編 https://qiita.com/kankikou/items/311328b36ff5a60ab19a
続編 https://qiita.com/Nabetani/items/4827584857cb1c584647
高々10Mの足し算で1秒掛かってるのが異常に遅いなと思って
試しに手動アンロールしたら3桁早くなった
主題の分岐予測を気にかけてる人は自動ベクトル化も興味あるだろうし
元編でコメント連投してた藤田望氏は5chで叩かれてもQiita頑張って欲しい
shuffled
simple: duration= 1.4129s sum=957487744000
simple_unroll4: duration= 0.0016s sum=957487744000
foreach: duration= 1.4307s sum=957487744000
opt-simple: duration= 1.4238s sum=957487744000
opt-foreach: duration= 1.4369s sum=957487744000
sorted
simple: duration= 1.4214s sum=957487744000
simple_unroll4: duration= 0.0016s sum=957487744000
foreach: duration= 1.4228s sum=957487744000
opt-simple: duration= 1.4297s sum=957487744000
opt-foreach: duration= 1.4318s sum=957487744000
続編 https://qiita.com/Nabetani/items/4827584857cb1c584647
高々10Mの足し算で1秒掛かってるのが異常に遅いなと思って
試しに手動アンロールしたら3桁早くなった
主題の分岐予測を気にかけてる人は自動ベクトル化も興味あるだろうし
元編でコメント連投してた藤田望氏は5chで叩かれてもQiita頑張って欲しい
shuffled
simple: duration= 1.4129s sum=957487744000
simple_unroll4: duration= 0.0016s sum=957487744000
foreach: duration= 1.4307s sum=957487744000
opt-simple: duration= 1.4238s sum=957487744000
opt-foreach: duration= 1.4369s sum=957487744000
sorted
simple: duration= 1.4214s sum=957487744000
simple_unroll4: duration= 0.0016s sum=957487744000
foreach: duration= 1.4228s sum=957487744000
opt-simple: duration= 1.4297s sum=957487744000
opt-foreach: duration= 1.4318s sum=957487744000
813812
2023/03/25(土) 06:46:24.02ID:kHu8aUGB 失礼、measure関数で1000回ループしてたので、高々10G回の足し算になってた
でもO3最適化が何かをやっているようだ
g++ -O2 -mavx2
shuffled
simple: duration= 4.3088s sum=957487744000
simple_unroll4: duration= 1.5359s sum=957487744000
foreach: duration= 4.3084s sum=957487744000
opt-simple: duration= 4.7163s sum=957487744000
opt-foreach: duration= 5.5201s sum=957487744000
g++ -O3 -mavx2
shuffled
simple: duration= 1.4113s sum=957487744000
simple_unroll4: duration= 0.0016s sum=957487744000
foreach: duration= 1.4264s sum=957487744000
opt-simple: duration= 1.4410s sum=957487744000
opt-foreach: duration= 1.4378s sum=957487744000
int64_t __attribute__ ((noinline)) simple_unroll4(std::vector<uint> const &data)
{
int64_t sum[4]{};
for (size_t i = 0, size = data.size(); i < size; i+=4)
{
if (128 <= data[i+0]) sum[0] += data[i+0];
if (128 <= data[i+1]) sum[1] += data[i+1];
if (128 <= data[i+2]) sum[2] += data[i+2];
if (128 <= data[i+3]) sum[3] += data[i+3];
}
return sum[0]+sum[1]+sum[2]+sum[3];
}
でもO3最適化が何かをやっているようだ
g++ -O2 -mavx2
shuffled
simple: duration= 4.3088s sum=957487744000
simple_unroll4: duration= 1.5359s sum=957487744000
foreach: duration= 4.3084s sum=957487744000
opt-simple: duration= 4.7163s sum=957487744000
opt-foreach: duration= 5.5201s sum=957487744000
g++ -O3 -mavx2
shuffled
simple: duration= 1.4113s sum=957487744000
simple_unroll4: duration= 0.0016s sum=957487744000
foreach: duration= 1.4264s sum=957487744000
opt-simple: duration= 1.4410s sum=957487744000
opt-foreach: duration= 1.4378s sum=957487744000
int64_t __attribute__ ((noinline)) simple_unroll4(std::vector<uint> const &data)
{
int64_t sum[4]{};
for (size_t i = 0, size = data.size(); i < size; i+=4)
{
if (128 <= data[i+0]) sum[0] += data[i+0];
if (128 <= data[i+1]) sum[1] += data[i+1];
if (128 <= data[i+2]) sum[2] += data[i+2];
if (128 <= data[i+3]) sum[3] += data[i+3];
}
return sum[0]+sum[1]+sum[2]+sum[3];
}
814812
2023/03/25(土) 06:53:15.92ID:kHu8aUGB measure関数に __attribute__ ((noinline)) を付けたら正しく動きました
失礼しました
失礼しました
815812
2023/03/25(土) 17:13:39.86ID:hUI94gGa uint16_tにしたら続編のAVX512と似通ったレベルが出た(続編のsumがmacとwindowsで違うのは何故?)
g++ -O3 (avx2を明示しない方が速かった)
shuffled
simple: duration= 1.0470s sum=957487744000
simple_unroll4: duration= 0.7678s sum=957487744000 ★
foreach: duration= 1.0765s sum=957487744000
opt-simple: duration= 1.3134s sum=957487744000
opt-foreach: duration= 1.3262s sum=957487744000
sorted
simple: duration= 1.0430s sum=957487744000
simple_unroll4: duration= 0.7652s sum=957487744000 ★
foreach: duration= 1.0726s sum=957487744000
opt-simple: duration= 1.3084s sum=957487744000
opt-foreach: duration= 1.3201s sum=957487744000
clang++ -O3 -mavx2 (avx2を明示)
shuffled
simple: duration= 0.8695s sum=957487744000
simple_unroll4: duration= 1.3842s sum=957487744000
foreach: duration= 0.8715s sum=957487744000
opt-simple: duration= 0.8683s sum=957487744000
opt-foreach: duration= 0.8636s sum=957487744000 ★
sorted
simple: duration= 0.8812s sum=957487744000
simple_unroll4: duration= 1.3900s sum=957487744000
foreach: duration= 0.8701s sum=957487744000
opt-simple: duration= 0.8691s sum=957487744000
opt-foreach: duration= 0.8682s sum=957487744000 ★
g++ -O3 (avx2を明示しない方が速かった)
shuffled
simple: duration= 1.0470s sum=957487744000
simple_unroll4: duration= 0.7678s sum=957487744000 ★
foreach: duration= 1.0765s sum=957487744000
opt-simple: duration= 1.3134s sum=957487744000
opt-foreach: duration= 1.3262s sum=957487744000
sorted
simple: duration= 1.0430s sum=957487744000
simple_unroll4: duration= 0.7652s sum=957487744000 ★
foreach: duration= 1.0726s sum=957487744000
opt-simple: duration= 1.3084s sum=957487744000
opt-foreach: duration= 1.3201s sum=957487744000
clang++ -O3 -mavx2 (avx2を明示)
shuffled
simple: duration= 0.8695s sum=957487744000
simple_unroll4: duration= 1.3842s sum=957487744000
foreach: duration= 0.8715s sum=957487744000
opt-simple: duration= 0.8683s sum=957487744000
opt-foreach: duration= 0.8636s sum=957487744000 ★
sorted
simple: duration= 0.8812s sum=957487744000
simple_unroll4: duration= 1.3900s sum=957487744000
foreach: duration= 0.8701s sum=957487744000
opt-simple: duration= 0.8691s sum=957487744000
opt-foreach: duration= 0.8682s sum=957487744000 ★
816812
2023/03/25(土) 17:24:06.36ID:hUI94gGa 合わせて手動アンロールも少し修正
int64_t __attribute__ ((noinline)) simple_unroll4(std::vector<uint> const &data)
{
int64_t sum = 0;
size_t const size = data.size();
size_t i = 0;
size_t const overflow_safe_chunk_size = (1ULL<< (8*sizeof(uint)))/(1ULL<<8); // 0xff = (1<<8)-1
for(size_t ichunk = 0; ichunk < size ; ichunk += overflow_safe_chunk_size){
uint sub[4]{};
for ( ; i < ichunk; i+=4)
{
if (128 <= data[i+0]) sub[0] += data[i+0];
if (128 <= data[i+1]) sub[1] += data[i+1];
if (128 <= data[i+2]) sub[2] += data[i+2];
if (128 <= data[i+3]) sub[3] += data[i+3];
}
sum += sub[0]+sub[1]+sub[2]+sub[3];
}
for ( ; i < size; i+=1)
{
if (128 <= data[i]) sum += data[i];
}
return sum;
}
gccとclangでかなりの違いが出てるのでSIMD intrinsicsで書くべきなんだろうけど
そこまでするとM1/M2で使えなくなるのでこの辺が落としどころ?
int64_t __attribute__ ((noinline)) simple_unroll4(std::vector<uint> const &data)
{
int64_t sum = 0;
size_t const size = data.size();
size_t i = 0;
size_t const overflow_safe_chunk_size = (1ULL<< (8*sizeof(uint)))/(1ULL<<8); // 0xff = (1<<8)-1
for(size_t ichunk = 0; ichunk < size ; ichunk += overflow_safe_chunk_size){
uint sub[4]{};
for ( ; i < ichunk; i+=4)
{
if (128 <= data[i+0]) sub[0] += data[i+0];
if (128 <= data[i+1]) sub[1] += data[i+1];
if (128 <= data[i+2]) sub[2] += data[i+2];
if (128 <= data[i+3]) sub[3] += data[i+3];
}
sum += sub[0]+sub[1]+sub[2]+sub[3];
}
for ( ; i < size; i+=1)
{
if (128 <= data[i]) sum += data[i];
}
return sum;
}
gccとclangでかなりの違いが出てるのでSIMD intrinsicsで書くべきなんだろうけど
そこまでするとM1/M2で使えなくなるのでこの辺が落としどころ?
817デフォルトの名無しさん
2023/03/26(日) 11:02:32.91ID:4Q+hammq818デフォルトの名無しさん
2023/03/26(日) 15:18:31.53ID:76I76+n1 こいつQiitaのコメントで暴れまくってる藤田望だろ
819デフォルトの名無しさん
2023/03/26(日) 15:52:08.11ID:8M1XC4pp 本人じゃないよ
https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html
で更に早くなった
g++ -O4 -mavx2
shuffled
simple: duration= 1.4165s sum=957487744000
simple_unroll4: duration= 0.9939s sum=957487744000
simple_vec16: duration= 0.5607s sum=957487744000
simple_vec32: duration= 0.2914s sum=957487744000 ★
sorted
simple: duration= 1.3956s sum=957487744000
simple_unroll4: duration= 0.9907s sum=957487744000
simple_vec16: duration= 0.5611s sum=957487744000
simple_vec32: duration= 0.2766s sum=957487744000 ★
clang++ -O3 -mavx2
shuffled
simple: duration= 0.8921s sum=957487744000
simple_unroll4: duration= 1.3960s sum=957487744000
simple_vec16: duration= 0.3113s sum=957487744000
simple_vec32: duration= 0.2184s sum=957487744000 ★
sorted
simple: duration= 0.8977s sum=957487744000
simple_unroll4: duration= 1.3983s sum=957487744000
simple_vec16: duration= 0.3328s sum=957487744000
simple_vec32: duration= 0.2028s sum=957487744000 ★
https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html
で更に早くなった
g++ -O4 -mavx2
shuffled
simple: duration= 1.4165s sum=957487744000
simple_unroll4: duration= 0.9939s sum=957487744000
simple_vec16: duration= 0.5607s sum=957487744000
simple_vec32: duration= 0.2914s sum=957487744000 ★
sorted
simple: duration= 1.3956s sum=957487744000
simple_unroll4: duration= 0.9907s sum=957487744000
simple_vec16: duration= 0.5611s sum=957487744000
simple_vec32: duration= 0.2766s sum=957487744000 ★
clang++ -O3 -mavx2
shuffled
simple: duration= 0.8921s sum=957487744000
simple_unroll4: duration= 1.3960s sum=957487744000
simple_vec16: duration= 0.3113s sum=957487744000
simple_vec32: duration= 0.2184s sum=957487744000 ★
sorted
simple: duration= 0.8977s sum=957487744000
simple_unroll4: duration= 1.3983s sum=957487744000
simple_vec16: duration= 0.3328s sum=957487744000
simple_vec32: duration= 0.2028s sum=957487744000 ★
820デフォルトの名無しさん
2023/03/26(日) 16:12:14.93ID:8M1XC4pp typedef uint v32 __attribute__ ((vector_size (32)));
int64_t __attribute__ ((noinline)) simple_vec32(std::vector<uint> const &data)
{
int64_t sum = 0;
size_t const size = data.size();
size_t const overflow_safe_chunk_size = (1ULL<< (8*sizeof(uint)))/(1ULL<<8); // 0xff = (1<<8)-1
size_t const unroll_step = sizeof(v32)/sizeof(uint);
v32 const *pv32 = (v32 const*)data.data();
size_t const size32 = size/unroll_step;
size_t i = 0;
for(size_t ichunk = overflow_safe_chunk_size ; ichunk < size32 ; ichunk += overflow_safe_chunk_size)
{
v32 sub{};
for ( ; i < ichunk; ++i) sub = (128 <= pv32[i]) ? (sub + pv32[i]) : sub;
for(int d = 0; d < unroll_step ; ++d) sum += sub[d];
}
for ( size_t j = i*unroll_step; j < size; ++j) if (128 <= data[j]) sum += data[j];
return sum;
}
simple_vec16は32->16
>(続編のsumがmacとwindowsで違うのは何故?)
記事にないけどgithubのrun.batを見たらサイズが10Mではなく1Mでの数字になってた
なので"C++ on Thinkpad"の実行時間は10倍する必要がある
AVX512とあったので新し目のマシンだと私が勘違いしただけ
肝心のvector extensionは
https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html
この辺見てるとM1/M2でも動きそうな期待が...
int64_t __attribute__ ((noinline)) simple_vec32(std::vector<uint> const &data)
{
int64_t sum = 0;
size_t const size = data.size();
size_t const overflow_safe_chunk_size = (1ULL<< (8*sizeof(uint)))/(1ULL<<8); // 0xff = (1<<8)-1
size_t const unroll_step = sizeof(v32)/sizeof(uint);
v32 const *pv32 = (v32 const*)data.data();
size_t const size32 = size/unroll_step;
size_t i = 0;
for(size_t ichunk = overflow_safe_chunk_size ; ichunk < size32 ; ichunk += overflow_safe_chunk_size)
{
v32 sub{};
for ( ; i < ichunk; ++i) sub = (128 <= pv32[i]) ? (sub + pv32[i]) : sub;
for(int d = 0; d < unroll_step ; ++d) sum += sub[d];
}
for ( size_t j = i*unroll_step; j < size; ++j) if (128 <= data[j]) sum += data[j];
return sum;
}
simple_vec16は32->16
>(続編のsumがmacとwindowsで違うのは何故?)
記事にないけどgithubのrun.batを見たらサイズが10Mではなく1Mでの数字になってた
なので"C++ on Thinkpad"の実行時間は10倍する必要がある
AVX512とあったので新し目のマシンだと私が勘違いしただけ
肝心のvector extensionは
https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html
この辺見てるとM1/M2でも動きそうな期待が...
821デフォルトの名無しさん
2023/03/27(月) 12:46:47.87ID:XkUggZJB Qittaでなく5chでやる意味がマジ解らん
822デフォルトの名無しさん
2023/03/28(火) 13:06:07.71ID:cPoQHK67 いや?俺はよく分かる
誰も求めてないのに書くのは同じ
違うのは場所がキータかここかの違い
彼らにとって大事なのは承認欲求?でありほかの何でもない
誰も求めてないのに書くのは同じ
違うのは場所がキータかここかの違い
彼らにとって大事なのは承認欲求?でありほかの何でもない
823デフォルトの名無しさん
2023/03/28(火) 13:49:42.95ID:3VIBVyjk うぜーから出ていけ、っていう話だよ
分かったなら出ていってくんないかな
分かったなら出ていってくんないかな
824デフォルトの名無しさん
2023/03/30(木) 20:44:08.18ID:fTJXckXZ825デフォルトの名無しさん
2023/03/30(木) 21:06:08.35ID:KjCiHOso826デフォルトの名無しさん
2023/03/30(木) 21:20:53.69ID:e87SyOqr どう考えてもスパムだろw
827デフォルトの名無しさん
2023/03/30(木) 23:33:42.71ID:sAgkV5No うるせー馬鹿
828デフォルトの名無しさん
2023/03/31(金) 16:25:54.02ID:ncUugaX3 botによるコメントは普通に考えて迷惑行為
829デフォルトの名無しさん
2023/03/31(金) 21:43:44.84ID:8CJLc1yu CNNをライブラリなしで0から作成してみた(C言語、Convolutional Neural Network)
https://qiita.com/Mizuiro__sakura/items/9634bcd0f163084d402a
あれ?既視感?とおもってぐぐってみたら
https://webcache.googleusercontent.com/search?q=cache:LRitXa4fOIYJ:https://qiita.com/Mizuiro__sakura/items/9cff0ad16da90f89cebe
同じ人による再投稿か。期待した反応がなかったからか知らんがクソ記事繰り返し読まされてしまうと迷惑なのでやめて欲しいな。何よりアイコン画像がキモい。
https://qiita.com/Mizuiro__sakura/items/9634bcd0f163084d402a
あれ?既視感?とおもってぐぐってみたら
https://webcache.googleusercontent.com/search?q=cache:LRitXa4fOIYJ:https://qiita.com/Mizuiro__sakura/items/9cff0ad16da90f89cebe
同じ人による再投稿か。期待した反応がなかったからか知らんがクソ記事繰り返し読まされてしまうと迷惑なのでやめて欲しいな。何よりアイコン画像がキモい。
830デフォルトの名無しさん
2023/03/31(金) 22:16:10.17ID:tr7cKY8h キータの本質はクソ記事なので
それをやめることはできない
それをやめることはできない
831デフォルトの名無しさん
2023/03/31(金) 22:32:45.07ID:aJ3/u9D0 ヨソからの引用だらけの記事のくせに承認欲求だけは人一倍ある感じがなんだかな
件数減らして正解率上がったって言ってるけどアホじゃなかろうか
件数減らして正解率上がったって言ってるけどアホじゃなかろうか
832デフォルトの名無しさん
2023/04/02(日) 13:45:48.58ID:Ky8sq4kq >>829
まじめに読んでる人がいたことに驚き
まじめに読んでる人がいたことに驚き
833デフォルトの名無しさん
2023/04/03(月) 03:02:51.33ID:V0D5Q5Pa AIロボットによるコメントは禁止・無条件削除すべきです #457
最近、あるアカウントで、見境なく、「コメント」と「いいね」を付けまくっているユーザーが居ます
://github.com/increments/qiita-discussions/discussions/457
@Qiita_chan botはご遠慮ください
://qiita.com/EndOfData/items/9f82d4e46540504e5fc6
最近、あるアカウントで、見境なく、「コメント」と「いいね」を付けまくっているユーザーが居ます
://github.com/increments/qiita-discussions/discussions/457
@Qiita_chan botはご遠慮ください
://qiita.com/EndOfData/items/9f82d4e46540504e5fc6
834デフォルトの名無しさん
2023/04/04(火) 08:09:17.95ID:erD0CuRV835デフォルトの名無しさん
2023/04/04(火) 09:42:05.37ID:ktWoV7jH キータとsejukuが無くなって
「調べてみまました いかがだったでしょうか」系サイトが全部無くなって
ぐぐり結果に平和が訪れたときこそ本当の勝利
「調べてみまました いかがだったでしょうか」系サイトが全部無くなって
ぐぐり結果に平和が訪れたときこそ本当の勝利
836デフォルトの名無しさん
2023/04/04(火) 09:48:09.58ID:c9lb0JIW 【Ruby】String#[]= について「すごい」と思ったので、予想を混ぜつつ調べた過程をまとめた - Qiita
https://qiita.com/yuki82511988/items/45a6adcb677f7bddc19f
何がすごいのか理解するまで3分かかった(白目)
https://qiita.com/yuki82511988/items/45a6adcb677f7bddc19f
何がすごいのか理解するまで3分かかった(白目)
837デフォルトの名無しさん
2023/04/04(火) 09:49:09.86ID:c9lb0JIW >文字列も配列のように添字を指定することで、該当する文字を得ることができる
アッハイ
としか言いようがねえぞ
アッハイ
としか言いようがねえぞ
838デフォルトの名無しさん
2023/04/04(火) 09:51:59.35ID:cu0WQi3X839デフォルトの名無しさん
2023/04/04(火) 09:56:40.38ID:c9lb0JIW 文字列に[]でアクセスできるのがすごいと思ってるのが少数はいるというのが分かったことが今日の収穫でした(小波
840デフォルトの名無しさん
2023/04/04(火) 10:09:00.95ID:erD0CuRV アッハイと言いたいだけだろw
841デフォルトの名無しさん
2023/04/04(火) 10:10:12.84ID:erD0CuRV 今日のマウント合戦
Rubyは凄いと言われてるが
俺に言わせればアッハイとしか言えねぇな。
Rubyは凄いと言われてるが
俺に言わせればアッハイとしか言えねぇな。
842デフォルトの名無しさん
2023/04/04(火) 10:16:31.95ID:cu0WQi3X 内心の自由を侵害している
すごいと思う内心を認めないわけですごくないと思わないといけないわけ?
そんな生き方は疲れると思うね
すごいと思う内心を認めないわけですごくないと思わないといけないわけ?
そんな生き方は疲れると思うね
843デフォルトの名無しさん
2023/04/04(火) 10:19:01.15ID:erD0CuRV アッハイ
844デフォルトの名無しさん
2023/04/04(火) 10:27:06.84ID:cu0WQi3X 他人が違う考え方をしてることを認めないと多様性のある社会では生きにくいね
845デフォルトの名無しさん
2023/04/04(火) 11:26:09.17ID:a5hZWkPv Ruby で、部分文字列を抜き出す
例えば、インデックス1 から、3文字分。
ただし、インデックスは0から始まる
p "aあbいc"[1, 3]
#=> "あbい"
例えば、インデックス1 から、3文字分。
ただし、インデックスは0から始まる
p "aあbいc"[1, 3]
#=> "あbい"
846デフォルトの名無しさん
2023/04/04(火) 14:43:02.54ID:NrMPyXSZ847デフォルトの名無しさん
2023/04/04(火) 15:12:31.90ID:SLB1VKfK > これまではSalesforce(Apex)などを扱っていました。
仕事でapex遊べるんだね、すごい
仕事でapex遊べるんだね、すごい
848デフォルトの名無しさん
2023/04/04(火) 15:30:30.92ID:ktWoV7jH Rubyの特徴として文字列は可変であると知ってたら
それ以上何を驚くことがあるのか
なぜソースを追う必要があるというのか
なぜソースを追って何か得るものがあると期待したのか不思議
うん?そりゃ・・・そりゃそうでしょ?うん
つまり、アッハイとしか言いようがない
それ以上何を驚くことがあるのか
なぜソースを追う必要があるというのか
なぜソースを追って何か得るものがあると期待したのか不思議
うん?そりゃ・・・そりゃそうでしょ?うん
つまり、アッハイとしか言いようがない
849デフォルトの名無しさん
2023/04/04(火) 17:15:07.15ID:erD0CuRV はいはい、そーだねー
850デフォルトの名無しさん
2023/04/04(火) 19:56:39.21ID:/ayUyQoP C言語だと文字列は本当は配列なのですごくもなんともないがRubyだとすごいんだろ
知らんけど
知らんけど
851デフォルトの名無しさん
2023/04/04(火) 20:01:58.33ID:ktWoV7jH 記事のコメントにもあるけど
[]じゃなくて[]=なんよせめてコイツの見るべきは
フォーカスがぶれぶれで何が「すごい」のか伝わらんけど平気なのが「すごい」わ
[]じゃなくて[]=なんよせめてコイツの見るべきは
フォーカスがぶれぶれで何が「すごい」のか伝わらんけど平気なのが「すごい」わ
852デフォルトの名無しさん
2023/04/04(火) 20:07:29.47ID:/ayUyQoP すごいのは取得の方らしいぞ
添字で取得できない言語って何使ってたんだろ
> 文字列も配列のように添字を指定することで、該当する文字を得ることができるみたいですね。
>
> 配列に対して[1]で値が取れるのは個人的に納得できるのですが、なぜ文字列に対してこのようなことができるのでしょうか。
添字で取得できない言語って何使ってたんだろ
> 文字列も配列のように添字を指定することで、該当する文字を得ることができるみたいですね。
>
> 配列に対して[1]で値が取れるのは個人的に納得できるのですが、なぜ文字列に対してこのようなことができるのでしょうか。
853デフォルトの名無しさん
2023/04/04(火) 20:12:58.79ID:/ayUyQoP854デフォルトの名無しさん
2023/04/04(火) 20:23:26.00ID:ktWoV7jH あーなるほど取得がスゴイで正解だったか
もう俺の脳ではついていけないことがわかった
もう俺の脳ではついていけないことがわかった
855デフォルトの名無しさん
2023/04/04(火) 23:42:42.05ID:erD0CuRV C言語みたいに文字列は配列が常識の人には凄さがわからないんだろうね。
配列だから文字を取得するのが出来るのは常識という発想は
古い発想でASCII文字列しか考慮してないんだろうけどw
おじいちゃん、今はUTF-8で一文字のバイト数は可変の時代よ?
C言語のやり方じゃ取得できないの
配列だから文字を取得するのが出来るのは常識という発想は
古い発想でASCII文字列しか考慮してないんだろうけどw
おじいちゃん、今はUTF-8で一文字のバイト数は可変の時代よ?
C言語のやり方じゃ取得できないの
856845
2023/04/04(火) 23:49:51.62ID:xtlScvd1 Ruby では、CP932 でも正常に動く。
一旦、UTF-8 へ変換して処理してから、またCP932へ変換しているのかな?
str_utf8 = "aあbいc"
p str_utf8.encoding #=> <Encoding:UTF-8>
str_cp932 = str_utf8.encode( Encoding::CP932 )
p str_cp932.encoding #=> <Encoding:Windows-31J>
p str_utf8[1, 3] # インデックス1 から、3文字分
#=> "あbい"
p slice_cp932 = str_cp932[1, 3] #=> "\x{82A0}b\x{82A2}"
p slice_cp932.encoding #=> <Encoding:Windows-31J>
p slice_utf8 = slice_cp932.encode( Encoding::UTF_8 ) #=> "あbい"
p slice_utf8.encoding #=> <Encoding:UTF-8>
一旦、UTF-8 へ変換して処理してから、またCP932へ変換しているのかな?
str_utf8 = "aあbいc"
p str_utf8.encoding #=> <Encoding:UTF-8>
str_cp932 = str_utf8.encode( Encoding::CP932 )
p str_cp932.encoding #=> <Encoding:Windows-31J>
p str_utf8[1, 3] # インデックス1 から、3文字分
#=> "あbい"
p slice_cp932 = str_cp932[1, 3] #=> "\x{82A0}b\x{82A2}"
p slice_cp932.encoding #=> <Encoding:Windows-31J>
p slice_utf8 = slice_cp932.encode( Encoding::UTF_8 ) #=> "あbい"
p slice_utf8.encoding #=> <Encoding:UTF-8>
857デフォルトの名無しさん
2023/04/04(火) 23:53:41.39ID:s1fA85/W858デフォルトの名無しさん
2023/04/05(水) 02:14:36.32ID:AynPvYbj >>855
おまえは↓見てスゴイスゴイ言ってれば良いよ。
#include <stdio.h>
void print(const char** s)
{
while (*s) {
printf("%s", *s);
s++;
}
}
int main(void)
{
const char* hello[] = {"こ", "ん", "に", "ち", "は", "世", "界", NULL};
puts(hello[3]);
puts(hello[1]);
puts(hello[0]);
hello[0] = "H";
hello[1] = "e";
hello[2] = hello[3] = "l";
hello[4] = "o";
print(hello);
}
https://wandbox.org/permlink/OtKKJplub0RkTQGy
おまえは↓見てスゴイスゴイ言ってれば良いよ。
#include <stdio.h>
void print(const char** s)
{
while (*s) {
printf("%s", *s);
s++;
}
}
int main(void)
{
const char* hello[] = {"こ", "ん", "に", "ち", "は", "世", "界", NULL};
puts(hello[3]);
puts(hello[1]);
puts(hello[0]);
hello[0] = "H";
hello[1] = "e";
hello[2] = hello[3] = "l";
hello[4] = "o";
print(hello);
}
https://wandbox.org/permlink/OtKKJplub0RkTQGy
859デフォルトの名無しさん
2023/04/05(水) 03:54:38.90ID:/zIzO/Am >>858
そんなの見せられてもC言語はしょぼいなとしか言えんわなw
そんなの見せられてもC言語はしょぼいなとしか言えんわなw
860デフォルトの名無しさん
2023/04/05(水) 08:30:48.03ID:Tk2t3+4w > C言語はしょぼいなとしか言えんわなw
Rubyのあれ見て凄いと言う人の感想なんてこんなもんだろう。
Rubyのあれ見て凄いと言う人の感想なんてこんなもんだろう。
861795
2023/04/05(水) 08:52:04.62ID:PhrX70Dm Cの限界を表したネタコードだぞ
862デフォルトの名無しさん
2023/04/05(水) 11:53:36.19ID:x0KuHrAi863デフォルトの名無しさん
2023/04/05(水) 11:54:17.60ID:jU3TV3ZD Rubyはキチガイ専用言語だから
864デフォルトの名無しさん
2023/04/05(水) 12:01:04.72ID:Wac7S0S8 > 結局さ、お前は「す、すごくないし」って言ってるだけなんだよ
> お前は何も凄いことできないのにね
効いてる効いてるw
> お前は何も凄いことできないのにね
効いてる効いてるw
865デフォルトの名無しさん
2023/04/05(水) 12:07:10.85ID:vCDHSuJP 東浩紀「あの、これさ……自民党は統一教会と関係しているからこのようなテロを招いたということを言った?」
866デフォルトの名無しさん
2023/04/05(水) 12:07:46.45ID:vCDHSuJP 東浩紀「もしかしたら・・(周りの空気を確認)」
石戸諭「それに近い」
三浦瑠麗「ほぼそれに近い」
夏野「まあまあまあまあ」
東浩紀「これは た、い、へ、ん な 発言ですよねぇええ(上擦った声で)」
夏野「そういうことがあるとすれば、という言い方はしてた」
三浦瑠麗「一応保険はかけてらした」
東浩紀「でもね、向こうから言ってるしね。ちょっとこれ大変なことだなぁ」
石戸諭「だから! 福島さんというか だから! 社民党は小さくなるんですよ!」
東浩紀「とんでもねぇ話だなぁこれぇ!?」
三浦瑠麗「私は野党にチャンスを与えた訳でしてね…」
石戸諭「いやぁ!それを見事に蹴っ飛ばしましたね!」
東浩紀「こんなの!許される訳ねぇに!決まってんだろ!」
三浦瑠麗「これはもう間違いなくニュースになりますね。 そして”私に責任はない”はずです。私は牽制球を投げましたから」
石戸諭「いやいや!三浦瑠麗さんには責任では全然ないですよ!福島さんの全責任です!」
三浦瑠麗「びっくりしましたね」
東浩紀&石戸諭「びっくりした!」
東浩紀「いや!これはとんでもない事ですよ! とんでもないなぁ!」
石戸諭「それに近い」
三浦瑠麗「ほぼそれに近い」
夏野「まあまあまあまあ」
東浩紀「これは た、い、へ、ん な 発言ですよねぇええ(上擦った声で)」
夏野「そういうことがあるとすれば、という言い方はしてた」
三浦瑠麗「一応保険はかけてらした」
東浩紀「でもね、向こうから言ってるしね。ちょっとこれ大変なことだなぁ」
石戸諭「だから! 福島さんというか だから! 社民党は小さくなるんですよ!」
東浩紀「とんでもねぇ話だなぁこれぇ!?」
三浦瑠麗「私は野党にチャンスを与えた訳でしてね…」
石戸諭「いやぁ!それを見事に蹴っ飛ばしましたね!」
東浩紀「こんなの!許される訳ねぇに!決まってんだろ!」
三浦瑠麗「これはもう間違いなくニュースになりますね。 そして”私に責任はない”はずです。私は牽制球を投げましたから」
石戸諭「いやいや!三浦瑠麗さんには責任では全然ないですよ!福島さんの全責任です!」
三浦瑠麗「びっくりしましたね」
東浩紀&石戸諭「びっくりした!」
東浩紀「いや!これはとんでもない事ですよ! とんでもないなぁ!」
867デフォルトの名無しさん
2023/04/05(水) 12:12:05.41ID:x0KuHrAi868デフォルトの名無しさん
2023/04/05(水) 12:57:33.53ID:jU3TV3ZD Rubyの話題だとキチガイ乱入でだいたいこんな感じになる
869デフォルトの名無しさん
2023/04/05(水) 20:32:03.53ID:sB818/CP https://qiita.com/ryotaro23/items/ae4fd640648d0b56018e
引かぬ!
媚びぬ!
省みぬ!
いくらマサカリ食らっても確認もせずいい加減な記事を公開し続けるメンタルすげーわ
引かぬ!
媚びぬ!
省みぬ!
いくらマサカリ食らっても確認もせずいい加減な記事を公開し続けるメンタルすげーわ
870デフォルトの名無しさん
2023/04/05(水) 21:07:26.62ID:kJ8vSb5D 自己顕示欲以外に関心は無いので当然
記事が正確かどうか
記事に価値があるかどうか
そんなもんはクソくらえである
記事が正確かどうか
記事に価値があるかどうか
そんなもんはクソくらえである
871デフォルトの名無しさん
2023/04/05(水) 23:23:32.72ID:r2F75ptb 化学の学生ならこんな記事を書かずに何らかの反応の数値シミュレーション結果を書いて欲しいところだ
872デフォルトの名無しさん
2023/04/05(水) 23:27:08.24ID:r2F75ptb 流体シュミレーションとか高分子の計算とかもっと他にやることあるでしょ
プログラミング学習そのものには大して価値がないよ
プログラミング学習そのものには大して価値がないよ
873デフォルトの名無しさん
2023/04/06(木) 05:51:48.61ID:O4MLKnYM シミュレーション定期
874デフォルトの名無しさん
2023/04/06(木) 10:53:01.79ID:wagwoSSr >>858
みたいな事が成立するのは、ひょっとしたら、
UTF-32 で、すべての文字が4バイトで統一されているのかも
Ubuntu は、そうかも知れない
Windows, Java などはUTF-16 で、
2バイトの範囲外ではサロゲートペアで、4バイト文字を使う
みたいな事が成立するのは、ひょっとしたら、
UTF-32 で、すべての文字が4バイトで統一されているのかも
Ubuntu は、そうかも知れない
Windows, Java などはUTF-16 で、
2バイトの範囲外ではサロゲートペアで、4バイト文字を使う
875デフォルトの名無しさん
2023/04/06(木) 11:04:00.03ID:t54Ca6Zb 学がないやつはかわいそう。コロンブスの卵の話を知ったほうがいいよ。
後から大陸発見なんて大した偉業じゃない!俺だって出来る!とか言っても
お前は凄いことじゃないってことにしたんだな
かわいそうに。としか思われない。
後から大陸発見なんて大した偉業じゃない!俺だって出来る!とか言っても
お前は凄いことじゃないってことにしたんだな
かわいそうに。としか思われない。
876デフォルトの名無しさん
2023/04/06(木) 11:17:46.27ID:93Dw4ScH877デフォルトの名無しさん
2023/04/06(木) 11:18:39.01ID:vgwPYFws > 山崎 進
> @zacky1972
> 北九州市立大学 国際環境工学部 准教授 Univ. of Kitakyushu Associate Professor
試し割り法をエラトステネスの篩と言い張る准教授に教わるキッズかわいそw
> @zacky1972
> 北九州市立大学 国際環境工学部 准教授 Univ. of Kitakyushu Associate Professor
試し割り法をエラトステネスの篩と言い張る准教授に教わるキッズかわいそw
878デフォルトの名無しさん
2023/04/06(木) 12:00:44.31ID:hFBJipKZ879デフォルトの名無しさん
2023/04/06(木) 14:57:15.00ID:fP/RGpBC880デフォルトの名無しさん
2023/04/06(木) 14:58:08.56ID:fP/RGpBC881デフォルトの名無しさん
2023/04/06(木) 16:03:57.52ID:SUeW78Ok 繰り返して言うが創作だぞ?w
学があるやつはみんな知ってる
学があるやつはみんな知ってる
882デフォルトの名無しさん
2023/04/06(木) 16:13:18.95ID:yt/i5QIZ883デフォルトの名無しさん
2023/04/06(木) 16:49:40.59ID:bKRpkUUH クソ記事書いてコロンブス気取りは恐れ入る
884デフォルトの名無しさん
2023/04/06(木) 17:00:11.67ID:O4MLKnYM >>869
夢トドと藤原に毎回マサカリ食らってるのを完全スルーしてるな
夢トドと藤原に毎回マサカリ食らってるのを完全スルーしてるな
885デフォルトの名無しさん
2023/04/06(木) 17:01:13.11ID:O4MLKnYM 藤原って誰だ
藤田な
藤田な
886デフォルトの名無しさん
2023/04/06(木) 22:36:37.46ID:1/k3vQtA887デフォルトの名無しさん
2023/04/07(金) 01:20:06.68ID:yD3qyUUU 現代プログラマーは思った以上に C 言語を履修してないのでは?とか思いました。
888デフォルトの名無しさん
2023/04/07(金) 05:27:17.89ID:uPcZC+C5889デフォルトの名無しさん
2023/04/07(金) 05:31:08.01ID:uPcZC+C5 >>878
あのな、コロンブスはインドに行ってきたと主張したんだぞ?
しかもアメリカ大陸は、ノルウェー人が先に移住を試みている。
先住民とうまくいかずに結局、失敗してしまった。
遺構が残っているが、文字としての記録が少ないので、まだ史実扱いされていない。
あのな、コロンブスはインドに行ってきたと主張したんだぞ?
しかもアメリカ大陸は、ノルウェー人が先に移住を試みている。
先住民とうまくいかずに結局、失敗してしまった。
遺構が残っているが、文字としての記録が少ないので、まだ史実扱いされていない。
890デフォルトの名無しさん
2023/04/07(金) 05:33:11.80ID:uPcZC+C5 唐辛子のことをホットペッパーと呼んでいるのは、インドから持ってきたと主張したため。
891デフォルトの名無しさん
2023/04/07(金) 06:36:02.64ID:1Moiy0gQ 支離滅裂で草
知らないなら教えてやるがコロンブスの卵は創作だぞ?w
知らないなら教えてやるがコロンブスの卵は創作だぞ?w
892デフォルトの名無しさん
2023/04/07(金) 06:46:44.36ID:wbX2Ga8y > 学がないやつはかわいそう。コロンブスの卵の話を知ったほうがいいよ。
> 後から大陸発見なんて大した偉業じゃない!俺だって出来る!とか言っても
> お前は凄いことじゃないってことにしたんだな
> かわいそうに。としか思われない。
支離滅裂なのはおまえ>>891
これと創作の関係は?
> 後から大陸発見なんて大した偉業じゃない!俺だって出来る!とか言っても
> お前は凄いことじゃないってことにしたんだな
> かわいそうに。としか思われない。
支離滅裂なのはおまえ>>891
これと創作の関係は?
893デフォルトの名無しさん
2023/04/07(金) 06:52:43.01ID:1Moiy0gQ 学がないやつは話も通じなくてかわいそう
894デフォルトの名無しさん
2023/04/07(金) 07:00:14.59ID:wbX2Ga8y 創作じゃなかったとしてもこれは意味を成す
コロンブスの卵の意味を知らないんじゃない?
コロンブスの卵の意味を知らないんじゃない?
895デフォルトの名無しさん
2023/04/07(金) 07:01:24.51ID:wbX2Ga8y 創作だったとしてもこれは意味を成す
コロンブスの卵の意味を知らないんじゃない?
コロンブスの卵の意味を知らないんじゃない?
896デフォルトの名無しさん
2023/04/07(金) 07:06:55.91ID:1Moiy0gQ 意味をなさないだろw
コロンブスの卵の意味を知ってんのか?
発想の転換という意味だぞ?w
コロンブスの卵の意味を知ってんのか?
発想の転換という意味だぞ?w
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 日経平均、49000円割れ 国賊高市を許すな ★2 [402859164]
- 高市政権「中国さん、日本はいつでも対話に応じるで」 [834922174]
- 【悲報】安倍晋三、弟子である高市早苗の暴走を止めずにひたすら静観。一体なぜ‥‥ [153736977]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 吉村はん「高市さんは発言を撤回する必要ないですよ。中国の大阪総領事が謝罪すべき」 [256556981]
