Qiita 3 - キータぞ、来たぞ、キータだぞー
レス数が1000を超えています。これ以上書き込みはできません。
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 - キータぞ、来たぞ、キータだぞー
https://mevius.5ch.net/test/read.cgi/tech/1658762410/ 「0個以上の全ての要素に対して真なら真」と考えたらわかりやすいと思うが0だけ特別扱いする必要がえるのかね >>10
@D_D
「存在措定」の使い方が間違っている。人の不勉強を窘める文章でこういう間違いがあると説得力が激減するから、もうちょっと勉強してから使った方がいいと思うな。
↓
@saetegaljewp
本記事における存在措定の使い方は間違っていない
↓
@D_D
んまぁそう、よく分かんなかったです… >>10
@kikx
これが何を言ってるのかさっぱりわからないのですが、他の方にはみんな通じているのでしょうか?
↓
@D_D
コメントも含めて全体的に何を言ってるかさっぱりわからない記事なので、わからないのが正しいです。
↓
@Count_Grishnackh
この記事がわからなかったらデリダとかラカン読んだら発狂しそう
↓
@Zuishin
ネタ記事から何か得るのは自由です。
↓
@badgui
なんらかの命題Pはtrue以外ありえない、を論理式にしただけでは?(そういう話じゃない?) ChatGPTを活用した恋愛シュミレーションゲーム「AIと恋するカフェ」
44f2cba569092165b306
面白そうなことが書いてあるがアフィリエイト的
製品ページを見たら5回以上チャットすると課金メッセージが出てくるとある
スマホだけだから宣伝すれば課金する人も出るだろう デジタル庁のサイトやばすぎるwww
://qiita.com/mu_tomoya/items/f78f1fad3a8b57ac7dc3
↓
デジタル庁のWebサイトは阿部寛HPより「やばい」と話題に 河野大臣も「読んでね」
://www.itmedia.co.jp/news/articles/2306/12/news140.html 河野デジタル大臣が立憲民主党にめちゃくちゃ攻撃されてる
://news.yahoo.co.jp/articles/78a7da5d3583d7d3af12f4e5b164aac473278820
マイナンバーを巡る相次ぐトラブルの減員は保険証を廃止したせいだから
これを主導した河野大臣を更迭し(独裁的で急に決めたらしい)
来年の秋以降もシステム安定稼働するまでは保険証を廃止しないで残すように立憲民主党は提案してるようだ 【C言語】難解なポインタに挑む「忍法写し身の術!」その1
https://qiita.com/hiroyuki-tabuchi/items/e77addaad4b3c2a42a51
> ご指摘ありがとうございます。おっしゃる通りですね。
> お陰様でコードミスを見つけられました。
丁寧に見えるけど生返事ってパティーンかな > 【投稿者】
> エンジニアファーストの会社 株式会社CRE-CO 田〇浩〇
この会社らしいけど
https://www.cre-co.jp/company
エンジニア育成がどうのとか言っててこんなクソ記事書かせてんのかあ、まあどんなとこだか窺い知れるな。 >>20
その記事になんで怒ってるのか?
察してではなく理性と理屈で説明責任を果たせ 一週間で身につく何とかいうサイトを読んでからこの記事を読めって言ってるがそのサイトでポインタの説明済んでるからそれ読んだらこの記事読む必要なくなるなぁ
なんだこれ > 一週間で身につく何とかいうサイト
void main(){ なんて書いてるクソ >>23
まあC99(四半世紀前の企画)だとそれでいいんだけどね C99のmain関数は
1. int main(void) { /* ... */ }
2. int main(int argc, char * argv[]) { /* ... */ }
3. 1.か2.と等価
4. それ以外の処理系定義
の内のどれかしかない。
初心者相手で前提条件なしにvoid main(){とか教える奴はアホ。 追記:
C99のmain関数の説明の上では先に挙げた4つしかないが、規格の中のコード例には
int main() { /* ... */ }
がチラホラあるのは規格がアホ。 > ご指摘ありがとうございます。おっしゃる通りですね。
> お陰様でコードミスを見つけられました。
とか言っておいて
https://qiita.com/hiroyuki-tabuchi/items/e77addaad4b3c2a42a51
> #include <stdio.h>
>
> int main(int argc, char** argv) {
> int a = 100; // int型の変数
> double b = 123.4; // double型の変数
> char c = 'a'; // char型の変数
> printf("aの値は%d、アドレスは0x%x\n", a, &a);
> printf("bの値は%d、アドレスは0x%x\n", b, &b);
> printf("cの値は%d、アドレスは0x%x\n", c, &c);
> }
doubleの値を%dで出力しようとするとかポインタ値を%xとかそりゃ「(2回目)」くらい言われるわなあ、なんも確認してないじゃんw
コンパイルオプションまで具体的に挙げて確認されると良いですねと言われて確認しましたって答えて確認してないのなw
よくこんなクソ対応所属の社名出してできるなあ、感心するわw @fujitanozomuはvoid main()を教えたとコメントしてるが
記事をどれだけ探してもvoid mainが見つからないから
彼ら(このスレの人が別人なら)には幻覚が見えている
幻覚を見ていたことに気がついたのかまだ気がついてないのか
それとも私が幻覚を見ているのか >>31
Qiitaの記事について言ってるのかと思って記事を探した
Qiita以外のサイトのことを言ってるとは考えもしなかった
サイト全体から1つのページ(day1.html)を探すのはムリ
暇人ではない
ブラクラの時代を経験してるから怪しいリンクは開かないようにしてる
1週間でC言語の基礎が学べる本というamazonへのリンクもあってそっちのほうが目立つ
それらのリンクやサイトから探すのはムリ
特定的に言うべき
void main()でググったらb45defce0716638ad03a「void main()をめぐるどうでもいい話」
C99以降ではOK、C++ではNG
C99と言ったのはそういうことか
C99以降ではOKってことは現在はOKでは? >>32
リンク張ってんだからリンク先の話に決まってんじゃん
サイトの目次見てどこにあるか一目でわかったわ
ブラクラとか今時ないしある程度contribution稼いでるユーザーがそんなの貼るわけないじゃん @fujitanozomuがコメントしたのを転記するファンがいるのか
直接見に行くからしなくていい
そんなことはやめて
無駄に荒れて非生産的 Qiitaにコメント欄があるのだからそっちで話すべき
こっちに転記されるとそっちで話せなくなる > C99以降ではOKってことは現在はOKでは?
この部分にまったく反応しないやつで明らかに別人
Cにまったく興味ないだろw
ファンでしかない >>37
あーそれ反応していいの?
よく読んだ?
処理系依存になっただけなんだけど
処理系依存のものを何の説明もなくokにしていい感じの人?w >>37
君の見たソースこれだろ?
> 最後の"; or in some other implementation-defined manner"により、main関数には処理系定義の任意の戻り値型と引数型を許容する。
たとえば処理系によってdouble main(char c)にしてもいいよって話だけどそんなシグネチャを説明無しに初心者に向けて書いてるやつはバカでしょってこと >>22
https://c-lang.sevendays-study.com/ex-day2.html
https://c-lang.sevendays-study.com/ex-day3.html
↑の記事のコード丸パクリだなあw
main()の型をintに直してるのは良いけど別のバグ入れてるし何したいんだかわからんw
所属してる会社の名前出してるけど程度の低い会社ってアピールしたいんだろうか? >>40
void main()をめぐるどうでもいい話をしてるのにdoubleの例を出すおまえがバカ
「void main()をめぐるどうでもいい話」でググったらQiitaのソースが見つかる >>41
intに直してるからいいんじゃないの?
その記事にvoidという理由か理解できない コラム4. main()関数の書式
https://c-lang.sevendays-study.com/column-4.html
読んだけどこのサイトの記事書いてる人が馬鹿ってこと以外わからんかったw >>44
intだと言う人がいるのはわかってるが教育的配慮からシンプルな書式を用いると書いてある
とても理解できるしこういうことはよくやる
頭がかたすぎるんじゃない?
ネトウヨみたい >>20と>>41は開示請求と名誉毀損で金額請求されたら通る
会社の名前を出して名誉毀損してるとしか思えない
気をつけて書き込もう >>45
コマンドラインオプションが必要ないからmain関数の引数を空にするって
話は一定の説得力があるけどmain関数の型はintで良かろう。
intより1文字長いvoidをあえて選ぶ意味がない。 アホか、voidにしておけばreturn 0;がいらなくなるんだから
差し引き8文字、場合によってはそれ以上節約になってるだろ >>48
intだと要ると思ってるのか
文字数ならintの方が一文字短いだろ intだとreturnが必須になるから
逆に長くなるって言ってるだろ >>50
必須だと思ってるのかと聞いてるんだが思ってるらしいなw >>48
>>50
C99以降main関数のreturn 0;は省略可能だアホ >>42
voidを許容する根拠が処理系で勝手にシグネチャ決めていいよという決まりだからvoidでもdoubleでも変わらんぞ
処理系依存という言葉は早く覚えろ 侍エンジニアだって昔はヤバい記事書いてたろ
侍エンジニア塾のC言語のサンプルがヤバすぎる。 - Qiita
https://qiita.com/hamichamp/items/7b7a7ee091a6856ac900
記事の信用性が落ちるとクックパッドみたいにノイズが増えて徐々に信用度が落ちる
最終段階では大量解雇が待ってる そもそも数文字ごときどうでもいいだろ
今は1970年代じゃないんだぞ > 侍エンジニアだって昔はヤバい記事書いてたろ
今の侍はまとも、みたいなこと言いたいんだろうか??
……大分クルクルパーですね。早く良くなられることを お祈りしております。 >>57
たかが数文字どうでも良いと思うよ?
で、あえてmain関数の型を初心者相手にvoidで説明するメリットって何かね? https://qiita.com/dorimiamn/items/700021e8ef48d76d68ed
> 数学が得意でなくても緑にはなれる!
> 高校数学で求められる考え方を、模試で偏差値50 とかいうレベルの理解でも緑にはなれます。
ほほう書いた人は数学が苦手なのか
> この記事を書いた時点ではMARCHの数学科みたいなところのB1です。
こういうやつっているよね ラズパイとかArduinoとか組み込みとかでC/C++やり始めた人は
void main() とか int main() とか描く人多い印象がある
もちろん反対したい >>56
sejukuが酷いのは知ってたから検索NGに入れてるがその記事は知らなかった
引用者が指摘したからか知らんがsejukuの記事観たら今はシレっと治ってるようだ
ほんとに酷い 士商法の会社を侍エンジニア塾と名付ける良心的な会社だぞ >>61
C++でint main()は反対する理由がない https://twitter.com/angel_p_57/status/1668211747650678785
> まず「概念が難しい」が大嘘なんだよね。それに「難しい」と思い込んでる人には難しいものとしか説明できない。説明しない方がまし。→
> 【C言語】難解なポインタに挑む「忍法写し身の術!」その1 https://qiita.com/hiroyuki-tabuchi/items/e77addaad4b3c2a42a51 #Qiita
「説明しない方がまし」とは辛辣なこと仰る
https://twitter.com/5chan_nel (5ch newer account) なんで C 言語 に限って教科書未満のクソ記事が量産されるんだろう
業界の七不思議だよ これは 普通の人にはvoid main()をめぐるどうでもいい話でも
一部の人には地球が滅亡するくらいの重い話に見えるのも事実 int main(int argc, char **argv)
int main(void)
int main()
void main()
どれが一番地球にやさしいですか? 地球に優しいとか関係なく正しく書かないと(配布先で)コンパイルできない 機能や スペック やなくて
デザインでバカを騙して売る 時代や デザインは大事だぞ
松屋に行けばわかる
エンジニアは券売機がバージョンアップされないうちに一度松屋に行くべき デザイナーは廃止してエンジニアがデザインした方がいい
アイツラは無能 21世紀の この世の中で最もおぞましいマック信者やぞ 23卒の新入社員「金を稼ぎたくて故意に広告を押したらGoogleのAdmob垢がBANされた」
こんな社員がいて大丈夫かw 並行処理とGPUプログラミングへの学習道: Goから始めてC/C++へ
https://qiita.com/ponchuchu/items/ba04297de23641628003
> データ処理の高速化が求められるプロジェクトで、CPUのマルチスレッドを
> 利用した並列処理を導入していますが、スレッドを追加したにも関わらず
> 処理時間が線形にスケーリングしない現象に直面し、これを説明できない現状に
> あります。これは並行処理についての理解が不足しているためで、この問題を
> 克服するために並行処理について深く学びたいと考えています。
なんか色々知識足らない人みたいだけど並列処理(並行処理?)学ぶためにGoやCに
手を出すって茨の道じゃないかな。既にプロジェクトで使ってる言語で高速化
目指した方が良い気がするがな。
つか動作環境のスペック上理論値としてどこまで性能出せるか何がボトルネックに
なってるか検討すらしてるか怪しい感じするわ。 >>81
並行並列プログラミングならRustが最もオススメ
RustはC/C++と同じ速度が出せつつ省メモリで
C/C++と異なり高度な並行処理の抽象化が使えて
async/awaitやGoと同様のチャネルもRustでは使える RustはAI関連が弱い
本日のDragGAN
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Language Files Lines Code Comments Blanks
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Batch 2 35 29 0 6
C Header 6 378 220 86 72
C++ 10 1104 786 162 156
CUDA 18 5175 4061 534 580
Markdown 3 406 0 292 114
Python 137 27717 20999 2427 4291
Shell 2 30 25 0 5
Plain Text 2 106 0 82 24
YAML 2 57 56 1 0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Total 182 35008 26176 3584 5248
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NVidiaのAI関連はPython/Cuda/C++、Goは辛うじて1つあった
https://github.com/NVlabs?q=&type=all&language=Go&sort= > RustはC/C++と同じ速度が出せつつ省メモリで
馬鹿丸出しw 同じではないな
Cは安全性を犠牲にして速度出してるし Rustは画期的なアイデアにより安全性を犠牲にせずにCと同じ速さを出せるようになった
そのためMicrosoft・Google・Amazonなど競合ライバルIT大手各社が共同でRust Foundationを立ち上げてRustへの切り替えを進めている https://atmarkit.itmedia.co.jp/ait/spv/1909/13/news133.html
ミュンヘン工科大学の研究チームのメンバーはRust言語で開発したネットワークデバイスドライバの処理速度をC言語のものと比較した。その結果、Rust版の速度低下は最大でも数%にとどまっていた。なぜ処理性能がわずかに遅くなるのか、その理由も説明した。 Rustを知らないのに口を出してて笑える
おまえらがRustを使っているわけがない
知らないから口を出す RustはCと同じ生ポインタも使えるし、インラインアセンブリも使えるため、Cと同じことがすべてできるし、同じ速さにもできる。 > RustはC/C++と同じ速度が出せつつ省メモリで
実際使ったり出力されたバイナリ見たりしたことない人がなんかの受け売りで言ってそうな感じね Rustはディープラーニング技術を使って
どのようなコードが速くて消費メモリが少ないかを
ビッグデータを使って解析しているから
C/C++よりも速くて省メモリになる
ディープラーニングとビッグデータを使えるのはRust特有の機能 >>96
現実にはC/C++よりRustの方が速いバイナリになることも起きてるもんな
例えば有名な例がnoalias最適化
Rustはその言語仕様である可変参照排他則によりLLVMへのnoalias最適化指示が自動的に指示されるが、
C言語ではプログラマーが自分で判断して手動でrestrict修飾子を指定しないとnoalias最適化指示がなされずC言語の方が遅くなってしまう
C++はrestrict修飾子を導入していないため指定できずnoalias最適化指示はなされないためnoalias最適化可能な場合は常に遅くなる
つまりこのとき生成されるバイナリの速さは、
Rust=「restrict修飾子を正しく漏れなく指定できた時のC」>>>「restrict修飾子を使わないC」=C++となる
このようにRustは常にC/C++と同じ速さであるわけではなく、Rustの方が速くなることもあるしその逆もある
したがってC/C++/Rustはほぼ同等の速さというのが正解 > C++はrestrict修飾子を導入していないため指定できずnoalias最適化指示はなされないためnoalias最適化可能な場合は常に遅くなる
あえて間違ったこと書いて馬鹿をアピールしたい意図がわからん >>101の記事は自称「Rustなんて使ったことないし知らん」という人しかコメント書いてないけど普段からRust使ってて自信持って「Rustはこう書いて安全とパフォーマンスを両立させる」と主張できる人そんなおらん気がするわ。
> C/C++/Rustはほぼ同等の速さというのが正解
という人がいてもさほどの根拠のある話ではあるまい。 >>102
C++の規格にrestrict修飾子がないのは有名な話でそれは正しいよ
restrict修飾子あるいは_restrict修飾子を独自拡張しているコンパイラはある
いずれにしても指定しない限り最適化が起きないので遅くなってしまう点でCもC++も同じ コンパイラが拡張してるなら指定できるし使えるから速いコード生成できるじゃん
アホなの? restrictを忘れずに指定しないと遅いが
間違えて指定すると誤動作するし
C++の正式な機能でない(規格にない)から
restrictはあまり使われていない
C++は何十年も増築を続けてきたため
正式な規格である機能すら知らない人が多い
C++20の機能を使いこなしてるC++プログラマーは1割もいないと思われる
C++11すら使いこなせてない人たちもいるが
そこからC++14、C++17、C++20と進化が大きい できるできないの話をしてる時にコンパイラが対応してても言語規格縛りとかアホなの?w
できるコンパイラ使えよ無能w 処理系を作ってる連中による独自拡張ではない国際標準規格の範囲で語るべきという主張には同意する。
…Rustの最新の国際標準規格はどこを見れば良いんだ? 言語規格の話だとパフォーマンスとか一切関係なくなるぞ
言語と実装は違うからな
速度の話をしてるなら明らかに言語じゃなく処理系の話だ Rustなんて使ったことないし知らん
という人以上に語れるRustユーザーはこのスレにはいなかったんだな残念 処理系と言語の区別も明らかについてないやべえやつを無視してるだけでは? クラウドの世界トップシェアのAWSもRustで構築されているらしい
つまりネットインフラがどんどんRust製になりつつある
https://japan.zdnet.com/article/35183866/
AWS (Amazon Web Services)は、「Rust」を使っている大きな理由として、エネルギー効率の高さを挙げる。
AWSは早くからRustを採用し、Rust Foundationの創設にも携わった。
現在もRustの普及に熱心に取り組んでいる。
AWSのソフトウェアエンジニアで、Rustの普及に取り組む
Shane Miller氏と主任エンジニアのCarl Lerche氏の投稿によれば、
Rustはメモリー安全性を高め、セキュリティ関連の不具合を減らす役に立つだけでなく「エネルギー効率に優れている」。
Amazonは、2025年までにデータセンターの100%を再生エネルギーでまかなうという目標を掲げ、
データセンターの環境負荷の軽減に取り組んでいる。
Rustの採用はその一翼を担うという。
Rustで構築されたAWSサービスの例としては、
コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、
「Amazon Simple Storage Service(S3)」、
「Amazon Elastic Compute Cloud(EC2)」、
コンテンツ配信ネットワーク「Amazon CloudFront」、
LinuxベースのコンテナーOS「Bottlerocket」などがある。 使ってる言語やツールでマウント取りに来る奴は総じて無能 米Google(グーグル)が2021年4月、AndroidやLinuxカーネルを開発するプログラミング言語に「Rust」を採用すると明らかにした。
マイクロソフトはグーグルよりも早い2019年7月の時点でOS開発にはRustが適しているとのブログを発表しているほか、2019年11月にはWindows OSの一部のコンポーネントをRustによって実装し始めたことを明らかにしている。
グーグルによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するという。同様にマイクロソフトも、同社製品に存在したセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。
medaka.5ch.net/test/read.cgi/prog/1619943288/ 知識がないのは罪ではないけど提示されてるコードを自分で動かしもしないで半端な知識による思い込みで
> おかしくね?
> 明らかに計算量下がってる
とか抜かしてるのは感心せんなあ。
記事のコメント欄に突撃してたら即返り討ちにされてただろうけどそうしなかった点だけは賢明か。 熱心なファン(ID:ZimHU97m)がいる
異常に荒れた
転記するのをやめてと言ってる
本人の可能性低い Qiitaにコメントすればよくね
ここにコメントする意味がない
URL貼られるとQiitaにコメントしにくくなる
コメント求めるならここに貼るべきでない 反論できなくてQiitaでそいつのストーカーするつもりなのが透けて見えるな
ここでコメントして記事にコメントできなくなる意味もわからんが痴呆かな? IQが3しかないんじゃないのw
どんな説明してもわからないやつ わからんわからんってやつ5chでよくみる
何言ってもわからんっていうやつ
5chで説明する意味がない いきなり発狂するやつってプログラマに向いてないと思う >>122
O記法で表される計算量は同一の処理ではパラメータの変化に対してどのくらい計算コストが変化するかの目安にはなるけど
異なる処理についてはパラメータに応じた計算コストが同一とは限らないので異なる処理同士の比較に使えるとは限らないことくらい知れ わかってないから変なこと言い出したw
こんなところで変な言い訳してないで記事を編集したらいんじゃね?w 仮に多倍長変数の演算の計算量をO(log10 n)とすると(本当はもっと下がるはず)最後のコードはO(n log10 n)だからO(n √n)より計算量は下
つってもnが1000だから計算量はあまり意味がない
誤差だよ
もっと大きな数で計測せず速い遅い言うのは的外れ nは1000じゃなく10000だがどちらにしても小さすぎる
10000000で計測してから言え 自分の考えに自信があるなら捨てアカ使ってでも直接コメントして鼻折ってやりゃいいのになw
5chでくすぶってるのはヘタレすぎて草ww 5chですらIDコロコロするだろ
人として終わってる 効いてる効いてる
どうしても反論できないからストーカーしたくてコメントしろと言ってるようにしか見えんぞ >>141
https://twitter.com/windymelt/status/1676527217378217984
Qiitaで特定地方の方言をイジる投稿を社名を出して行うの、どういう積もりでやってるのか?これで笑っている人間がtwitterにいるのは何なのか?よっしゃウケた!と思ってるのか?と普通に思うことがあり、たいへん不愉快であった
https://twitter.com/5chan_nel (5ch newer account) >>141
京言葉ジョークの類だけど驚く人もいるのね。 >>141
Yahooリアルタイム検索AIの判定、感情の割合
6時間、ポジティブ30%、ネガティブ70%
24時間、ポジティブ36%、ネガティブ64%
ネガティブ急上昇しそうだから削除したほうがいいんじゃね? >>135
> 仮に多倍長変数の演算の計算量をO(log10 n)とすると
多倍長計算の桁数に比例して処理数が増大するという仮定はまあ良い
> 最後のコードはO(n log10 n)だから
階乗の計算してて n=10000 では最大35652桁の計算すること理解してないんだなあw
> nが1000だから計算量はあまり意味がない
> 誤差だよ
> もっと大きな数で計測せず速い遅い言うのは的外れ
> nは1000じゃなく10000だがどちらにしても小さすぎる
> 10000000で計測してから言え
それでこんだけボケたこと言ってるのかw味わい深いなww >>146
大丈夫か?
そこまで理解できてないなら記事にコメントして教えてもらったら?
俺らが言っても信用できないんだろ? 「俺らが」とか言い出したよw
どーなってんのよこの人のアタマw >>147
long longは19桁だから19回計算すると思ってるんだろうな
多倍長演算実装したことないんだろ >>122
> 最後のコードが試し割り法と比べて遅くなるっておかしくね?
> 明らかに計算量下がってるけど
そーなんだ?コメ欄で指摘してやりゃいんじゃね? >>135
> 仮に多倍長変数の演算の計算量をO(log10 n)とすると(本当はもっと下がるはず)最後のコードはO(n log10 n)だからO(n √n)より計算量は下
> つってもnが1000だから計算量はあまり意味がない
> 誤差だよ
> もっと大きな数で計測せず速い遅い言うのは的外れ
> nは1000じゃなく10000だがどちらにしても小さすぎる
> 10000000で計測してから言え
おっこの人詳しそうだな
是非Zennにでもまとめてくれよ
Qiitaはもうダメだろレベル低杉 レベルの高い人はあの事件とあの事件でかなりいなくなった印象が強い >>152
こういうコメ見ると、高校レベル程度の数学を学習する必要性を感じるね >>152
こういうコメ見ると、なんで自分でやろうとしないのか疑問を感じるね
150分で高校レベル程度の数学を学習すればいい
高校数学の基礎が150分でわかる本
2023年7月26日に出版
Qiitaで有名な著者 Kindle版 (電子書籍) ¥1,980を払いたくないのかw 専門知識は本の市場で高値で取引されてる
それを無料にしろっていうのはどうなの
無料にしろって思った人が本を買って無料で出すべき >>151 最適化有効の状態で計算量を比較しても意味ないのは常識だが、オイラは Python など興味ないのでフーンて感じだ。
うかつにコメントするとネット・ストーカーに発展し、電凸されかねないからな(笑) 昔、AI のネットストーカーに遭ってウザかった時期があるが、AI は忘れっぽいからな。人間のネットストーカーは執念深いから
unconcern が原則だな。
気にしてレスすると電凸にまで発展する人もいるからな・・ 単純な for for でも最適化されるからな。最近のコンパイラは if else, for で工夫のないコードでも早くなるように作られている。
へたに考えると却って遅くなる。可読性・保守性で書いたほうがよいのは確か。 >>152 別にこれくらいは常識。 ただ今どきは演算より通信レイテンシーやサーバー負荷のほうが問題になるからな。
クライアントサイドのプログラムの演算なんて誤差だよ。 >>156 大学院卒が、ジョルダン標準形など線形代数の基本プログラムを書かずに わざわざ激重の MATLABを利用するからして、
高校数学を知っているかどうかは問題ではなさそうだな。
数値計算の基本アルゴリズムをオレオレ実装したところで、専門家が作ったのにはかなうわけもないし。
計算量という概念もそうだが、そのあたりのコンピュータサイエンスの基礎はマルチコア、スレッドといった概念を考慮してないからな。
コンピュータサイエンスの分野は二極化していて、極端な人になれないなら、計算機科学の基礎など多少知っていてもそれは全く意味がない。 >>64 もそうだが最近わかってて確信犯的に嘘を付く香具師が増えたな。競合者とやらを少しでも減らすために巧妙に嘘のレスをつけるんだろう。
発信する記事とレス・コメントのレベルがあってないと、その意図が露骨になる。
このすれで話題の人もその手の人。 確信犯的な嘘を量産して検索上位に埋め尽くせば、初級者を間違った方向に誘導できるからな。
検索エンジンベースのAIを賢くさせないだけでなく、人間もまた芽は早めに摘んでおく草の根活動だな。
ようやるわな、としか思わんw >>165
sin, cos不要論みたいな間抜けな言説 >>166
いいこといってるようなきがしたらかられすしてあげるが
「このすれで話題の人」って誰?
意味がわからないことを言うのときみがひはんしてることが同じなのでは 意味がわかることを言ってしまうと嘘を付いたとひはんされるから意味がわかることをいわないことで安全地帯にいてひはんされないようにしてる み∞!!!!
病∞!!!!!
盲∞!!!!!!
癌∞!!!!!!! >>161
> 最適化有効の状態で計算量を比較しても意味ないのは常識だが、オイラは Python など興味ないのでフーンて感じだ。
Pythonの知識マジでない人なんだなあ、と分からせる文章として秀逸w はいはい言語マウントはやめようね
いい大人なんだから 知らないなら言及しなきゃ良いのにね。
> 最適化有効の状態で計算量を比較しても意味ないのは常識だが、オイラは Python など興味ないのでフーンて感じだ。
余計な恥かかなくて済むし、知識ない人のクソレス見ないで済む側も助かるw レオナールは確信犯的な嘘でレス付けるから嫌い。
確信犯だから構ったら屁理屈で粘着されそう。 レヲナールはLGTM数で対応変えてるからな。
LGTM数が多い奴に噛み付くと援護砲を喰らうことをわかって、過疎垢には強気なコメントw レオナールは典型的なDV男。コンパイルも通らないゴミコードでレスすんなw
傍目から見ると強気が正義に見えるが反論するとオモチャにされそうだからヌルー レヲナールはポエム生地に手をコネコネして
淡白な記事には狂犬の如く噛み付いてるな。
意図はわかるが、噛み付かれた側からすれば災難だわ。 私文をホルホルして、のぼせ上がった私文を使って情報卒を攻撃させるという政治活動は現実でも嫌という程みるな。
用が済んだ私文には巧妙な嘘で事故を起こさせ👋
ヲタクが政治に走ると陰湿だからなあ。体育会系と違って屈折してるから、距離を近づけると拒絶するし。
ヌルーに限る。
ただ私文は政治に関してはヲタクより一枚上手だから、ヲタクの意図なんか見抜いてるだろうけどなw 政治に走るヲタクはFラン死文よりウザイ。
死文は悪意がなく他人に噛み付かないが、
最近政治を覚えたてのヲタクは短絡的で攻撃的
たまに現実にもいるから、目を合わせないようにしてる。 レヲナールはキータで社内政治の練習をしてる。
だから大量にレスつける。
社内政治など百戦錬磨の体育会系には勝ち目がないからやめておけw ID:zE87G4i1はキチガイの自覚あるんだろうか?
自覚があるなら仕方がないが自覚がないなら自覚したほうが良いよな。 AIに掛け算をさせてみよう
5x5=は正解できたが、438890x819471=は不正解である
なぜならAIは○○を□□しておらず、人間が△△を☆☆しているにすぎないのである RISC-Vベクタ拡張を用いたCORDICアルゴリズムによる三角関数の実装
https://qiita.com/zacky1972/items/e3ec1e57168e685e2893
glibc等で提供される三角関数と性能比較してないの意味わからんw
手段が目的になってるよなあ。
> 提案手法の定数項が想定よりかなり大きいのは,最適化オプションを
> 指定していないためです.最適化オプションを指定しなかった理由は,
> 現状の実装では最適化オプションを指定すると不具合を生じるためです.
> この原因は,アセンブリコードの生成にGCCのインラインアセンブラ
> 機能を使用したのですが,おそらく申告すべき使用レジスタの指定を
> 誤っているためではないかと考えられます.
無能っぽくて草w >>187
意味わからんといって性能比較を押し付けるな
やりたいなら自分でやればいいんじゃない?
タイトルからして意味わからん
意味わからん記事を読むべきでない
頭が混乱して性能比較を押し付け誹謗中傷もしてしまっている >>188
> 性能比較を押し付けるな
記事書いた当人が性能比較してるけど何言ってんの??
> ベクトルサイズと実行命令数の相関関係と相関係数は次のようになりました.
> * 提案手法(固定小数点数表記のRVVハンドコーディング実装): 36.932n + 406.53, 0.9611
> * 固定小数点数表記のC実装,GCC 12.2 (`-O2`): 349.35n + 31.996, 1
> * 固定小数点数表記のC実装,Clang 16.3.2 (Auto-vectorization): 175.16n + 52.681, 0.9887 >>189
glibc等で提供される三角関数と性能比較してないの意味わからんw
↓
glibc等で提供される三角関数と性能比較するなら意味わかる
↓
glibc等で提供される三角関数と性能比較しろ
↓
性能比較を押し付けてる
と思ったんだが何が違うんだい? >>190
・CORDICによる三角関数の性能比較は記事書いた当人が行っており性能比較は>>187が言い出したことではない
・CORDICは手段であり目的ではない筈
以上2点ご確認ください。 > タイトルからして意味わからん
> 意味わからん記事を読むべきでない
> 頭が混乱して性能比較を押し付け誹謗中傷もしてしまっている
自他の区別がつかない人かな Facebookでも上司の意味わからん投稿にいいねつけるだろ
それと一緒 これだけ短期間に複数の改善提案される程度の記事にいいねつけなきゃならん部下も大変だなw >福岡Elixirコミュ
つか情報処理学会で発表ってマジか。マサカリハンパじゃないと思うが。 >>194
いや、組織でいいねを付けるのはQiitaのどの記事でも一緒 実際は経営企画なのに、ショッピングセンター勤務者という記事
超高速の肉まんbunがnodeの5倍denoの2倍早いらしいんだがマジか h ttps://qiita.com/zacky1972/items/eabbcae5af04e24c2cc0#comment-0264e1d4f5877205726a
> なお、当方はRISC-Vの知識は持ち合わせておらず動作環境も手近にないのでこのコメント冒頭で言っているa5が使用されたコードが正しくないかは確認しておりません。
> 同様に、このコメントでの修正内容が正しいかは不明なので参考にされる方はご慎重に願います。
予防線張るのダッセエ 知識ないのに突っかかるって凄いなw
働いたことないんだろうか 准教授
RISC-Vベクタ拡張を用いたCORDICアルゴリズムによる三角関数の実装
https://qiita.com/zacky1972/items/e3ec1e57168e685e2893
> 提案手法の定数項が想定よりかなり大きいのは,最適化オプションを指定していないためです.
> 最適化オプションを指定しなかった理由は,現状の実装では最適化オプションを指定すると
> 不具合を生じるためです.この原因は,アセンブリコードの生成にGCCのインラインアセン
> ブラ機能を使用したのですが,おそらく申告すべき使用レジスタの指定を誤っているためでは
> ないかと考えられます.
に直球のツッコミ入ったわけだけどどうすんのかな?
学生さんに教える立場であれば自分の考えに固執するんじゃなくて何が正しい正しくないで語ってほしいところではあるかな https://qiita.com/zacky1972/items/eabbcae5af04e24c2cc0#comment-274dfdc78a0388e2b28b
> 要素数を左2ビットシフトしてアドレスレジスタに加算されてますが3ビットシフトして8倍にするのが適当なのではないかと思うのですが
指摘がその通りだとすると動作確認しないで記事書いてた可能性も出てくるのかな
https://qiita.com/zacky1972/items/eabbcae5af04e24c2cc0
> "vsetvli t0, t1, e64, m8\n\t"
> "slli t0, t0, 2\n\t"
> "add %[v], %[v], t0\n\t"
でも同じことしてるみたいだけど准教授ダンマリになっちゃったけど折角記事読んでいいねつけてくれた福岡Elixirコミュのみんなのためにも責任もって回答して欲しいよね SAR衛星によるリアルタイム土砂災害情報提供システムの実現に向けた衛星画像の分散並列処理の実現
https://researchmap.jp/zacky1972/misc/40467660
ダウンロードして読んだけどPythonより遅いElixirって意味あんのかよw
やっぱこの人手段が目的化してるわ。 >>205
https://elixir-fest.jp/
2019年に任天堂がElixir使ってzacky1972の名前もある
任天堂がつかってるからスポンサーがいる 任天堂が何らかの用途にElixirを使っている(いた)というのと、
准教授が画像処理にElixir選んでクソ遅いPythonより性能出せなかったというのは
実は大して関係がある話ではない。 今ほぼコードレビュー専になってる私が、リーダブルなコードを書くうえで意識してほしいと考えている順番
https://qiita.com/kawagashira/items/a0d2ef9bc058dacc03d3
沢山いいねついてる記事だけど
> public function changeHeightByAbsoluteMeter($value) {
> $this->height = $value;
> }
AbsoluteMeterや$valueに誰も疑問持たないのかな。 絶対値で高さを変えるか相対値で高さを変えるかで意味ある
valueは「日本人は何故英語が出来ないのか」に誰も疑問持たないのと同じ valueになってる理由は記事にもちゃんと書いてるだろうが
> 引数を丁寧に命名するなら $absoluteValue になるが、スコープの短さを考えると省略しても自然 >>211
リーダブルコード「汎用的な名前を避ける」は?
valueやarg、fooなどの空虚な名前はできるだけさけるべきである >>212
いや、俺に聞くなよ
俺が記事書いてるわけじゃないんだから
記事主としてはリーダブルコードの「無駄な単語は捨てる」を実践してるんだろう
今回のケースが適切かどうか知らんけど >>213
記事の読み方の違いだが記事の
> 「変に削るより、長くてもいいから正確な命名を」という言説をしばしば見るように感じますし、私も同意
は「無駄な単語は捨てる」の逆だと思った
リーダブルコードは短いほうがいいで記事は長くてもいい
日本人は英語ができないから正確に削れないということだろう >>210
> 絶対値で高さを変えるか相対値で高さを変えるかで意味ある
change〜 なんてアホなメソッド名やめて set〜 や add〜 とかにすればおk > 今ほぼコードレビュー専になってる私が、リーダブルなコードを書くうえで意識してほしいと考えている順番
ハンパな知識のオッサンが若い人のコードに思いつきでダメ出ししてる光景が目に浮かぶんだけど。 今回のは結論ありきのお題だから突っ込むのは野暮かもしれんが
>>215に完全同意。この場合get/setのほうが百倍マシ。
メソッド名がシンプルで、メソッドの内容がシンプルで、メソッド間の直行性が高い。
$myCar->changeHeightByRelativeMeter(1); ←きがくるっとる
$myCar->changeHeightByRelativeMeter(0.2); ←きがくるっとる
$myCar->setHeight(1); ←きがくるってない
$myCar->setHeight($myCar->getHeight() + 0.2) ←きがくるってない
説明的な変数名、メソッド名をつけなきゃいけないのは
散らかったウンコを片付けずに消臭剤いっぱい振りかけるのと同じ 確かにsetHeight, addHeightのほうがいいな >>215
絶対値相対値とか言われてもピンとこないよね普通は そもそも高さって何なん?
車高のこと?
なんで車高を変えんの? ま、ユーザーがロードカーの車高を下げても良いことは何もないんだけどね
カッコいいと感じる感性の持ち主の部族のことは知らん 2つの封筒問題(封筒のパラドックス)
https://qiita.com/SaitoTsutomu/items/3079a88163153abf2ac2
数学っぽいこと書いてる雰囲気なデタラメ記事。
> ※ 本記事へのコメントはしないでください。コメントがあった場合、すべて削除依頼します。
書いた本人にも自覚はあるんだろうな。 >>223
2つの封筒問題(金額仮定版)の答えが「分からない」が真だとして、
なんで2つの封筒問題(未開封版)の答えが「変わらない」なのかが分からない。
金額仮定版は2つの事象が1/2で発生するか分からないから、という説明なのに対し
未開封版は2つの事象が1/2で発生することを前提にしているの? 数学っぽいとかなんで2つの封筒問題(未開封版)の答えが「変わらない」なのかが分からないとか
記事を開く気がしない なんで人はわからないものや数学っぽいものに惹かれるのか 【検証してみた】株式会社ゆめみは、Organization対抗戦で不正をしているのか?
https://qiita.com/Yametaro/items/3988455d103d2408ea77
組織票は現状ルール違反ではないことを前提として書いてるんだろうけど
トレンドが全く役に立たなくなったし迷惑行為であることは認識して欲しいもんだわ。 いやいやそもそも御本尊のキー太がね
検索結果のど真ん中に野糞置く教えだから 詳しく読んでないけど、ベイズ推定にそんな説明あったね >>223
無茶苦茶だな
これ本気で書いてんのか? >>228
オーガニゼーション組織票問題はユーザーからは前から言われてることだけど運営は全く問題にしてないしむしろ推奨してるからな
トレンドが糞記事ばかりになるのは当然 QiitaはSEOに強かったからネットユーザーに認知されて参加するも
いいねが付かないことに悩み
オーガニゼーション(組織票)の存在に気づくのは1年以上後だろう
気づいたら参加モチベーションが下がる
不公平だからな
ほとんどのネットユーザーに認知され新規参加者がいなくなり組織に属さない人のモチベーションが下がったままで
全く上げようとしないのは問題かな
今後も組織参加者を増やすのかな ゆめみでゴミ記事書くやつは、片っ端からミュートしてるわ >>233
advent calendar ってなんなん? CとC++って低水準言語なの?
https://qiita.com/takeyoshinitta/items/a646a80f170e31a8c075
Cは低水準言語であるという与太話を広めたい人の記事。
自分はそうは思わないと断りを入れつつ自説に都合の良い記事探してきて
主張するモチベーションはどこから来るのだろう? インラインアセンブラが可能なC/C++/Rustは低水準記述が可能な言語 >>239
「犬が人を噛んでもニュースにならないが、人が犬を噛んだらニュースになる」が基本
Cは低水準言語でないという論文なら論文にならないが、Cは低水準言語であるという論文なら論文になる
Cは低水準言語でないというだけなら主張するモチベーションが起きないが、Cは低水準言語であるというなら主張するモチベーションが起きる そもそも低水準は誤訳
低レイヤと考える方がしっくりくる https://megalodon.jp/2023-0804-1704-11/https://qiita.com:443/takeyoshinitta/items/a646a80f170e31a8c075
> 私としてはこのムーブメントが拡大されCが段々と当たり前のように低水準として
> 扱われていることついて例をいくつか紹介し将来的にどうなるのかを含め議論を
> したいと思って投稿したつもりでCが低水準か高水準についてしっかりと議論
> したかったわけではないのですが、このような投稿は初めてでしたので、うまく
> 伝えることができなかったのだと反省しております。
> 私の投稿に対しての誤解を閲覧者が生んでしまうのは申し訳ないのですが、急に
> 投稿を削除してしまうのもこれまでコメントされた方に失礼だと思いますので、
> しばらく時間をおいてから本日中に投稿は削除させていただきます。
うまく伝わらなかったのなら議論重ねりゃいいだけだし削除する言い訳にもなってない罠。
要は旗色悪いから逃げたんだろう。 消えてるからなんだよ
webアーカイブでも探せばいいだろ しっかしコメントしてきた相手に対して長いコメント返してるなあ、例外なく。
負けん気の強さは人一倍だが本人の知識や能力が追い付いてない感じw このスレに貼り付けた人もそうだが削除させる意図があるように見える
削除させなくてもいいんじゃない?
もしかしたら削除させる意図がないと言うかもしれないが
もしそうなら言い方を気をつけるべきだね
削除させる意図があるように見えるから >>248
「削除させる意図があるように見える」のはどの書き込みで
「削除させる意図があるように見える」ことがなくなるようにするには
その書き込みをどのように変えればいいと言うんだろ 削除は本人の判断だけど
> それにしてもCが低水準言語であると思っている人の数が圧倒的に多くそのような記事が当たり前のようにあるので驚いたところです。
とまで書いてた本人が記事を削除する意図が分からんのよね。 低水準の意味を間違って捉えてるんだろ
ハッカーと同じ C言語における「bool型へのキャスト」が無限の(悪用)可能性を秘めている理由
https://webcache.googleusercontent.com/search?q=cache:ED5C8TAFrNYJ:https://qiita.com/wantun/items/4574049283e1cd7d50cf
程度低い記事だなあ、これはツッコまれるの不可避だわと思っていたら消えていた。 「いいね」も付いてたし指摘された誤りは修正すれば消さんでも良かったんじゃないのとは思う。
己に対して完璧以外許さない性格かな。 誤り以前にboolに変換して掛け算するのはどうなのよ C言語ならまだギリギリ許されることもあるけどセマンティクス的に汚いし他の言語だとNGだから積極的に学ぶ方法でもない
読みにくくなるだけでなくコーディング量もそれほど変わらない上に速度すら落ちてるから あとデータが1と0に限定されるから拡張性にも欠ける
後で2を使いたくなった時に全コード見直す必要が出てくる キャスト使えばこういう悪事もできるよ(良い子は真似しないでね)という記事なんだから、掛け算以外の指摘に関しては論点ではない C言語だと別に悪事というほどではない
ひたすら汚いだけ >>253
考え自体は正しい
条件分岐はパイプラインを乱す
条件分岐とならないコードが生成されることが望ましい
しかし多くのケースではコンパイラのコード生成に任せることができる
今回のケースならばif文のままでも条件ムーブ(CMOVcc)命令などが生成され条件分岐とならないだろう
ソースコードの可読性からもif文のままが好ましい
ただしもっと複雑なケースで複数の条件分岐をなくして演算のみにできる場合もある
そしてコンパイラ任せではそのようなコード生成が無理な場合もある
その場合はベンチ測定比較すれば有意な差が出るためそれは正しい判断となる > しかし多くのケースではコンパイラのコード生成に任せることができる
> 今回のケースならばif文のままでも条件ムーブ(CMOVcc)命令などが生成され条件分岐とならないだろう
> ソースコードの可読性からもif文のままが好ましい
なにやら知ったようなことを言ってるので検証してみるとするか。 void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
if (num[i] == deleteNum) { //deleteNumで指定した要素を0にする
num[i] = 0;
}
}
}
gcc 13.2 最適化オプション-O2でコンパイル
hoge:
testl %edi, %edi
jle .L1
movslq %edi, %rdi
leaq (%rsi,%rdi,4), %rax
.L4:
cmpl %edx, (%rsi)
jne .L3
movl $0, (%rsi)
.L3:
addq $4, %rsi
cmpq %rax, %rsi
jne .L4
.L1:
ret
https://godbolt.org/z/noxvcGbff
条件分岐するじゃんw 記事の計算による方法
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
for (int i = 0; i < 6; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
}
hoge: xorl %r11d, %r11d
leaq 24(%rsi), %r10
xorl %r9d, %r9d
testl %edi, %edi
jle .L9
.L2: movq %rsi, %rax
.L4: movl (%rax), %ecx
movl %r9d, %r8d
cmpl %edx, %ecx
cmove %edx, %r8d
addq $4, %rax
subl %r8d, %ecx
movl %ecx, -4(%rax)
cmpq %r10, %rax
jne .L4
addl $1, %r11d
cmpl %r11d, %edi
jne .L2
ret
.L9: ret
https://godbolt.org/z/do55an9P9
cmov命令吐いてる ちなみに計算による方法でもこう書くと2行短くなった
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
for (int i = 0; i < 6; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
}
hoge: xorl %r10d, %r10d
leaq 24(%rsi), %r9
xorl %r8d, %r8d
testl %edi, %edi
jle .L9
.L2: movq %rsi, %rax
.L4: movl (%rax), %ecx
cmpl %edx, %ecx
cmove %r8d, %ecx
addq $4, %rax
movl %ecx, -4(%rax)
cmpq %r9, %rax
jne .L4
addl $1, %r10d
cmpl %r10d, %edi
jne .L2
ret
.L9: ret
https://godbolt.org/z/ro1qj98MG したがって>>253の記事は全面的に正しい
bool値を数値演算として使うことを積極的に推奨する > したがって>>253の記事は全面的に正しい
boolへのキャストなんてしねーよ馬鹿か >>256
数学に出てくるクロネッカーのデルタみたいなもので汚くはないし、型に厳しい言語でなければ他の言語でも使えるだろ。 >>263訂正
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < 6; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
hoge:
leaq 24(%rsi), %r8
xorl %edi, %edi
.L2:
movl (%rsi), %eax
movl %edi, %ecx
cmpl %edx, %eax
cmove %edx, %ecx
addq $4, %rsi
subl %ecx, %eax
movl %eax, -4(%rsi)
cmpq %rsi, %r8
jne .L2
ret
https://godbolt.org/z/br4nPfcEa >>264も訂正
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < 6; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
hoge:
leaq 24(%rsi), %rdi
xorl %ecx, %ecx
.L2:
movl (%rsi), %eax
cmpl %edx, %eax
cmove %ecx, %eax
addq $4, %rsi
movl %eax, -4(%rsi)
cmpq %rdi, %rsi
jne .L2
ret
https://godbolt.org/z/7xhMr6oae すまん>>263再度訂正
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
hoge:
testl %edi, %edi
jle .L1
movslq %edi, %rdi
leaq (%rsi,%rdi,4), %r8
xorl %edi, %edi
.L3:
movl (%rsi), %eax
movl %edi, %ecx
cmpl %edx, %eax
cmove %edx, %ecx
addq $4, %rsi
subl %ecx, %eax
movl %eax, -4(%rsi)
cmpq %rsi, %r8
jne .L3
.L1:
ret
https://godbolt.org/z/9K6dj7Goc >>264も再度訂正
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
hoge:
testl %edi, %edi
jle .L1
movslq %edi, %rdi
xorl %ecx, %ecx
leaq (%rsi,%rdi,4), %rdi
.L3:
movl (%rsi), %eax
cmpl %edx, %eax
cmove %ecx, %eax
addq $4, %rsi
movl %eax, -4(%rsi)
cmpq %rsi, %rdi
jne .L3
.L1:
ret
https://godbolt.org/z/WTTadjj5a Rustでも同じ結果となった (diff -u 形式)
fn hoge(num_list: &mut [i32], delete_num: i32) {
for num in num_list {
- if *num == delete_num {
- *num = 0;
- }
+ *num *= (*num != delete_num) as i32;
}
}
アセンブラ出力の方はラベルと使用レジスタ名のズレだけ揃えてdiff
hoge:
test rsi, rsi
je .LBB1_4
shl rsi, 2
xor eax, eax
+ xor ecx, ecx
.LBB1_2:
- cmp dword ptr [rdi + rax], edx
- jne .LBB1_3
- mov dword ptr [rdi + rax], 0
-.LBB1_3:
+ mov r8d, dword ptr [rdi + rax]
+ cmp r8d, edx
+ cmove r8d, ecx
+ mov dword ptr [rdi + rax], r8d
add rax, 4
cmp rsi, rax
jne .LBB1_2
.LBB1_4:
ret つまりC言語もRustもどちらも同じく
if文の時は普通に条件分岐する
比較値を自己掛け算させるとcmoveを使う
生成コードで掛け算が消えてしまうのはいいね
代わりにやってることは
(1) レジスタの値にメモリから読み込む
(2) 比較
(3) 一致していた時のみレジスタに値0を入れる 【cmove】
(4) レジスタの値をメモリへ書き戻す
条件分岐がない代わりに0にしない時も常に書き込みが発生する
ただし読み込んだ位置への書き込みだから
1サイクルのみでキャッシュページミスのペナルティも無くて済むから問題なしか
一方で元の条件分岐ジャンプするコードと比較して速さはどうなの?
分岐予測ミスやパイプラインの乱れとやらがどれだけ効くのか教えて欲しい 何度訂正されても暑さでやられたやつが発狂してるようにしか見えんからもういいぞ
どうしても主張したいなら記事書けよ 訂正してる人はコピペミスか実験かどちらかで二重ループになってしまったのを訂正してるっぽいけどよくわからん
アドバイスできることは
clangの方で-O2だとベクタ展開して比較わかりにくくなってるのを
-Os指定すれば展開がなくなりgccとほぼ同じコードになるよ >>273
元の条件分岐ジャンプするコードと比較して速さはどうなの?と聞いてるが
元のコードが何か分からないし
比較対象のコードが何か分からない
元のコードと比較対象のコードは何? if文を使ったコードと使わないコードの2種類が示されている状況で
何と何を比較しているのかわからないのは深刻な脳のバグだよw >>277
暗号解読の趣味はない
そもそも1レス内で完結してるの?
暗号みたいなレスだから他のレスは全く読まない 発狂してる俺様のレスを追いかけて全部読めとかいう頭のバグったやつ 本人が気づいてない可能性があるからボランティアで教えてあげている
君の文章では他の人間は全く理解できないと
そもそも自分と他人を区別できてるのかなw Cの人のレスは複数に分かれて訂正もあって二つの比較がわかりにくいけど
Rustの人のレス>>272はdiff形式で一つのレスに書かれているから何と何を比較しているか一目瞭然でしょ RustとRubyとMAUIをNGしてるやつは多いと思う 単語NG設定してるやつがそいつだけ重要なレスを読めていないことが原因で勘違いな書き込みを繰り返すパターンはよくあるよな
しかし今回のアホな>>276はNGしていないからレスしてるわけで単なるアホなパターンかと void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
if (num[i] == deleteNum) { // deleteNumで指定した要素を0にする
num[i] = 0;
}
}
}
void piyo(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
}
}
void hogera(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
num[i] *= deleteNum != num[i]; // deleteNumで指定した要素を消す
}
}
↑を #include <stdio.h>
#include <stdlib.h>
#include <time.h>
void __attribute__((noinline)) bench(const char* name, void (*func)(int, int[], int))
{
const int n = 100000000;
int* a = calloc(n, sizeof(int));
if (a) {
for (int i = 0; i < n; i++) {
a[i] = rand() % 2;
}
clock_t s = clock();
func(n, a, 0);
double t = (double)(clock() - s) / CLOCKS_PER_SEC;
printf("%s:\t%f\n", name, t);
free(a);
}
}
int main(void)
{
bench("hoge", hoge);
bench("piyo", piyo);
bench("hogera", hogera);
}
↑で測定した。 gcc 12.2.0に-O2を指定
hoge: 0.279982
piyo: 0.059988
hogera: 0.051996
https://wandbox.org/permlink/cLGAj1OcfqmjdJeZ
clang 15.0.7に-O2を指定
hoge: 0.283996
piyo: 0.036019
hogera: 0.028001
https://wandbox.org/permlink/jEA3G3XMSKeCUKbZ
clang 15.0.7に-O2 -march=nativeを指定
hoge: 0.028001
piyo: 0.028001
hogera: 0.027980
https://wandbox.org/permlink/cMJSCT2nnvyhpSpD gccとclangの両方で最適化指示に-O2だけを指定した場合にhogeの結果が極端に悪いのは
・条件分岐命令が生成されている
・配列の内容をrand()で生成しているため分岐予測が外れまくる
ことが原因と思われる。
clangに-O2 -march=nativeを指定した場合にhogeの結果が他と変わらなくなったのは恐らくはAVX命令が使用され条件分岐がなくなったため。
試しに-O2 -mavx2を指定しても
hoge: 0.028001
piyo: 0.028002
hogera: 0.028002
https://wandbox.org/permlink/XqiQgGEs1BZJmpmp
変わらない結果となった。 別スレ立ててそこでやって
リンク貼っていいから
Qiitaと関係なくてスレチだし
元の記事はQiitaから削除されて存在しない
1つのテーマを掘り下げる目的がありそうだし
長くなりそう >>286
if文を使うと10倍遅くなるのが衝撃的だ
今後はif文を無くせる場合は無くそうと思う
if文の中で代入してるだけならコンパイラが頑張ってcmoveを使って分岐を避けてくれればいいのにね 「なんでそんな書き方するの?」
「こっちのが速いから」
「へー、どれくらい?」
「100万回実行して数msかな」
「でもここ数回しか実行されないよ?」 >>289
if文を無くせる場合はどんな場合がある?
ifがあるなら無くせないんじゃないの?
その場合を見つけたとしてこのスレで発表する?
それともこのスレを出典にする?
このスレにリンクを貼らないとif文を使うと10倍遅くなることを証明できないから 常にこんな書き方をするべきとかではなくてスループットを上げたい場合に考えられる手段の一つ、くらいの話だと思うんだが顔真っ赤にして否定してる奴なんなの 処理系やプロセッサ依存のソースを書く時代は終わったんだよ顔真っ赤なおじいちゃん
何度も言われてるようにここじゃなくQiitaに記事書きなよw > 処理系やプロセッサ依存のソースを書く時代は終わったんだよ
組み込みとか念頭にない人は世の中が単純に見えて幸せそうですね。 組み込みの現場も知らない癖に何をイキッてるんだ無職くんはw
いいから記事を書きなよ
そしたらここで話題にしてもいいからさ
スレ違いってわかる? >>292
if文を無くせる場合があるというのが>>253の記事
そしてif文を無くした方が10倍速くなる場合を示してくれたのが>>286の測定
何がトレードオフになっているかというと
if文があるとCPUは条件分岐によるパイプラインの乱れのペナルティを喰らう
if文がないとCPUは条件に関わらず同じ命令群を実行する (=条件の片方では無意味なことをする可能性がある)
したがってif文を無くせる場合はまず大雑把に言うとif文の(条件部ではなく)実行部がある程度短く実行サイクルも短いこと
例えば軽い数値の演算やその代入などならばif文を無くせる場合に合致することが多いだろう プロセッサに依存していいならどう最適化されるか決まってないCよりアセンブラ使う方が確実だぞ 終わった記事に関してウダウダと
そんなんだからいつまで経っても独り身なんだぞ >>299
CMOV命令はintelにもamdにもあるから一般的な環境でプロセッサ依存ではないですよね
もしCMOVがない特殊な環境でも条件フラグをレジスタに入れる命令があればそれが使われて大丈夫ですね
gccとclangどちらでも速くなったようだからコンパイラ処理系依存のテクニックではなさそう
C言語だけでなくRustでも同じ生成コードとなったから言語に依存したテクニックでもなさそう >>298
> if文を無くせる場合があるというのが253の記事
記事にあるif文を無くせる場合はこれ1つだけ
if (num==1) { num=0 } else { num=1 }
↓
num = !(bool)num
他の読者のために書いてあげる
機会が非常に少なくて残念!!
レスの後半部分は間違ってる if文の高速化が検索したら
ifとswitchで迷ったらswitchを使う
IF K=6 THEN X=X+1→X=X-(K=6)
が出てきてif文の高速化は有名な話だったようだ
補足訂正 >>302
プログラムも読めないのか
そんなバカが必死に否定してたのか
記事以外にもこのスレで他のコード例やコンパイラによるその生成アセンブラも出ている
さらにベンチマーク比較で大きく速度向上まで結果が出ている
この状況で必死に否定し続けるのはみっともないぜ 記事読んでも組み込みなんて限定はないな
必死に否定してるバカが勝手に組み込みの話と思い込んでいるのか なんでそんなに必死なのか知らんけどここまで言われても記事を書こうとしないのは自分が間違ってることを薄々でもわかってるんだろ?w
無理すんな無職 >>307
if文を無くす高速化の話は昔から有名かつ実用なので記事なんていくらでもあるよ
自分で検索してごらん > 記事を書こうとしないのは
日本の技術力の底上げのために
検索結果の健全化のために
クソ記事書くのはもうやめてクレメンス
お願いですから書くのやめてクレメンス
書かないことでみんなが助かる
書かないことでみんなが嬉しい
わかってクレメンス
クソ記事書いてはいけないと
正常な人間ははじめから知っているんです クソ記事は批判して良いと思うが
クソ記事に対する批判がみんなのためになるのなら賛成
ただ暇でやってるだけならもうちょっと時間を有効に使えと言いたい if文をなくすのが高速化に繋がってると解釈してる人がいるようなので補足。
>>286の投稿でhogeの結果が極端に悪いのは条件分岐命令が生成されていることが原因だが条件分岐命令が生成されているのはif文を使用しているからではない。条件によってメモリへの書き込みが行われたり行われなかったりするロジックのためである。
試しにhoge()の実装を
void hoge(int n, int num[n], int deleteNum)
{
for (int i = 0; i < n; i++) {
int x = num[i];
if (x == deleteNum) { // deleteNumで指定した要素を0にする
x = 0;
}
num[i] = x;
}
}
内容が変わろうが変わるまいが常にメモリへの書き込みが行われるよう変更したらどうなるか。 gcc 12.2.0に-O2を指定
hoge: 0.044001
piyo: 0.060001
hogera: 0.052001
https://wandbox.org/permlink/Na7RxYGEttdpuCnR
clang 15.0.7に-O2を指定
hoge: 0.032001
piyo: 0.032002
hogera: 0.031992
https://wandbox.org/permlink/1FZCQD2WsnbvifWw
hoge()の実行時間はpiyo()やhogera()と大差なくなる。
if文の使用がhoge()が遅かった原因ではない。 Qiitaアカウント持ってないからここでウダウダコメントするしかない雑魚w > Qiitaアカウント持ってない
つまりそれは
正常な思考力を持ってるってこと > 不愉快
彼らに不愉快という概念はないぞ
クソを食い
クソを出し
周囲をクソまみれにしても
そのとき
むしろ笑顔だから >>315
以前「キモッ」だけのコメントをQiitaでしたことあるが、運営から「削除しろ。しなければ垢バンまである」というメールがきたw >>321
草で済まない
ここでも言うべきでない
開示請求して制裁するように日本社会が変化
法律上は不特定多数に言うのがアウト
ここの発言は必然的に不特定多数
どうしても言いたいなら少数の友人だけに言えばいい >>322
>>297の記事のコメント欄を見てから言ってもらおうか
運営からメールが来るのは運営に不都合なことを書いた人だけだよ
キモッとコメントするような記事を書いたのが関係者だったというだけ > 運営からメールが来るのは運営に不都合なことを書いた人だけだよ
運営に不都合関係なくユーザーからの報告がある程度以上あると運営からコメントを直せってメールくるよ。
若年者や女性が書いたという体(てい)の記事に絶賛のコメントが多数付いてるところに水差すようなコメント書いて運営からメール貰ったこと何回かあるわ。
運営に自分の投稿したコメントのどこが問題なのか尋ねても「多数の苦情が来てるのだからお前のコメントが悪い」と埒が明かぬ。運営が苦情の数を気にして機械的に対応してることは確かだと思われる。 >>324
苦情の数だと思ってるところが素直というか騙されやすいというか
そんなんお前だから届いたんだぞ
ゆめみ社員のコメントならどんだけ苦情が届こうがガン無視だ >>325と>>323は同一人物?
騙されやすいことを批判してるが騙されやすいのはおまえだろとつっこみたい
「ゆめみ社員のコメントならどんだけ苦情が届こうがガン無視」も「キモッとコメントするような記事を書いたのが関係者だったというだけ」も陰謀論だから
陰謀論を言うことが騙されてる 苦情の数の話はその人の体験談で話が具体的で信じられる
創作の可能性もあるがそこまで疑わないぞ
運営にメールで尋ねたなどの体験談はwelcomeで書いてほしい
welcomeなレスに騙されやすいなどとくだらない批判をいれるべきでない
何を言いたいかと言うと話の構造が根本的に違うだろと >>327
ツイッターに名前とか自己紹介が書いてある
30で起業するらしい
炎上商法
何かでかいことをやりそうで期待しかないw >>326
自分で苦情入れてみりゃすぐわかること
大きなorganizationのクソコメントはどれだけクソでも削除されることはない >>330
おまえはずれてるんだよ
おまえが正しいと思う内容を世間一般が正しくないと思う と思いたいんだなw
だからやってみればわかると言ってるのにw
https://qiita.com/youwht
こいつが組織票でトレンドに載ってることをバラした記事があったのでこいつを通報したら逆にその記事が消えたのをどう説明するんだよw >>332
youwhtで前スレ1から3を検索したが1つもレスがない
話すまでもないというのがQiitaスレの共通認識
説明しようにも何を言ってるのかわからん
陰謀論って早く忘れたほうがいい
いつまでも引きずるのが精神衛生上良くない
起きたときにスレに投稿すべきだった >>333
他の記事やコメント含めてそれだけ徹底的に消されたってことだよw
一時期話題になってたから知ってるやつに聞けよ
こいつの組織票はえげつなかったぞ
なにせqiitaを読みもしないまるで関係ない職場の人間に大量にアカウント作らせて記事をアップすると同時にそいつらに一斉送信していいねさせてたことを自白してたからな
そのいいねの付き方があまりに不自然すぎることに気づいたやつが計測して記事にしたところ数日して削除されて今は痕跡も残ってない
こんな話はその辺にゴロゴロしてるが何せこんなふうに証拠隠滅してるからな あとスレに関してはこのスレのできる前の出来事だから話題になってないのは当然だ https://www.google.com/search?q=youwht%20site%3Amegalodon.jp
魚拓にyouwhtが無いのも不思議だろ?
あれだけ人気記事書いて本も書いて人気ソフト作ってテレビにも出演してるのに一切アーカイブされてないんだぜ?
そんなことあり得ると思う?
答えは一つ
消したんだよ > 魚拓にyouwhtが無いのも不思議だろ?
別に不思議はないなあ。
> あれだけ人気記事書いて本も書いて人気ソフト作ってテレビにも出演してるのに一切アーカイブされてないんだぜ?
> そんなことあり得ると思う?
魚拓取られるのってやらかした奴の証拠保全が目的だからなあ、人気記事たくさん書いてる人気者なら問題行動起こす可能性も低そうだし魚拓取られる機会もそうそうないんじゃないの。つか
> 答えは一つ
> 消したんだよ
妄想乙w > こいつが組織票でトレンドに載ってることをバラした記事があったのでこいつを通報したら逆にその記事が消えたのをどう説明するんだよw
妄想記事が消された以外の解釈あるかな?
つかどこの誰が書いたか正しいかもわからん記事が「あった」というだけで通報って大分イカれてるぞ 妄想ブーメランで火消しに必死になってるのは本人なんだろうなあ いつでも本人がいると思うのは都合が良すぎる
病気なんだろうなあ
精神病棟で隔離されてそう まあこれだけ発狂してたらそりゃ本人かくらい言われるだろ
みんな知ってる事件なんだし 精神病棟とか3人とか妄想がきっついな
こういうのって大概自分が言われなれてることを言うんだよな カタカタ
|| ̄ Λ_Λ
||_(Д`; ) 「なに?このスレ・・・」
\⊂´ )
( ┳' qiitaのスレということがわかってないやつが病棟から常駐してるな
自説の主張を話題にしたいなら記事書けと何度も言われてるのに ナイーブな再帰フィボナッチでマイクロベンチマーク
https://qiita.com/Nabetani/items/19ea2d3f8c18d862497f
> もともと
> https://qiita.com/fsdg-adachi_h/items/5feeda2ed19f879fdf9a
> という URL で公開されていた記事に
> > int の長さが処理系によって違うので公平じゃないかもしれません。
> > それと
> > > ネイティブコンパイルの優位性
> > とありますが、Go が Java に負けてますね。
> > int の長さの影響かもしれません。
> というコメントを書いたら、その記事は削除されて。
> 同じ方が、全く同じような内容で
> C++ はどれくらい速いのか?:フィボナッチ数列の演算で比較してみる - Qiita
> https://qiita.com/fsdg-adachi_h/items/c54135cf0a562019295c
> という記事を公開されて。
> なぜか私はコメントできない(ブロックされてるのかな)ようなので、コメントで書きたかった追加情報に関する記事を書こうと思った。
まとめると、
・コメントしたらブロックされた
・コメントされたことをなかったことにしたいのか元記事は削除、同じ内容で再投稿
で、
> C++ はどれくらい速いのか?:フィボナッチ数列の演算で比較してみる - Qiita
> https://qiita.com/fsdg-adachi_h/items/c54135cf0a562019295c
見に行ったらこっちも既に削除済みw 誰かコメントしたんだろうなw
新記事が↓らしい。
C++ はどれくらい速いのか?:フィボナッチ数列の演算で比較してみる
https://qiita.com/fsdg-adachi_h/items/74764a835be31c1e73c6
どうでもいい内容の記事だったけど、タイトルのC++はg++じゃね? 言語じゃなくて処理系の話してるよね? くらいは誰でも言いそうになると思う罠。 >>348
その最後の記事
CとRustで速さ約2倍は明らかにおかしいので
手元で実行してみたらCとRustは同じ速さとなった
CとRustのこの種のベンチマークで2倍差となったのを見たことがない
少なくとも今回のような類いのコードならば同じ速さとなっている
今回よほど何か特殊な環境下で実行計測しているのか
あるいは記事が間違っているのか 間違ってない
(非線形)再帰に関してはgcc/g++の最適化が進んでいる GOに関してもtinygoを使えばLLVMの速度がでると思われる 実名だけでなく会社名も晒してるけど問題ないのか?
誰もレビューしてないのかしら >>350
やってみた
その指摘は正しいようだ
ただしこちらも正しいという結果になった
速さの結果
Rust = C (gcc) > C (clang)
これによりRustがLLVMに渡す前にその最適化しているっぽいな >>353
Rust=C(gcc)は再現しない
gcc 13.2.0
rustc 1.71.1
gcc -o fibonacci_c fibonacci.c -O2
time ./fibonacci_c
Result: 701408733
Time: 0.00069 seconds <-- time関数が別物(1/1000)
real 0m0.774s <--コマンド実時間
clang -o fibonacci_clang fibonacci.c -O2
time ./fibonacci_clang
Result: 701408733
Time: 0.00157 seconds
real 0m1.592s
rustc -C opt-level=2 -o fibonacci_rs fibonacci.rs
time ./fibonacci_rs
Result: 701408733
Time: 1.55644 seconds
real 0m1.641s GOROOT=... tinygo build -opt=2 -o fibonacci_tinygo
time ./fibonacci_tinygo
Result: 701408733
Time: 1.55111 seconds
real 0m1.626s
LLVM(Clang/Rust/tinygo)=1.55s
GCC=0.7s
以上 >>353
(室温超伝導)サンプルの提出をお願いします
>>350,354
スルーか一言で済ませて、余計な知恵を付けさすな こちらでも Rust(rustc)=C(gcc)>>>C(clang) となった
gccとrustcが同じ最適化をしてると思われる
確認のためLLVM IRを吐くrustcとclangでどのようにコードが異なるか調べてみた
まずclangによるLLVM IR生成
$ clang -S -emit-llvm -O2 -o fibonacci_cl.ll fibonacci.c
そのうちfibonacci()関数部分を抜粋すると以下のコードとなった
; Function Attrs: nounwind readnone uwtable
define dso_local i32 @fibonacci(i32 %0) local_unnamed_addr #0 {
%2 = icmp ult i32 %0, 2
br i1 %2, label %9, label %3
3: ; preds = %1
%4 = add nsw i32 %0, -2
%5 = tail call i32 @fibonacci(i32 %4)
%6 = add nsw i32 %0, -1
%7 = tail call i32 @fibonacci(i32 %6)
%8 = add nsw i32 %7, %5
ret i32 %8
9: ; preds = %1
ret i32 %0
}
元のCコードそのままでnが2未満すなわち0と1の時はそのまま返して
それ以外は fibonacci(n-2) + fibonacci(n-1) を返している
最適化をしていないのでclangがgccよりも遅いのはこれで納得 次にrustcによるLLVM IR生成
$ rustc -C opt-level=2 --emit llvm-ir -o fibonacci_rs.ll fibonacci.rs
そのうちfibonacci()関数部分を抜粋すると以下のコードとなった
; fibonacci::fibonacci
; Function Attrs: nofree nosync nounwind nonlazybind memory(none) uwtable
define internal fastcc noundef i32 @_ZN9fibonacci9fibonacci17h1af4b62ef57b502cE(i32 noundef %n) unnamed_addr #4 {
start:
%switch1 = icmp ult i32 %n, 2
br i1 %switch1, label %bb8, label %bb5
bb5: ; preds = %start, %bb5
%n.tr3 = phi i32 [ %_7, %bb5 ], [ %n, %start ]
%accumulator.tr2 = phi i32 [ %0, %bb5 ], [ 0, %start ]
%_5 = add i32 %n.tr3, -2
; call fibonacci::fibonacci
%_4 = tail call fastcc noundef i32 @_ZN9fibonacci9fibonacci17h1af4b62ef57b502cE(i32 noundef %_5)
%_7 = add i32 %n.tr3, -1
%0 = add i32 %_4, %accumulator.tr2
%switch = icmp ult i32 %_7, 2
br i1 %switch, label %bb8, label %bb5
bb8: ; preds = %bb5, %start
%accumulator.tr.lcssa = phi i32 [ 0, %start ], [ %0, %bb5 ]
%n.tr.lcssa = phi i32 [ %n, %start ], [ 1, %bb5 ]
%accumulator.ret.tr = add i32 %n.tr.lcssa, %accumulator.tr.lcssa
ret i32 %accumulator.ret.tr
}
clangの場合>>357とは異なり「call」によるfibonacci()呼び出しが一つとなり最適化されている ちなみに>>358のRustコンパイラが吐いたLLVM IRのコードを
見やすくC言語に翻訳するとこういうコードになっている
(このコードはLLVM自体による最適化をする前であることに注意)
int fibonacci(int n) {
if (n < 2) {
return n;
}
int f = 0;
while (1) {
f += fibonacci(n - 2);
n = n - 1;
if (n < 2) {
return f + 1;
}
}
}
これはgccが吐いたアセンブラコードと同じ構造であり
rustcとgccは同様の最適化をしていることがわかる
したがって実測結果の Rust(rustc)=C(gcc)>>>C(clang) が生成コードによっても裏付けられた
結論「同様の最適化をしているRustとC(gcc)の両者が最も速い」 で、それぞれの実行時間は?
うちでは clangもrustcも>>358相当の.llを吐くけど実行したらgccより激遅い 俺のところではこうなった
>>348の記事の再帰呼び出し2つのfibonacci.rsとfibonacci.c
$ rustc -C opt-level=2 -o fibonacci_rs fibonacci.rs ; ./fibonacci_rs
Time: 1.90858 seconds
$ gcc -o fibonacci_gcc fibonacci.c -O2 ; ./fibonacci_gcc
Time: 1.90691 seconds
$ clang -o fibonacci_clang fibonacci.c -O2; ./fibonacci_clang
Time: 3.16011 seconds
>>359の再帰呼び出し1つと片方ループ化のfibonacci_opt.rsとfibonacci_opt.c
$ rustc -C opt-level=2 -o fibonacci_opt_rs fibonacci_opt.rs ; ./fibonacci_opt_rs
Time: 1.94240 seconds
$ gcc -o fibonacci_opt_gcc fibonacci_opt.c -O2 ; ./fibonacci_opt_gcc
Time: 1.92169 seconds
$ clang -o fibonacci_opt_clang fibonacci_opt.c -O2 ; ./fibonacci_opt_clang
Time: 1.94741 seconds
ループ化した最適化コードをLLVMに渡さないclangだけが遅い なんかバブルソートで同じような記事最近見たぞ
node.jsはインタプリタじゃなくてjitだろと突っ込まれてたがこっちでもインタプリタになってんな Nim 2.0.0 速すぎ
https://wandbox.org/permlink/WoYP0STRKxaRBGCY
>Time= 0.240s Result=701408733
>Time= 0.238s Result=701408733
>Time= 0.238s Result=701408733
>Time= 0.238s Result=701408733
>Time= 0.241s Result=701408733 nim.cfgファイルでwanboxのgcc 12.2.0を指定
gcc.path%="/opt/wandbox/gcc-12.2.0/bin" ローカルマシンではもっと速い
$ ./fibonacci_nim_gcc 44
Time= 0.182s Result=701408733
Time= 0.186s Result=701408733
Time= 0.188s Result=701408733
Time= 0.184s Result=701408733
Time= 0.184s Result=701408733 --cc:clangだとLLVM速度(ローカルマシン)
$ ./fibonacci_nim_clang 44
Time= 1.620s Result=701408733
Time= 1.628s Result=701408733
Time= 1.630s Result=701408733
Time= 1.674s Result=701408733
Time= 1.647s Result=701408733
Nimのトランスパイルとgccの最適化が相性が良いのかな C(gcc)よりNimが3倍も速いのか
計測方法に問題があるんしゃないか? 室温超伝導サ〇wって言われない様に真っ先にwandboxに提出したんだわ
あとclangでもNimが多少速かった(朝方とはLTOの有無が違う)
Nim 2.0.0 + clang 16.0.5
$ nim c --cc:clang --verbosity:0 -d:release -d:danger -o:fibonacci_nim_clang -u:lto fibonacci.nim
$ time ./fibonacci_nim_clang 44
Time= 1.43200s Result=701408733
Time= 1.42200s Result=701408733
Time= 1.44100s Result=701408733
Time= 1.43800s Result=701408733
Time= 1.43900s Result=701408733
real 0m7.250s
Nim 2.0.0 + clang 15.0.7
https://wandbox.org/permlink/quetpnT592ONdM2x
>Time= 1.48272s Result=701408733
生clang 15.0.7
https://wandbox.org/permlink/U97PecZYrzymnfH4
>Time=1.58712s Result=701408733
生clang 16.0.1はstack frame limitエラー?
https://wandbox.org/permlink/TXPiXPLUJ8WX3kTK
生clang HEAD(18.0.0)
https://wandbox.org/permlink/caGw8uqCS8tW0fnt
>Time=1.57598s Result=701408733 こっちもtimeコマンド付きで
Nim 2.0.0 + gcc 13.2.0
$ nim c --cc:gcc --verbosity:0 -d:release -d:danger -o:fibonacci_nim_gcc -u:lto fibonacci.nim
$ time ./fibonacci_nim_gcc 44
Time= 0.18500s Result=701408733
Time= 0.19200s Result=701408733
Time= 0.18400s Result=701408733
Time= 0.18400s Result=701408733
Time= 0.18600s Result=701408733
real 0m1.005s
これこそQiitaの面々に検証してもらいたい ループ1回にして試したらスタートアップタイムが多少大きめ(~70ms)なのが見えるけど
fibonacci関数自体は複数ループ版と整合的で、同一引数複数ループ版で何か省略している訳でもなさそう
$ time ./fibonacci_nim_gcc 44
Time= 0.18100s Result=701408733
real 0m0.252s
$ time ./fibonacci_nim_clang 44
Time= 1.43300s Result=701408733
real 0m1.505s クソ課題にクソ計測方法をまだやっているのか
NimがCより何倍も速くなったのもクソなせいだと気付かないのは愚なことだ
この課題でこの継続方法なら極論すれば0秒にできる
例えばC++ならば
constexpr int TERM = 44;
constexpr int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
} else {
return fibonacci(n - 2) + fibonacci(n - 1);
}
}
結果
Result: 701408733
Time: 0.00000 seconds
もちろん言語によって最適化や事前計算の仕様は異なる
C++はconstexpr指定が必要だが指定不要な言語もあるだろう wandboxの言語リストにはvlangは無いのか
これ見るとNimより盛り上がってる感じ
https://i.imgur.com/iyBhdxv.png 整列する時間を測る
https://qiita.com/Nabetani/items/763f689f5d4339c490c3
> 例によって私にはコメントを書くことができないのでこうして記事を書いた。
ブロックされたの根に持ってるなw >>380
このスレに書いてるのが誰か俺わかっちゃった それをみて
> ブロックされたの根に持ってるなw
っていうのが間違ってるんじゃない?
ブロックされたからこのスレに書くというのがおまえらなんだろうが
記事に書くのが正しい
スレにしか書けないダメな人間だ暗にといってるから
動揺したんだろうが
事実だろw > 調査したところ、申請フォームの不具合でした🙇💦
> 承知いたしましたー。ご回答いただきましてありがとうーーーーッございます!
ビジネスチャットの絵文字が失礼だと思うのは時代遅れ?
://www.tocaro.media/column/c479 DiscussionsでFilter:Closedにして一番上 絵文字嫌うやつってさ、slackとかteamsとか使わんの? <font color=red>$●$</font>
<table>
<caption>デフォルトの JScript エンジンの場合</caption>
<thead>
<tr><th rowspan=2 style="text-align:center;">素数</th>
<th colspan=3 style="text-align:center;">計算時間(秒)</th></tr>
HTML許したらダメだろ
もはやMDじゃない >>393
本質とは?
意味不明なレス
分かるようにレスしてくれないと話が続かない
質問してほしいの? >>392が本質だと思っている相当残念な〇〇〇〇信者かライバルQiita投稿者だな
低レイア、組み込み畑でポエム組織票してるのかな >>396
ちがう
QiitaがMarkdownを独自拡張してHTMLで書けるようにしたのがケシカランてこと
MDのシンプルさが好きだからHTMLのごちゃごちゃしたのをみてケシカランと思った 同じ社内やチーム内なら保守性考えて同じ書き方で統一しようってのは分かるけどQiitaなら各人好きな書き方で良くね?
目的はマークダウンで記事書くことじゃねんだしさあ。 > 本質分かってないな、突っ込み所はそこじゃないだろ
↑ツッコミのひとつもできない無能馬鹿 MD原理主義者はこれだから困る😅
多くの人がMDの基本的書式だと物足りないと感じてるのに、時代についていけないんだねえ QiitaのおかしなMD拡張書式を他でも(GitHub)使えるの?
使えないなら狭い集団がオナニーしてるだけだしGitHubで使えるようにしろという人は誰もいない 他でも使いたいなら他でも使える書式で書けば良いだけ。 【ChatGPT無】ねぇねぇ、アセンブラって知っている?
https://qiita.com/kabumira/items/2fa85b8ec8e94593eefd
明らかにアセンブラ知らん人がこういうタイトルの記事を投稿してしまうのはなんでなんかな? ChatGPT無って書いてんのにChatGPT使ってんじゃんと思ったら、ChatGPT無料版のことを指してたのね
独自略称怖いわー ChatGPT無→ChatGPT無修正
ChatGPT流→ChatGPT流出 > 「なぜ人は笑うのか?」を解明する研究が発表
> これらユーモアの理論では「驚き」「常識からの逸脱」「他人に対する優越感(嘲笑)」「解釈の不一致」「無害さ」の5要素が、人間を笑わせる要因であることが示されています。
> ://nazology.net/archives/115386
いや笑いの要素があるだろ 精神性や人間性が最悪だね
ほとんどのレスはつまらないわけで、そのような一つ一つについて、わざわざつまらないと言うのが最悪
マイナス思考で気分が悪い >>407
>> これらユーモアの理論では「驚き」「常識からの逸脱」「他人に対する優越感(嘲笑)」「解釈の不一致」「無害さ」の5要素が
馬鹿がバレてるというかレスから馬鹿が溢れ出してるときは「他人に対する優越感」にあたるのか >>411
ここも
https://qiita.com/kakisaba/items/0695f98bae9ceae11535
基準が明確でないのもその通りだし
どこにでもあるコードがuploadされてるだけでAIがそれをコピペするかも知れないし
結局出題側はAIが解けない問題を出す工夫が必要なのはその通り
まあそれでもよほどひどい壮大なコピペを提出したのかも知れないし
運営側が判断基準を明確に出さない以上水掛け論 >そうすれば企業側で疑いのあるユーザーには対面のコーディングテストを実施するなど対策可能です。
企業はそれが面倒だからpaizaに丸投げしてるんだろ
>転職サービスの利用時になって初めて「不正受験があったかもしれないので、転職サービスは利用禁止です!」と言われるのは、転職のためにPaizaを利用していた人の場合は辛いです。それならもっと早く言ってくれと感じます。
自白してるやん paizaのBとかAをchatGPTに頼るレベルって戦力としてどのくらいなの? l_i_t_e(邪魔という方は左記をNGお願いします)
友人に教えて、加えて¥4000を入手できます
https://i.imgur.com/CgKTJLE.jpg > 被害者父「(掲示板のやり取りで)女性監督(本人が書き込んでいる)と確信したと言っていたが、ひっかけられている(なりすまし)と思ったことは」
> 被告「2ちゃんの用語で『あおる』、つまり『あなた本人ですよね』という書き込みをすると(本人の場合)恥ずかしさから流す態度を取る。(あおりに対してそのような態度だったので)女性監督で間違いない」
> https://news.livedoor.com/article/detail/25025820/
このスレに青葉予備軍がいる
ピンとこない人はこのスレを「本人」で検索してみよう
このニュースはいろんなとこでスレが立っている 三重投稿してしまった俺も大概だなあ >イタい奴すぎ tail知らないならそうなるやろ
言語の全命令、書式等全て知ってるのは、進化しない旧言語にしか関わってないやつとか、ある言語ばかりやってる(しか知らない、他に使えない)やつぐらいなもん
IT業界にいて5ch不具合程度で3発はイタかったな > tail知らないならそうなるやろ
ん? tail肯定派? > tail知らないならそうなるやろ
tailは記事主がコメント欄で指摘されてネタでしたと苦しい弁明してるところでのこのコメントはその上を行く馬鹿だなw >>432
あら?日本語わかってないバカが絡んできたわw
PHP知らなくても
(tailが使えて/使えるとして)tail知らないならそう(tail使わない処理に)なるやろ
って書く/書けるのよね
省略を想像できないバカの典型例だね
(省略使ってバカを炙り出すこともできちゃうのよw)
「tail使えるの知らねーのかよ」とは違うの
マウント取ったつもりで更に上行くバカ晒しちゃったねw シェルスクリプト以外で外部コマンド呼ぶのはアホのすることだし「tail知らないなら」って意味不明。
つか「tail知らないなら」って仮定もアホ杉w >>428
Qiita週間コメント数ランキングで1位になってる記事
本文は4行だけだがかきたてるせいか(園児でも読めるためか)コメント欄でレスバ
exec(tail)に
exec()は使っちゃいけない
file()は脳死
ひろゆきが「ネタはネタであると見抜ける人でないと難しい」や
ナウシカがウシアブに「森へお帰り 大丈夫 飛べるわ」とぶちギレ
運営に報告しても対処に困るだろうな
これをどうしろとw コメント数ランキングなんて見ないわーアホ馬鹿釣りコメント多すぎて >>436 が仕事無くて暇だということだけは伝わった CPUバウンドの場合のFlowによる並列処理の有効事例〜1024バイトの強固な暗号鍵を生成してBase32でエンコード
https://qiita.com/zacky1972/items/fc317a7aa4a132a33ef3
がんばれ准教授 准教授のお仲間の福岡Elixirコミュの人たちは「いいね」つけるだけで記事読んでないか読んでても間違いにはプークスクスしてるだけかな。
それに比べりゃ随分親切よね >ノゾミちゃん トレンド記事の編集履歴見たら投稿日の1ヶ月前から編集履歴があるんだがどういうこと 記事・質問を執筆する際に、文章に誤りや修正提案がある場合はエディタ上で提案を行います。
qiita.com/release-notes/2023-10-30 Python の「リスト内包表記」をめちゃくちゃ活用する
https://qiita.com/zuisho-1848/items/f3a325305672ed6b135b
こーいうニワカ感丸出しの記事はコメント欄がにぎやかで良いなあ。 そうか?
いつものアレげなのとは違って
今回のはコメントしてる方が馬鹿っぽく観える 東大生が書いてるからケチつけたくなるのはわかるけどねー
みんな大人じゃないんだねー リスト内包表記の良い点として「可読性が高いから」を挙げてるのが馬鹿っぽいな東大なのに。 > (ネストしすぎなければ、)
> (慣れるまでは読みづらいですが。。)
知能の高いであろう本人も可読性高いなんて思ってないんじゃないか? 残るメリットは高速に実行されるだが
遅すぎる言語Pythonでリスト内包表記が速いとかnumpyならもっと速いとか井の中の蛙になってしまう
それらの速さを実現しているCやC++が速いという結論 リスト内包表記のメリットとデメリット理解して適切に使いどころを判断するってのじゃなくて、知ったばかりのリスト内包表記をとにかく使えば
・速い
・短くなる
・読み易い
と説明してる記事なのでニワカという感想は間違ってないと思うけど>>449は相手が東大ってだけで平伏しちゃった人かな 東大くんおかしな編集して早速ツッコまれてるけど
・東大と聞いて皆が期待するほどには頭良くなかった
・優秀過ぎて世の中舐めてるので確認なんかしない
どっちだろう? 東大くんおかしな編集して早速ツッコまれてるけど
・東大と聞いて皆が期待するほどには頭良くなかった
・優秀過ぎて世の中舐めてるので確認なんかしない
どっちだろう? 人が増えてゴミサイトになった
あと人気がある記事は組織内でいいねしてるだけとか Qiita週間コメント数ランキング【自動更新】
に2つしかコメントがない
12月1日スタートのアドベントカレンダの準備中? for you で創作なら元は for i じゃなくて for me だしな
京大の講師の創作だとしてもレベルが低い Javaで足し算を「作る」
https://webcache.googleusercontent.com/search?q=cache:Vff-pfiGnRoJ:https://qiita.com/sorek/items/434951acad577227b16f
ユニークな言語 C
https://webcache.googleusercontent.com/search?q=cache:xC_A4dFG52wJ:https://qiita.com/sorek/items/6bdafe821b0090bb7a61
本日の日付で記事を2本投稿してIDごと削除した人。
酷評されてたわけでもないのに何がしたいんだかさっぱりわからん。 いかがでしたか使う記事がまともなわけないので
自発的に削除してくれて助かる Cはヤバいよ
Qittaで最もコメントする人の主戦場
ID削除したくらいで晒すほうがおかしい
新人に上からコメントできなくて残念だったねw >>462
Javaの方の最初の方しか見てないけど、脳トレみたいでオモロイやん Cの方見て思い出したことが…
(古すぎるしあまり詳しくないので間違ってるとこあるかもだが勘弁)
昔々日本語BASIC?というものがあって ifを「もし」(だっけ…)と書けたのよ
その頃新人研修で一緒になったコンピュータ全くわからない文系の奴が「命令英語じゃなくて日本語で書けたらいいのに。女子高生バージョンとか。もしも~、xxだったら~とか」(語尾伸ばすとこまでが命令文w)って言ったの思い出したw
もしそんなのあったら、別の方面の人がプログラミング詳しくなってたかもなと懐かしく思った次第w
(回顧録でした) N88-日本語BASIC(86)
88なのか86なのか98なのか分かりづらい C言語の記事マクロ使わなくてもtypedefと関数ポインタ、ラッパーを使えばできるんで
#include <stdio.h>
int good_morning();
int main(void) {good_morning();}
typedef int your_dog;
int (*he_said)(const char*, ...) = printf;
int (*bye)(void) = getchar;
your_dog good_morning()
{
your_dog num = 10;
he_said("%d", num);
bye();
}
//出力: 10
https://wandbox.org/permlink/W48WIxijdw4Evg0q
あれ?これC言語じゃなくても良くね?と思ったんだが、
your_dog good_morning()
{
your_dog num = 10;
he_said("%d", num);
bye();
}
your_dogが整数型としてyour_dog型の関数の最後にreturn 式; がなくても許されるのはC言語くらいか。
その点で良くできてる記事だなと感心した。削除は勿体ないな。 JavaとCの記事同じ日に公開して優秀アピールするつもりが
C言語の記事にたしか編集リクエストが3件くらいついてて
コメント欄にも間違いの指摘があってそれで心が折れちゃったんじゃないかなあ。 >>467
ぴゅう太
JR-100 か JR-200 か
型番あった希ガス あー JR-100 と JR-200 は普通か
日本語はぴゅう太だけか
最近のだと
織田信長
とか
なでしこ
とかなかったか ttps://qiita.com/zuisho-1848/items/f3a325305672ed6b135b#comment-7003b848cf55c8fe6c53
> 東大生,頑張ってね。
イヤミか貴様 まあ同時ゼロスタートなら、一般人は東大脳には負けちゃうからね
フライングスタートとか後出しジャンケンとかじゃないと勝てないから、今のうちに言っとかないとな悲しいヤツもいるだろう 東大生は一般人からは尊敬され感心される存在であり馬鹿にされるものであってはならないのでニワカ丸出しのリスト内包表記の記事なんて書いて公開はして欲しくなかった。 h ttps://qiita.com/kt-52/items/57918165d006b366326a#comment-e91e2c9c71f26f488b23
> これ本気で言われてるのでしょうか?
辛辣 >>477
無理やりfizzbuzzで説明してるんだろうから
そこ突っ込むの可愛そうやなw
呼び出し順序もパラメータ化したらこんな感じかな?
何れにせよ必要以上に大仰でいかにもJavaって感じだけど
https://ideone.com/qsLqv0
import java.util.function.*;
public class Main {
public static void main(String[] args) {
IntFunction<String>[] fs = new IntFunction[]{
i -> i % 15 == 0 ? "FizzBuzz" : null
, i -> i % 3 == 0 ? "Fizz" : null
, i -> i % 5 == 0 ? "Buzz" : null
, i -> String.valueOf(i)
};
doFizzBuzz(fs);
}
public static void doFizzBuzz(IntFunction<String>[] fs) {
String s;
for (var i = 1; i <= 100; i++) {
for (IntFunction<String> f : fs) {
if ((s = f.apply(i)) != null) {
System.out.println(s);
break;
}
}
}
}
} 東大の学生さんが皆コンピュータサイエンスの素養があるとも限らないのでおかしなこと言ってるなら普通に叩いて良いんじゃないかね。 東大に過剰反応し過ぎなんよ
高卒かよ
すまん
もしかして厨房だったか C言語/C++入門のための基本文法、基礎知識の備忘録
https://qiita.com/ado_c/items/3f30a43c1e2f3f89e5e9
初心者が半端な知識で長文書いちゃったような記事。
既に誤りの指摘も付いてるけどまだまだ指摘もされそう。
対応は途中で面倒くさくなって放棄するのを予想する。 >>485
初心者はどうでもいいわ
適宜経過報告でもしてくれ >>485
備忘録な訳だし初心者だって言ってるし
>誤解、誤植などがあればコメントなどで指摘していただけるとありがたく思います。
まで描いてあるんだから別に良いんじゃね >>485
誰を対象にしてるのかよくわかんないな
この記事が読めるやつはもっと信頼できる物を読むんじゃね >>487
備忘録を公開するのはデマを広めてるのと同じでほんと迷惑
ChatGPTもQiitaを参考に嘘を言ったりするし ttps://qiita.com/ado_c/items/3f30a43c1e2f3f89e5e9#comment-665ee3eed5cc3cebce29
> 時間のある時に修正させていただきたいと思います。
訳「メンドくせーな修正なんかするかよ馬鹿」 >>490
ChatGPTが何を言ったって?
Qiitaを参考に嘘を言ったことがわかったなら
それをQiitaの記事にすべき >>490
いまだにChatGPTの言うことホントだと信じてる人がこのスレッドにいることが驚きだよ なんで初心者すぐCの記事書いてしまうん?
クソ記事を誰に何のために読ませるのか?
不正確で不完全でまとまりのないクソ駄文
思い込み独自解釈まみれで人類の害にしかならん
でもそれがキー太の目指す世界
初心者がクソして
ほかの初心者に食わせる
ムカデ人間と同レベルの病的な世界 言うほどクソ記事じゃないし不正確じゃないよな。
アウトプットできてる人に嫉妬してる無能が呪詛吐いてるだけ。 ホンソレ
苦言吐くなら「代わりにオレのこの記事読め」とか付け加えろよと
腐すだけはただの園児
間違いは記事にコメしとけばいいだけ 初心者が書いた記事という紹介でリンクが貼られたんだが?
なんで読むの?
1点から100点まで記事があるわけで
100点の記事だけを紹介してくれ Cの記事がQiita週間コメント数ランキング1位だw 5chの初心者スレや質問スレと同じで
レベル低い話題ほど盛り上がる
Qiitaのコメントもしかり >>494
初心者が騙されることを心配してるようにしか見えなかったが、ここまで日本語がわからない人がこのスレにいることが驚きだよw >>497
> 間違いは記事にコメしとけばいいだけ
最初からクソ記事を書かなければいいだけ
たったそれだけ https://qiita.com/ado_c/items/3f30a43c1e2f3f89e5e9
> はじめてのプログラミングでわからないことはChatGPTに聞くか、
やはりクソ記事だなあ。
記事中でもどれだけ信用して良いかわからんクソページからの引用箇所でコメント欄で指摘もされてるけど、この手の「情報の信頼性に全く気を払わない人」って自らもクソ情報を垂れ流してしまう害悪なんよなあ。 コメント欄で頂いた内容を元に記事を書き直すのは面倒くさいのか
コピペで済ましてるけど両論併記みたいに見えるの悪質だなあ。
まちがって記事を読んでしまう人のこと考えてないな。 インターネットなんて嘘ばかりなんだから、騙される奴が悪いだろw
ここは自治厨が多いですなぁ 有能な怠け者は指揮官にせよ
有能な働き者は参謀に向いている
無能な怠け者は連絡将校か下級兵士が務まる
無能な働き者は銃殺するしかない
せっせとクソ記事を量産する無能な働き者 C++でヘッダーに実装を書くな(諸説あり)
h ttps://cc.bingj.com/cache.aspx?q=qiita&d=120524349134&w=s-WbURwBgWI_I45Vm3P9OZzYfsilY38y
ツッコミどころの多い記事だなあと思ってたら削除されてた。 ネタ記事なら投稿した人は反応を期待してると思うので 投稿→すぐ削除 はしないんじゃないかなあ。
やべっ滑ったと思って削除はまあ有り得るか。
諸説ありは予防線張ってるだけだと思う。 予防線だろうが何だろうが
よっぽどマトモだと思うわ
しれーっとウソ書くのが常態化してるキータにおいて
諸説ありを最初に書いておくってのは
正しさというものに対して誠実な態度 https://webcache.googleusercontent.com/search?q=cache:iv3SkZ1sEzAJ:https://qiita.com/folosuru/items/2c1fdf8b07cc853b4cfa
> 例えばPHPでは後々登場する関数をそれより前に呼ぶことができるが、
> 残念ながらC/C++でこれをやるとコンパイラが激怒する。
> printName(); // printDate()って何だよぶっ殺すぞ
>
> void printDate() {
> print("吉田三郎");
> }
試してみた。
#include <stdio.h>
int main()
{
printDate(); // printDate()って何だよぶっ殺すぞ
}
int printDate()
{
return puts("吉田三郎");
}
https://wandbox.org/permlink/96bfmdqpn2wpkgfH h ttps://qiita.com/ado_c/items/3f30a43c1e2f3f89e5e9#comment-665ee3eed5cc3cebce29
> 時間のある時に修正させていただきたいと思います。
とコメントした後で、
https://qiita.com/ado_c/items/3f30a43c1e2f3f89e5e9/revisions
指摘無視して記事の追記してるの笑うw >>522
それを試すならこっちだろ
https://wandbox.org/permlink/8b4GnPR9ORZcqNVx
#include <stdio.h>
int main()
{
printDate(5); // printDate()って何だよぶっ殺すぞ
}
char *printDate()
{
puts("吉田三郎");
return NULL;
}
prog.c:6:7: error: conflicting types for 'printDate'
char *printDate()
^
prog.c:4:5: note: previous implicit declaration is here
printDate(5); // printDate()って何だよぶっ殺すぞ
^
1 error generated. > 残念ながらC/C++でこれをやるとコンパイラが激怒する。
C++で試してみた。
#include <stdio.h>
class yoshida {
public:
int main()
{
printDate(5); // printDate()って何だよぶっ殺すぞ
return 0;
}
char *printDate(int)
{
puts("吉田三郎");
return NULL;
}
};
int main()
{
yoshida saburo;
saburo.main();
}
https://wandbox.org/permlink/IvFAx7oTgeUZlGOT > 残念ながらC/C++でこれをやるとコンパイラが激怒する。
擬人化してコンパイラに感情を持たせたことが興味深い
ワイはエラーを出しただけにしか見えない https://webcache.googleusercontent.com/search?q=cache:iv3SkZ1sEzAJ:https://qiita.com/folosuru/items/2c1fdf8b07cc853b4cfa
> 1. ヘッダーから実装の分離はをしなくても動く時もあるが、動かない時もある
> 2. 大規模なプロジェクトの場合、ビルドの効率化という観点を考えれば絶対した方がいい
> 3. うっかりミスを防ぐために「絶対に分離しろ」というルールを決めるのはあり
そーいうのは皆当然踏まえた上で「C++はヘッダーとソースを分けるべきだ。」とか
言ってるのだと思うけど周回遅れだなこの記事。削除して正解だわ。 初心者が書いてはいけない記事
・ポインタ
・参照渡し
・サニタイズ
・○○指向の解説 Javaの記事とか嘘多すぎてChatGPTがそれを信じて嘘を言うからな
JavaだっていうのにJavaScriptの話を始めるし配列がIterableを実装してるとか平気で言うし >>534
学習にキータは入ってるが初心者のブログは入ってないからだいたいキータのせい >>492で言ったがQiitaを参考にChatGPTが嘘を言ったことがわかったならQiita記事に書け
記事の証明がないものは統失患者の妄想でしかない 妄想とか言ってるアホはgptを使ったことがないのかそれとも全部信じてるのかどちらにしてもおめでてーな つかqiitaの検索汚染がひどいのはもはや常識だろ ChatGPTのことをいってるのになんで検索汚染のことにしてんの?
あたまがおかしい 寒色インコのクッサイクッサイうんこ記事ほんとヤメてくれ
ノイズにしかなってないんだわ
Qiita投稿にレート制限つけようや いろんな言語比較してみた
https://qiita.com/neras_1215/items/dc26a6539e7d7f1b5991
「筆者が扱える言語が少ないのでこれだけですが、おいおい増やしたいと思います」も含めて味わい深い感じw >>542
だからお前の書いた多くの良質記事を出してみろと >>545
お前それしか言わんがお前も出せないよな?w >>546
文句言うくらいなら出せるよね(出してるよね)ってだけのことよ
出せない程度でしかないからそうやって話しを逸らそうとするのがバカの典型例 「良記事を出せ」と話をそらしてる自覚がないのはヤバいな 文句言うくらいなら出せるよねってブーメランも相当ヤバいがw 異なる言語で同じ内容実装しただけなのに、どこが比較になってんの?
何を感じるかは読んだ人任せか? 異なる言語で同じ内容実装しただけで、比較になってない
何を感じるかは読んだ人任せ
でよくない?
誰かに聞いて判断してもらわないとひとりでは判断できないんだろうな
これでいいとして何が言いたいの?
これだけじゃ意味がない
何を言いたいのかがない で、何を感じたの?w
何も感じなかったから何も言えないの? 何も感じなかったらそれでよくない?
わざわざ何も感じなかったとコメントすることもないだろ
何かを感じる別の記事を探せばいい https://qiita.com/mylifewithviolin
なんか同じ記事を何度も見ると思ったら一人が同じ記事を何度も投稿してた
結局やりたいのは自分のアプリの宣伝らしい
コメントも「感銘を受けました」とかの似たような言葉遣いが多くて自演臭プンプンするんだが 何を感じるかは読んだ人任せと批判してるが
その批判が人任せでワロタ
おまえが何を感じるかをコメントすることが問題なのに人任せにしてる >>549
結局記事批判はするけど書ける頭はないっていうバカ >>543
この手の記事はもう誰も使ってないような古臭い言語をネタとしてオチに持ってくるもんだと思っていたのに当てが外れた。 突然クソ記事が連投されたんでびっくりしたんだけどアドベントカレンダーかあ、
もうそういう時期なのね。 きれいなコードを書こう 命名規則編 その1
https://qiita.com/walkerjito/items/fd64c39bb18d99479857
古臭いやり方を紹介したおじいちゃんフルボッコでかわいそう。
こういう老害は自分の実績に自信持ってて老化で頭も固くなってて頑固だし尚更かわいそう。 「自分は長年プログラミングしてきて、こうなっている感じです。」なんて書いてたんで相当なベテランさんかなと思ったのだけど
三角関数を使って円運動の軌道を変え続ける
https://qiita.com/walkerjito/items/374fc0efac4583c3ab81
> 今回、三角関数を少し勉強したので、それを記事にしたいと思います。
あれ?なんか印象違うなあ。
ベテランのつもりのそうでもない人かな? >>560
こっちの記事はハンガリアン記法じゃないんだな この人は誠実にコメントしている
コメントしたのに本質が理解されなくて噛み合わないコメントつけられてる
質問を作ればいいんじゃない?ググレとなるかもしれんがw
質問に答えてくれる優しい人がいれば答えてくれるよ
記事は質問を受けて無償の学校を開くことじゃない 円運動なんて昔のゲームでは簡単な足し算引き算でやったもんだよなぁ
微分知ってたらすぐ分かる 三角関数なんて、角度毎にテーブル作って1発計算だから ファミコンの話でもしてんのかw
ラジアン使わないとヒットテストとかめっちゃ面倒だろ >>569
度数法を使うと角度と長さや面積を変換する式が複雑になるがラジアンだとシンプルになる
だから複雑な軌道を計算したり複雑な形の衝突判定をしたりするのにラジアンを使った方が計算式が簡単になってバグが入りにくくなる 2π=360 と
2π=256 の違いでしかない
判ってない香具師は数学も算数も苦手なんだろう ちなみに OpenCV は 2π = 180 だぜ >>570
掛け算割り算ない頃にそんなことやってたら1fpsさえ出んわ
お前KYめないねってよく言われるだろw >>573
だからファミコンかよって突っ込まれてるだろ?w
大丈夫か?w > 度数法を使うと角度と長さや面積を変換する式が複雑になるがラジアンだとシンプルになる
標準の三角関数がラジアンを前提としてるだけの話では?
そんなのラッパーかますだけのことだし、1周以上回った場合の剰余を求める場合なんかは度数法の方が数字の限が良いんで度数法のほうがシンプルで誤差も考えなくて良いのでメリットあると思うよ。 >>575
だからじゃねーか
大丈夫か?日本語不自由な人or園児ちゃんw >>573
現在のCPUは割り算もサポートしているけどとても遅いので
整数の定数での割り算はコンパイラが掛け算と足し算とシフトに変換してコード生成して実行しているもんね コメントで徳丸先生が神格化されてる
「今まさに先生の著書を拝読しており、そのアウトプットとしてこのテーマを選んだ。まさか……夢かな?」という気持ちですw >>578
割り算を早くする仕組みは、コンパイラがやるにしても、CPU内で工夫するにしてもすごいと思うわ
(昔々、16bitCPUの頃に256bit浮動小数点四則演算書いた懐かしい記憶。分かる人にはわかる、これがどれだけアホなことかw) 昔話よりも今の話をしてよ
生前の今〇ジュンみたいで悲しいわ >>581
定数による割り算をコンパイラが掛け算へ置き換えるのは現在行われている技術 >>576
引数を度数法にして中でラジアンに変換するとその関数から他の関数を呼び出すときに度数法に変換して呼び出された関数内でそれをラジアンに変換することになる
最初からラジアン使えば楽なのになぜわざわざそんなことするの?w
マゾなの?w >>584
ラジアン使うほうが簡単じゃん
公式も使えるし
行列使えば一発で済むことをいちいち計算するのは虚しくならんか? > 標準の三角関数がラジアンを前提としてるだけの話では?
以上の答えが聞きたい >>586
標準の三角関数がラジアンを前提としてるのはなぜかというところから勉強したらそんなアホなことを聞かずに済むんじゃね?
その問の答えも既に書いてあることにすら気づかない知識量だからなw 三角比そのものは初等幾何なんよ
だから何の関数として捉えるのかも初等幾何で扱いやすい量をパラメータにするのよ
これで分かるよね qiitaとは関係ない話を延々と続ける人たち
qiitaに書けばいいのに >>589
qiitaと関係ある
どのように関係あるかという質問なら答えない
過去スレを読めとだけ Wikipediaのラジアンの記事(https://ja.wikipedia.org/wiki/ラジアン)には「ラジアンを用いる理由として主張される言説」に
> 以下では、しばしば主張される間違った言説について記述する。
として角度を表す単位にラジアンが必ずしも合理的でない説明が書かれてるけどこのスレでラジアン推しの人達はラジアンの使用が合理的であることを説明できるんだろうか?
俺は度数法では正確に表せられる90度のような角度が浮動小数点数では正しく表せられないラジアンはコンピュータで使用するには筋の良い方法ではないと思ってるけど。 2π=360
2π=180
2π=256
2π=128
要は何でもいい
ただの比だから #include <stdio.h>
#include <math.h>
#define PI 3.141592653589793238462643383279
int main(void)
{
double r = PI / 6;
printf("sin(%.16f) = %.16f\n", r, sin(r));
r = asin(0.5);
printf("sin(%.16f) = %.16f\n", r, sin(r));
}
https://wandbox.org/permlink/ARy4fMg7s5j6Dubo
sin(0.5235987755982988) = 0.4999999999999999
sin(0.5235987755982989) = 0.5000000000000000
ラジアン派はこーゆーの気になんないの? ラジアンの欠点を認めると負けとなってしまうので相手を非難する作戦かあ。分かりやすい奴だなあw 除算誤差なんて折り込み済みで
なるべく割り算は最後にやる様にコード組むだろjk >#define PI 3.141592653589793238462643383279
ちなみに double に↑こんな値を入れても意味無いぞ
https://ideone.com/PtQzxT
#include <stdio.h>
#include <math.h>
#define M_PI acos(-1.0)
int main(void)
{
double r = M_PI / 6;
printf("sin(%.15f) = %.15f\n", r, sin(r));
r = asin(0.5);
printf("sin(%.15f) = %.15f\n", r, sin(r));
} 度数法派がdegsin(30.0)=0.5となる度数法sin関数を(ラジアン変換や既存関数を使わずに)実装して見せないと勝負にならん きみたち円周率3.141592653589793238462643383279が無限ってことを知らないんじゃない?
円周率を介して計算するわけだから角度と三角関数のどっちかは必ず浮動小数になって丸めの問題が出る
角度と三角関数のどっちを優先するかっていうだけの話 >円周率を介して計算する
でも度数法派が円周率を介さないでdegsinを実装したら面白い >>605
きみこそ double の精度を判ってないからインチキ > きみこそ double の精度を判ってない
15桁以上の精度があること理解してない人の存在には驚いたw 「度数派はラジアン全く使わずにやれよ」とか言ってるラジアン派は、完全に別枠のバカ枠だからな
ラジアン派(度数は全く不要)
って明記して書いてね >>610
白旗宣言には早いぞ
度数派はラジアン全く使わずに「三角関数を実装」しろよ
from ラジアン派(度数は日常生活用語) >>611
オレはハナホジしながら本論は見てるだけなので
(自分での結論は既にあるが、置いといて意見を見てると)
上で書いたのは、分けて書いてくれたほうが分かりやすいから >>611
まあ、白旗宣言とかお前が園児並みに頭悪いのはわかったから「from ラジアン派(度数は日常生活用語)」は忘れずに付けといてねw >自分での結論は既にあるが、置いといて意見を見てる
ここ笑うところだろ
度数派ボッチの葛藤w >自分での結論は既にあるが、置いといて意見を見てる
自分の意見があるなら言うべき
「自分はアホです」と告白してるようなもの
長文書くあいだ誰も遮らないよ
5行ぐらいで書いてみせろ
こういうことをいうやつは自分の意見がないんだよw #include <stdio.h>
#include <math.h>
#define PI 3.141592653589793238462643383279L
typedef unsigned Degree;
double degsin(Degree r)
{
double sign = 1.0;
r %= 360 * 60 * 60;
if (r >= 180 * 60 * 60) {
r = 360 * 60 * 60 - r;
sign = -1.0;
}
if (r >= 90 * 60 * 60) {
r = 180 * 60 * 60 - r;
}
return sign * sinl(r * PI / 180 / 60 / 60);
}
Degree degasin(double y)
{
return roundl(180 * 60 * 60 * asinl(y) / PI);
}
int main(void)
{
Degree r = 180 * 60 * 60 / 6;
printf("degsin(%20.16f) = %.60f\n", (double)r / 60 / 60, degsin(r));
r = degasin(0.5);
printf("degsin(%20.16f) = %.60f\n", (double)r / 60 / 60, degsin(r));
printf("\n");
for (r = 0; r <= 360 * 60 * 60; r += 30 * 60 * 60) {
printf("degsin(%20.16f) = %.60f\n", (double)r / 60 / 60, degsin(r));
}
} 実行結果:
degsin( 30.0000000000000000) = 0.500000000000000000000000000000000000000000000000000000000000
degsin( 30.0000000000000000) = 0.500000000000000000000000000000000000000000000000000000000000
degsin( 0.0000000000000000) = 0.000000000000000000000000000000000000000000000000000000000000
degsin( 30.0000000000000000) = 0.500000000000000000000000000000000000000000000000000000000000
degsin( 60.0000000000000000) = 0.866025403784438596588302061718422919511795043945312500000000
degsin( 90.0000000000000000) = 1.000000000000000000000000000000000000000000000000000000000000
degsin(120.0000000000000000) = 0.866025403784438596588302061718422919511795043945312500000000
degsin(150.0000000000000000) = 0.500000000000000000000000000000000000000000000000000000000000
degsin(180.0000000000000000) = -0.000000000000000000000000000000000000000000000000000000000000
degsin(210.0000000000000000) = -0.500000000000000000000000000000000000000000000000000000000000
degsin(240.0000000000000000) = -0.866025403784438596588302061718422919511795043945312500000000
degsin(270.0000000000000000) = -1.000000000000000000000000000000000000000000000000000000000000
degsin(300.0000000000000000) = -0.866025403784438596588302061718422919511795043945312500000000
degsin(330.0000000000000000) = -0.500000000000000000000000000000000000000000000000000000000000
degsin(360.0000000000000000) = 0.000000000000000000000000000000000000000000000000000000000000
https://wandbox.org/permlink/9ZxTODmQNtn4Q1y6
ラジアン派は同じことラジアンでやって見せてね。 なぜそんなアホなことをしなきゃいけないんだw
各種言語のライブラリを作ってるのはたいていラジアン派だがお前のようなアホは一人もいないぞ なんちゃって度数派が裏でラジアンを使っていてニヤニヤが止まらない > なんちゃって度数派が裏でラジアンを使っていてニヤニヤが止まらない
>>576読んで理解できない馬鹿が↑ >>625
一般の周期関数テクの話とラジアンの普遍性の話を区別できないアホw 度数派 小手先の誤差低減の話
ラジアン派 数学的普遍性の話
ハナホジ 話さないけど腹案がある
噛み合わないわけだ >>629
確かに度数は全く不要と唱えた意見は無かったな
>>627
decimal型
COBOL
の事を忘れないで なんか知らんが、ゲームで必要なのは精度より速度なんだがなぁ まだやってたのか
メジャーなフレームワークや言語で採用されてるのはラジアンということを知らないやつが暴れてるのか? > メジャーなフレームワークや言語で採用されてるのはラジアンということを知らないやつが暴れてるのか?
LOGOを始めとするタートルグラフィックが度数法採用してるのも知らない人か。 >>633
度数派は面白いの持って来るw
もしかして日本語プログラミング言語を応援してる?(作者?) 日本語プログラミング言語はネタ言語以上の認識はないし興味ないよ。 関数の引数がどちらだろうと、それに合わせるだけだからな >>633
それ初心者向けのフレームワークだろ
ここにいる人はプロのプログラマだから関係ない >>597
きっちり500mになるべきなのに0.1pmもの誤差が出るのは気になるといった話か
どれくらいだったら気にならないんだろ
>>621-622にしても計算時に誤差は出てるはずだけどlong doubleで計算してdoubleに
変換することでその誤差を見えないようにしただけだよな
見えなくなれば気にならなくなるのかな >>644
結局ラジアン派(度数は全く不要)は
ここら >>583 で吠えてたやつだけで、いつの間にか逃亡しちゃったってことね 逃亡と言うか583がハナホジ
未だに度数派の計算精度テクの話に噛みついているのもハナホジ
数学が好きらしいが級数展開しか論拠がなく幾何とか普遍性で理解してなかったのがハナホジ
>自分での結論は既にあるが、置いといて意見を見てる
らしいから「度数は全く不要」は宗旨替えしたのでは 数学が好きならこっちで目から鱗しては>ハナホジ
The geometric interpretation of sin x = x - x³/3! + x⁵/5! -...
https://www.youtube.com/watch?v=x09IsbVZeXo >>646
見てるだけのハナホジを噛みついてとか参戦しまくってることにしてるアタオカさん >>646
ラジアン派(度数は全く不要)はコイツで間違いないな (数学で)
ラジアンを用いる理由として主張される言説
https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%B8%E3%82%A2%E3%83%B3
このwikipediaの解説は微積分の話に落とし込んでいるけれど
>>647のように幾何学的説明に落とし込む方が視覚的納得感が得やすい
その場合、微積分の話 sin' x = cos x もxを弧長パラメータに取ってあるので図でみて理解できる >>627
この会社のアドベントカレンダーのタイトルひでぇな
「フォロー必須!」「開発者必見!」「永久保存版」「全エンジニアが知っておくべき」etc…
こういう社風なのかね 円周の一周が360度ってのはそう思い込まされてるだけで普遍的なものではない
水の融点が0℃で沸点が100℃ってのと同じ
まったく科学的でも数学的でもない人為的なもの はてな民の怒った反応してる人は
> 「0.1+0.2≠0.3」を説明できないエンジニアがいるらしい
自分のことを言われた気がしたからかな? 記事には種類ある
(1)「フォロー必須!」「開発者必見!」「永久保存版」「全エンジニアが知っておくべき」etcという記事。多数の読者に向けた記事。専門知識がなくても読みやすい。入門者向け。閲覧数があがりやすい。いいねがつきやすい
(2) 専門的な記事。難解。少数の読者に向けた記事。閲覧数がのびない。いいねがつきにくい
(3)学習したことを書く記事。初心者。マサカリが来やすい >>656
試せばすぐ判るのに
https://ideone.com/nqxVHP
#include <stdio.h>
int main(int argc, char **argv)
{
long double f1 = 0.1;
long double f2 = 0.2;
long double f3 = 0.3;
long double f4 = f1 + f2;
printf("%.20Lf\n", f1);
printf("%.20Lf\n", f2);
printf("%.20Lf\n", f3);
printf("%.20Lf\n", f4);
printf("%d\n", f3 == f4);
return 0;
} こっちの方が良かったなωωω
https://ideone.com/n9axwY
#include <stdio.h>
int main(int argc, char **argv)
{
long double f1 = 0.1L;
long double f2 = 0.2L;
long double f3 = 0.3L;
long double f4 = f1 + f2;
printf("%.20Lf\n", f1);
printf("%.20Lf\n", f2);
printf("%.20Lf\n", f3);
printf("%.20Lf\n", f4);
printf("%d\n", f3 == f4);
return 0;
} 変な誤解する人(観えなけれokって人のことね)も居そうなのでこれも貼っておくわωωω
https://ideone.com/eXi4Qg
#include <stdio.h>
int main(int argc, char **argv)
{
long double f1 = 0.1L;
long double f2 = 0.2L;
long double f3 = 0.3L;
long double f4 = f1 + f2;
long double f5 = 0.1L + 0.2L;
long double f6 = 0.3L;
printf("%.30Lf\n", f1);
printf("%.30Lf\n", f2);
printf("%.30Lf\n", f3);
printf("%.30Lf\n", f4);
printf("%d\n", f3 == f4);
printf("%.30Lf\n", f5);
printf("%d\n", f3 == f5);
printf("%.30Lf\n", f6);
printf("%d\n", f3 == f6);
return 0;
} 256度でやると360の30度を使いたいときに誤差が出るんじゃね?w >>664
そんなことはどうでもいい頃のこと
ずっと上から読まないと 昔のシューティングゲームなんか、方向は8方向しか無かったんだから斜めに進みたいならX,Y座標に加算する各ベクトルを0.7倍してやれば済むだけの話だったなぁ
でも敵の弾幕は16方向とかズルかった
まあ、パズルみたいに格子を進むゲームなら不用な処理なんだが >>655
だからケースバイケースだろ
「今朝の気温は285K」とか言われても解らんがな >>670
Cとかアセンブラで書いてる時代には、2π=256にすると、何周回っても補正がいらないんだよね、まあ、いまどきの言語だとエラーになるけどさ >>671
そういうとこがわかるかだよね
フラグは立つんじゃなかったっけ
エラー無視と同じようにフラグ無視
(まあどうせ無視だからフラグどうでもいいけど) 割算剰余算は現在のCPUでも非常に遅いため
定数で割算剰余算を行う場合は現在でも掛算加算シフトANDなどにコンパイラが置き換えています
特に定数2^nの剰余は&(2^n-1)で済むため高速です
もちろん256の場合は8bit演算をサポートしていればそれすら必要なくなります >>674
そこまでしないとまともに動くゲームが作れない技術の低さかわいそうw
普通にdoubleでラジアン使ったゲームがグリグリ動くのに >>675
Cとかアセンブラで書いてた時代の話だから
老人の話に若者が無理に加わろうとするなよw 0.1+0.2を0.3ピッタリにしたいという要望に対しDecimal型使えって話と
90度や30度等正確に扱いたいという要望に対し角度型用意しろって話は
大して違うものではないんだけどラジアン派はカタクナだね。
与えられたものを何の疑問も持たずに使ってるブタ野郎だね。 >>675
>>676
いいえ
最新のコンパイラも定数による整数割り算を掛け算命令へとコンパイルします
これは最新のCPUであっても整数掛け算命令は1サイクルで済むのに対して整数割り算命令は数十サイクルかかるためです
この手の話をするならば常識的な基礎知識です 定数による整数除算がパフォーマンスに大きく影響するプログラムもそうはないと思うのでいまどきのコンパイラが定数除算を定数乗算+シフトに置き換える最適化をしてくれるのも大して必要があってのことではなくて開発者の趣味的なもんだと思うよ。 >>675
まだ条件をまともに把握できない貧相な脳ミソかわいそうw
ついでに日本語もまともに理解できないと >>677
> 90度や30度等正確に扱いたいという要望に対し角度型用意しろ
と思う人がそういうライブラリをDecimal型を使って作ればいいんじゃないかな
30.1度とかが「ピッタリ」になるように radian使わずにdegreeで全部済ますのは中学生までだよな。
中学生までならdegreeはほぼ整数しか出て来ないしω 12月1日にアドベントカレンダーが始まって記事が増えたのにラジアンのことしか話さなくなったな >>681
壊れたレコードって何ですか?(若者しぐさ >>676
今時そんな話を突然始めるからファミコンかよって突っ込まれたんだろw
無理に加わろうとするからそうやって顔真っ赤になるんだぞw >>686
だから、昔の話しの方にわざわざ混ざって来なくていいってわかんねーのかよアホやなw
>まだ条件をまともに把握できない貧相な脳ミソかわいそうw
>ついでに日本語もまともに理解できないと 逆だぞw
お前が混ざってきた上に昔の話という条件も書けないアホだから支離滅裂で小馬鹿にされてるんだぞw >>560
どう見ても昔話じゃなく今の話なんだよなあw >>688
だから、昔の話しの方にわざわざ混ざって来なくていいってわかんねーのかよアホやなw
昔の話しかどうかもわからない貧相な脳ミソ
まだ条件をまともに把握できない貧相な脳ミソかわいそうw
ついでに日本語もまともに理解できないと このやり取り見てて怖いのは
これどっちもド素人ってことな
アマチュアさんの論点は面白いわ >>692
最新のCPUでも整数でも除算は遅くて数十サイクルかかる
乗算は1サイクルで済む
だから最新のコンパイラでも定数による除算は乗算やシフトに変換してアセンブリコードを生成している 反論できなくなって話そらそうと必死なのに同じことしか言えないのは流石にダサいなw
そんなだからいまだにラディアン使えないんだよ https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3
> 『ラディアン』(原題:Radiant)は、トニー・ヴァレントによるフランスの
> 漫画作品(バンド・デシネ)。本国では2013年より単行本が発売されており、
> 日本では2015年より邦訳版が刊行されている。 浮動小数点数使って弧度法で角度を表すことに何の疑問も持たない人は
#include <iostream>
#include <numbers>
#include <cmath>
int main()
{
for (int i = 0; i <= 8; i++) {
double s = sin(i / 4.0 * std::numbers::pi);
double c = cos(i / 4.0 * std::numbers::pi);
printf("sin(%d/4π) = %19.16f cos(%d/4π) = %19.16f\n", i, s, i, c);
}
}
sin(0/4π) = 0.0000000000000000 cos(0/4π) = 1.0000000000000000
sin(1/4π) = 0.7071067811865475 cos(1/4π) = 0.7071067811865476
sin(2/4π) = 1.0000000000000000 cos(2/4π) = 0.0000000000000001
sin(3/4π) = 0.7071067811865476 cos(3/4π) = -0.7071067811865475
sin(4/4π) = 0.0000000000000001 cos(4/4π) = -1.0000000000000000
sin(5/4π) = -0.7071067811865475 cos(5/4π) = -0.7071067811865477
sin(6/4π) = -1.0000000000000000 cos(6/4π) = -0.0000000000000002
sin(7/4π) = -0.7071067811865477 cos(7/4π) = 0.7071067811865474
sin(8/4π) = -0.0000000000000002 cos(8/4π) = 1.0000000000000000
https://wandbox.org/permlink/osSsecrj4yVZmzVi
sin(1/4π)とsin(3/4π)の結果が一致しないことやsin(8/4π)が0.0ちょうどに
ならないことは気にしないんだろうか? > 各種言語のライブラリを作ってるのはたいていラジアン派だがお前のようなアホは一人もいないぞ
このひとBoostとか.NET Frameworkとか知らないんだろうな。
#include <iostream>
#include <boost/math/special_functions/sin_pi.hpp>
#include <boost/math/special_functions/cos_pi.hpp>
int main()
{
for (int i = 0; i <= 8; i++) {
double s = boost::math::sin_pi(i / 4.0);
double c = boost::math::cos_pi(i / 4.0);
printf("sin(%d/4π) = %19.16f cos(%d/4π) = %19.16f\n", i, s, i, c);
}
}
sin(0/4π) = 0.0000000000000000 cos(0/4π) = 1.0000000000000000
sin(1/4π) = 0.7071067811865476 cos(1/4π) = 0.7071067811865476
sin(2/4π) = 1.0000000000000000 cos(2/4π) = 0.0000000000000000
sin(3/4π) = 0.7071067811865476 cos(3/4π) = -0.7071067811865476
sin(4/4π) = -0.0000000000000000 cos(4/4π) = -1.0000000000000000
sin(5/4π) = -0.7071067811865476 cos(5/4π) = -0.7071067811865476
sin(6/4π) = -1.0000000000000000 cos(6/4π) = 0.0000000000000000
sin(7/4π) = -0.7071067811865476 cos(7/4π) = 0.7071067811865476
sin(8/4π) = 0.0000000000000000 cos(8/4π) = 1.0000000000000000
https://wandbox.org/permlink/IEFafqP4uhbG2QWv >>698
こういうのだろ >>641
気にしてもしかたがない > コンピュータの計算では「0.1+0.2」は「0.3」になりません。
と断言しちゃう奴も
> 各種言語のライブラリを作ってるのはたいていラジアン派だがお前のようなアホは一人もいないぞ
と言い切っちゃう奴も己の狭い知識が世の中の全てと勘違いしてる点で同類だよなあ。 >>699
こうなった
#include <iostream>
#include <boost/math/special_functions/sin_pi.hpp>
#include <boost/math/special_functions/cos_pi.hpp>
int main()
{
for (int i = 0; i <= 12; i++) {
double s = boost::math::sin_pi(i / 6.0);
double c = boost::math::cos_pi(i / 6.0);
printf("sin(%d/6π) = %19.16f cos(%d/6π) = %19.16f\n", i, s, i, c);
}
}
sin(0/6π) = 0.0000000000000000 cos(0/6π) = 1.0000000000000000
sin(1/6π) = 0.5000000000000000 cos(1/6π) = 0.8660254037844387
sin(2/6π) = 0.8660254037844386 cos(2/6π) = 0.5000000000000000
sin(3/6π) = 1.0000000000000000 cos(3/6π) = 0.0000000000000000
sin(4/6π) = 0.8660254037844387 cos(4/6π) = -0.4999999999999999
sin(5/6π) = 0.4999999999999999 cos(5/6π) = -0.8660254037844387
sin(6/6π) = -0.0000000000000000 cos(6/6π) = -1.0000000000000000
sin(7/6π) = -0.5000000000000002 cos(7/6π) = -0.8660254037844385
sin(8/6π) = -0.8660254037844385 cos(8/6π) = -0.5000000000000002
sin(9/6π) = -1.0000000000000000 cos(9/6π) = 0.0000000000000000
sin(10/6π) = -0.8660254037844385 cos(10/6π) = 0.5000000000000002
sin(11/6π) = -0.5000000000000002 cos(11/6π) = 0.8660254037844385
sin(12/6π) = 0.0000000000000000 cos(12/6π) = 1.0000000000000000 1/6はdoubleで正確に表せられないからそれやりたかったら分数型か度数法採用した三角関数使えって説明されないとわからん人かな >>703
分かってるよ
元の話 >>621-623に対応するのは1/6だからやってみただけ > 分かってるよ
> やってみただけ
お前顔真っ赤だなw >>702
sin((1/6)π)とsin((5/6)π)が一致しないことを気にしてもしかたないと
Boostをつくってる人たちも考えていたってことだろうな >>701
> コンピュータの計算では「0.1+0.2」は「0.3」になりません。
どこのレスの引用だよ
まだ条件をまともに把握できない貧相な脳ミソかわいそうw
ついでに日本語もまともに理解できないと >>698
>浮動小数点数使って
>値が一致しない
弧度法関係ないから
そこを判ってないから君は馬鹿にされてるんだよ > どこのレスの引用だよ
>
> まだ条件をまともに把握できない貧相な脳ミソかわいそうw
> ついでに日本語もまともに理解できないと
こいつここがQiitaスレって前提すら理解してなさそうw
>>707
>>627のリンク先見れやアホ >>708
> > 浮動小数点数使って弧度法で角度を表すことに何の疑問も持たない人は
> > sin(1/4π)とsin(3/4π)の結果が一致しないことやsin(8/4π)が0.0ちょうどに
ならないことは気にしないんだろうか
> 弧度法関係ないから
浮動小数点数で1/4π等が正確に表せられない弧度法の問題なんだがお前驚くほどの馬鹿だな。 ID:1MxEINjf は生きてて申し訳ないと思わないのかな 言われたことを認めると負けたことになってしまうので
相手をレッテル貼りしてなんか言い返したつもりになってんのねw >>709
やっぱアホなんやな
園児向けに少し丁寧に書いてやるよw
まだ条件(省略)をまともに把握できない貧相な脳ミソかわいそうw
ついでに日本語もまともに理解できないと 256度だと誤差が出ないと思ってる病気の人はどこの病院にいるの?w まだ昔の話しかどうかもわからない貧相な脳ミソ
まだ条件(省略)をまともに把握できない貧相な脳ミソかわいそうw
ついでに日本語もまともに理解できないと >>716
> 256度だと誤差が出ないと思ってる病気の人
誰かそんなこと言ってる? レス番示してヨロシクね AtCoder Beginner Contest 332 A Online Shopping を Elixir と C で解いてみた
https://qiita.com/zacky1972/items/61f8dcefc71cb6d0117b
准教授 inttypes.h 知らないとかマジか。
64bitでコンパイル、実行
https://godbolt.org/z/Y1nv549cE
32bitでコンパイル、実行
https://godbolt.org/z/6jEYGhrnG 説得力あるコードのひとつも提示できなかったラジアン派まだ生きてたw 説得力のあるコードまだみつからなくて困ってたのかよw
どの言語のライブラリもラジアンなのにそれを知らないって無能すぎない?w > ポイントとしては,i番目の行の値Qi,Piを読み込んだら,即座に積和を行ない,入力した値を配列として記憶することはしないという点です.これにより,計算時間を1ミリ秒以下に,メモリ消費量もごく最小限にすることができます.
なんか誇らしげに説明してるけどscanf()で値読み込むのに掛かるコストに比べたら配列に入れようが即座に計算しようが屁みたいな違いしかないぞ。
> Streamを使って積和を累積する方法は,Stream.transform関数にs1関数を与え,得られるリストの最後の要素をEnum.at(-1)として取り出すことで実現します.
> 結果として,実行時間を800ミリ秒以下に,メモリ消費を160MB前後に抑えることができました.
https://atcoder.jp/contests/abc332/submissions/48423119
↑見るとどのテストケースでも780msに近い処理時間になってるし積和のコストってこっちも問題になってはいないよな。起動時に馬鹿みたいに待たされてるだけだろこれ。
なんかこの人計算コストについての理解がすげえ怪しい気がするわ。これで学生さんに何教えてんだか。 >>725
で、全てについて上を行くお前の書いた記事はどれ? 「1+1=3」という人を面白がってたら「で、全てについて上を行くお前の書いた記事はどれ?」という馬鹿が絡んできたでござる の巻 Qiitaユーザー約2000人に聞いた「勤め先のサーバ・クラウド」
調査は9月29日から10月31日にかけてネット上で実施。
https://www.itmedia.co.jp/news/articles/2312/12/news138.html https://atcoder.jp/contests/abc332/tasks/abc332_a
> 問題文
> 高橋君はそこで N 種類の商品を購入することにしました。
> 1 以上 N 以下の整数 i について、i 種類目の商品は 1 個 P i円で、高橋君はQ i個購入します。
> 制約
> 1≤N≤100
100以下の制約で遅いとかないわアホかw Nが100以下の制約で800ms
N+Mが2000以下の制約で1500ms
Cはどちらも1ms
制約が緩くなると時間も順調に伸びてるから起動時間が長いだけということでもなく全体的に遅いんだろう
並行処理が得意で対障害性が高いのがElixirの売りらしいが
速度がここまで出ないんじゃ使いみちは限られそうだな
起動時間除いて単純計算で1900の処理に700msかかるとか控えめに言ってゴミでしかない
インタプリタかな?
(そもそも新しい言語で並行処理や対障害性が不得意なものの方が少ない気がするし対障害って多分Optional型やEither型の話でしかないよなあ) 今度は初心者向けの設問にしかドヤれないバカが湧いてんのか 裸の王様に「Elixir全然速くないねw」みたいなコメントする正直な子供おらんのかな スクラッチのようなブロック並べるのもあるし、そこに拘る必要もないやろ QiitaでElixir推してる人達ってElixirは並列処理が簡単にできて
速いという主張を当たり前のように繰り返してるけど、他の言語と
比べてどうだこんなに速いぞてのじゃなくて、クソみたいな
アルゴリズムをElixirでシングルコアとマルチコアで比べて
マルチコアでこんなに速くなった!Elixir最高ーー!!(ビクンビクン
みたいな記事ばっか見かける希ガス。
まずアルゴリズムちゃんとしろよと。
他の言語と実際に比べて優位を語れと。 >>737
https://qiita.com/zacky1972/items/fa362f4d9b1252a207ad
CとJavaと比較してるぞ
どちらもasync/awaitが無いからめんどくさいがそれって結局Elixirの優位性というよりCとJavaが遅れてるってだけの話なんだよなあ コメント欄総ツッコミだなあw
並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その2「スレッドと同期・排他制御」
https://qiita.com/zacky1972/items/bbf1f7bdecbbd0492151
並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その3「同期・排他制御の2つの問題点」
https://qiita.com/zacky1972/items/10787cb6104c82016487
Elixir推しの人がC引き合いに出してるけどよく分かってないから比較にすらなってない感じ。 Elixir は、10万もの小プロセスを起動できる。
メモリが大きいと、5千万小プロセスも
それに関数型で、オブジェクトの状態が変わらないから、安全性・保守性が高い。
つまり更新できず、新規作成・廃棄しかできない。
オブジェクトは更新できないから再利用できる
片方向リストなので、先頭にしか追加できない。
末尾追加できないので、先頭に追加していって、最後に逆転させるとか
スクエニは、Elixirを使っているらしい Rustの非同期タスクはスタックレスコルーチンなので軽くて速くていいね 10万のプロセス作ったとしてもCPUが10万無いなら結局同時処理できないわけで意味ないんじゃね
あとプロセス作る負荷と切り替えの負荷は結構重い
PCで使う限り大量のプロセス作っても速くなるどころか逆に遅くなると思うんだがほんとに速さが売りになるのか? スクエニの使ってるElixirって言語なのか?
ゲーム配信インフラとゲーム内アイテムの話しか出てこんぞ Elixir推しの人達がElixirの強みをアピールする記事書かないのホント不思議。 https://www.infoq.com/jp/news/2019/09/rust-elixir-performance-at-scale/
Discordは一部Elixirで書かれてるがユーザーが増えて同時接続数の限界が見えたためにRustで書き直したそうな
一番得意な分野で他の言語に席を譲るとかやっぱり使いみちないじゃん
最初から全部Rustを使えばこんなことにならなかったのに Elixir推しの人曰くElixirはGPU使った並列処理もカンタンに書けるとのことだけど
実際そうなら個人が所有できるパソコンでも有意な使い方ありそうだけどね、
そういう記事が見当たらない辺りでまあそういうことなんだろうなあ。 >>744
プロセスやスレッドを10万個作るわけではないよ
一つのプロセスの中にスレッドをそのCPUコアスレッド数分(例えば8個)だけ作って使う
10万個の軽い非同期タスクはそのマルチスレッド上で擬似的にスケジューリングされる
もし数値計算ならばそのような非同期タスクを使うのは無意味でマルチスレッドをそのまま用いる
一方でネット通信のように非同期でCPUの待ち時間が多いものは軽い非同期タスクを何万も同時に動かし何万もの通信クライアントを同時に捌くことができる >>749
なんでプロセスじゃなくスレッドを8個作るんだよw プロセス間通信にコストがかかるからでは?
知らんけど 何万スレッド起こそうが、通信デバイスが一つなら
一つのスレッド以外後はひたすら待ってるだけだしなぁ >>750
現在の何万接続も同時に捌く最新型の各種サーバーはそのように作られている
ネットワークデバイスやその通信データに対してそれ以外の方法で作るとCPUは暇で遊んでしまうため
>>751
マルチプロセスにするメリットはないため1つのプロセス内でマルチスレッドを使う
CPUコアスレッド数よりも多くのスレッドを動かすのは無駄にスレッドスイッチングが発生し不利となるため限定した数のスレッドを動かしている
そのCPUコアスレッド数分のマルチスレッド上で数万個の軽い非同期タスクを動かすことでCPUの待ち時間を可能な限り無くしている >>748
Elixirが本当にGPU処理をカンタンに書けるなら、もっと有名だったろう
一時期openCL使ってたけど、まず使えるようにするまでも面倒だったな
(今は簡単なのかもだけど)
使えるようにしてからは、ヤッホ~イだったw >>756
それだと10万のプロセスが扱える利点なくね?w >>758
プロセスではなくマルチスレッド上に何万もの非同期タスクを動かしてるんだよ
Rustならスタックレスなコルーチンで実現されていてGoならスタック付きgoroutine ていうか現にElixirだと捌ききれなくてRustで書き直したという事例がそこにあるわけだがいつまで机上の空論を支えにしてるんだ >>759
十万のプロセス使わないなら使える利点なくね?
という話だぞ? >>760
>>747の事かな?
747はElixirのMapSet、List、OrdsetをFFIで外出ししたと言う話だね
discordのgithubでピン留めされてるのはElixirプロジェクト(とJS/TS)
discord自前のRustプロジェクトは1年以上コミットが無いですよ >>758
プロセスはスイッチングコストが非常に大きいため、
プロセスを動かせば動かすほど損をするという基本常識を理解しよう。
そのためメモリを共有しスイッチングコストが軽減されたスレッドが代わりにある。
そのスレッドもスイッチングコストが大きいため、
1スレッド1クライアント接続だと何万もクライアントが同時接続したら動かない。
よってスイッチングコストが極めて軽量で非同期に動くマイクロタスクを用いるのが主流となっている。 >>763
そこまでわかってるならなんで10万プロセス使えるってホルホルしたの?w 俺じゃないので知らん。
そんなバカな主張してるやつもいないだろ? 10万のプロセスと書き込んでいるアホは>>744と>>758 地球温暖化とコンピュータのエネルギー消費の問題にElixirで立ち向かう〜「コンピュータと地球温暖化は
決して無縁ではない」(2022年版)
https://qiita.com/zacky1972/items/a67459bf36f7b369b946
地球温暖化とコンピュータのエネルギー消費の問題にElixirで立ち向かう〜機械学習の消費電力あたり性能の改善に向けて
https://qiita.com/zacky1972/items/fc74503c33839b64d0a3
Elixirを使ってコンピュータの電力消費を抑える目論見みたいだけども実行効率で他の言語に劣るElixirを使う意図がわからん。
都合が良い話しかしてないようにも見える。 ああなるほど
>>740を無かったことにしたくて頑張ってスレを流してたのかw >>758
>>764
10万個動くのは
Goならgoroutine
Rustならtask
Elixirならlightweight process
OSのプロセスの話なんて誰もしていないことに気づかなきゃ
そのへんの今どきの言語どれかをかじったことがあるならすぐわかるでしょ だから、ネット1回線あたりにそんなキャパは無いからw >>769
プロセスはOSが作るんだぞ?w
そこから説明がいるんかいw
実行ファイルを実行した時のプロセスと同じものだぞ?w >>753
非同期プログラミングどころかネットワークプログラミングすらしたことのない子供が暴れてるのか?
まずネットワーク通信はOSにより抽象化されているためプログラムで通信デバイスを直接操作したり待つことはない
次に古典的なブロッキング同期でマルチスレッドを使う単純な方法でもlisten/accept専用スレッドはacceptするとすぐに別スレッドに任せてその別スレッドが通信を行なう
プログラミングをしたことのない子供だから知らないのか? >>767
CPUは使いまくるし実行速度は遅いしで絶対電力効率悪いわな >>772
今度はスレッドの数も必要ないと言い出したがそれだとプロセスに続いてますますElixirの利点なくならね?w >>771
みんなが話しているのは一つのOSプロセス内の話ですよ
一つのOSプロセス内で複数のOSスレッドが動くのです
一つのOSプロセス内で複数の軽量プロセス/軽量タスク/軽量コルーチンが動くのです
だから誰もOSプロセスの話なんてしていません
ここまで読んだところ発端の>>740の人も軽量プロセスを意味する「小プロセス」と書いていますね >>751
常識だろ
同じメモリ空間を使うためスレッドを使い、CPUを限界まで使いこなせるようにするためCPUコアの分だけスレッドを起動する
GoもRustのtokioもそれが指定しない時のデフォルト挙動となっている >>772
馬鹿はハードの事情も知らずにサービス開始と共にキャパオーバーで障害発生させるのかw >>775
えっと、OSプロセスって何?w
プロセスを作るにはOSに依頼しないといけないわけで実行ファイルを実行しようがAPIを呼ぼうがファイルをロードしないだけで同じだぞ?w >>776
プロセス10万作る君に10万作ったプロセスはどうすんのって聞いたというところから説明が必要な感じ?w
なんかわかってないやつと話すといちいち話を戻されてめんどうだなー どれだけ話をごまかそうとElixirが遅いことに変わりはないんだな
計測すればわかること >>778
各モダン言語の軽量タスク相当はプロセス内で大量に生成するため新たにプロセスを作る必要はない
無知をさらしていないでまずは基礎知識を身につけてはどうか >>779
あんさん一人だけElixirの軽量プロセスとOSのプロセスの区別ができてなくね??
OSのプロセスを10万はリソース的にありえないと誰でもわかるからさ
区別つかないなら知的境界 >>781
作れる利点がなくなるよねって話の三回目に入る?w >>782
もうちょい調べてから書かないと恥の上塗りになるだけだぞw 自演で恥ずかしい過去ログ流してもElixirは速くなったりしないしスレが消えたりもしないんだよなあ 他の言語に比べれば大量の軽量プロセスサポートがあるElixir・Go・Rustなどが圧倒的に有利なのは当たり前だが
Elixirはイミュータブルに拘りすぎていてガベージが大量発生するからかその中では遅いよな
GoもElixirと同じくガベージコレクションを抱える言語だけどミュータブルも使えるしエスケープ解析でヒープ利用回避もあってElixirより速い
RustはC/C++と同じくガベージコレクションがないだけでなくヒープ利用回避がGoよりさらに積極的に可能でさらに速い インタプリタの数百倍遅いのにガベージどうこういう話じゃないだろ そもそも大量の軽量プロセスなんか使うことないからまったく意味ないって結論出たろうに >>788
GoでもRustでもウェブバックエンドなどを中心に普通に使われまくっているぜ 【11万文字越え】プログラミング初心者に贈る即戦力ガイド
https://qiita.com/nuco_bk/items/27f5ad03d0c4b41241fc
> 4. よく使われる英単語一覧(全759語)
> なお、ここで紹介した単語の一覧についてはこちらの記事から引用させていただいております。
> プログラミング必須英単語600+ | プログラミング英語検定
759語のコピペは引用じゃないと思ったが?
引用マークの「>」を付けてないし引用にしては数が多すぎる 10年後のために「私自身が」今勉強しておきたい技術〜Elixir, Nx, SIMD/ベクタ命令, GPU, FPGAプログラミングの高速化を極めたい!
https://qiita.com/zacky1972/items/16551040cc42696127fb
> 取り組みたいこと
> しかしながら,コード最適化の専門家としては,より高速なNxバックエンドを作ってみたいという野心が私に芽生えました。
「コード最適化の専門家」だそうだ。 >>791
その人の少し前の記事を見たら
Elixirの遅さをちゃんと認識してるな
>現状の Elixir の実行時環境である Erlang VM (アーラン ブイエム) は,Rust や C/C++ などのネイティブコードにコンパイルするプログラミング言語処理系と比べて低速です。
>
>そこで,Elixir (というか Erlang VM) には,NIF(Native Implemented Function)というネイティブコード実行に関わるAPIが整備されています。
>NIFは通常C/C++で書くのですが,Elixir では Rustler (ラスラー)というライブラリによって NIF を記述するプログラミング言語として Rust を利用することができるようになります。
>
>Rustler によって Elixir と Rust は共存共栄の道を辿ることができます! > Rustler によって Elixir と Rust は共存共栄の道を辿ることができます!
Rustだけで良くね? >>789
次にお前は「使われているのはスレッドだ」と言う 前にも書いたけど、
例えば、C で100 スレッド起動するよりも、
Go で100 goroutine 起動すると、
6 スレッドしか使わずに、実行時間も半分になる。
つまり、スレッドの起動時間が遅い
OS のプロセス/スレッドは遅い
Elixir, Rust, Go の
軽量プロセス/軽量タスク/軽量コルーチンの方が速い 地球温暖化とコンピュータのエネルギー消費の問題にElixirで立ち向かう〜「コンピュータと地球温暖化は
決して無縁ではない」(2022年版)
https://qiita.com/zacky1972/items/a67459bf36f7b369b946
> このような状況の時に,クロック周波数を上げることで乗り切るか,クロック周波数を抑えたまま複数のコアに負荷分散して並列処理するかという選択肢があると思うのですが,後者の方が消費電力的には有利であることが多いのではないかという主張になります.
> FortranやC++等によるマルチスレッドによる実装には,デッドロックや性能低下の問題が起こりやすいという点を指摘したかと思います.Elixirを用いることで,それらのほとんどを回避することができると主張しています.
複数にコアにまたがる処理でElixirが高効率という主張かあ。
なんか実例挙げて言ってんのかな、自称コード最適化の専門家は。 遅い言語で並列化するくらいなら速い言語で逐次処理しますわ スパコンの電力当たりのみたいに、どの言語がどの程度効率いいか比較するのもいいかもね
どのような処理内容にするかも思案のしどころだけど
あ、オレはgoとかrustとか全然わからんからムリ
(もうあるかは知らない) >>797
並列化は当たり前で
並行化の話がされている
批判している人はこの区別がついていないのかな
逐次処理は論外
例えば1000ヶ所と通信するとして順に処理していったら待ち時間で時間かかりすぎる >>801
実際に測ってCの逐次よりElixirの並列が遅かったら笑うが
Rustで並列処理をすればいいだけでElixirを使う意味がないよね ていうかもしかしてElixirに並列処理させるより接続数の数だけJavaやPHPのプログラムを立ち上げて排他はDBに任せた方が速いんじゃないかっていう >>801
だから、通信は一度に一つの相手としか繋げられないんだから、どう書こうが変わらないよ
変わるとすれば切り替えのオーバーヘッドの違いだけ >>804
>通信は一度に一つの相手としか繋げられない
これはpingが200msの相手達(複数)とは1秒間に合計5回しか通信出来ないと思ってるのか? >>802
まずは並列(parallel)と並行(concurrent)の違いを勉強しなさい
速さを求めるならRustが良いのはその通り
>>804
通信は同時に数万ヶ所と繋いで通信できる
ネットワーク通信プログラミングの基礎を学びなさい >>807
だからさ、そんなマクロな視野でコード組むから
リリースした途端にサーバ落ちるんだよw
一つのくちから1パケットづつ順に送り出してんだからさw
受信も一つのくちからしか入って来ないからな
CPUの時間単位で考えたらかなりの待ち時間だぞ >>807
ずっと並列でホルホルしてたのに並列が意味ないとわかった途端に並行の話に切り替えるの笑うわ
並行ならなおさら10万プロセス必要ないとわかったらおとなしく遅いの認めろよw 数万同時接続ってさあ
数万のパケットが同時にくるわけじゃなく一定時間に数万通りのipの書かれたパケットが届くことなんだよねえ
同時なのは接続数(最初のパケットが届いてから後、最後のパケットが届いてタイムアウトするまでが1接続)であって通信じゃないんだわ
普通はそれを複数のサーバーにふりわけるから一つのコンピューターで全部処理する必要ないんですわ
でもってそれぞれのサーバーのLANカードの数は物理的に限られてるしそれを処理するCPUのコア数も限られてるから10万の並列(並行ではなく)処理を誇っても意味ないんすわ
ましてや10万のプロセスなんてほぼ休んでるだけなんすわ だから結局大事なのは並列じゃなく並行の方なんだけど逐次処理がインタプリタの数百倍遅い言語で並行処理しても処理しきれないで取りこぼすだけなんすわw 並行処理ってわかるかなあ?
要はタスク毎に逐次処理するんじゃなく複数のタスクをちょっとずつ順に処理することなんだけど、結局合計でかかる時間は逐次処理と変わらないのわかる?
それどころか切り替えにかかる時間を入れると逐次処理よりも時間がかかるのが並行処理なんだよねえ
だから逐次処理の無茶苦茶遅いElixirは並行処理にも向いてないの理解できる?
できるかなあ?
ちょっとまだ難しいかなあ? >>810-812
その通りだから>>762のように
discordは逐次処理のMapSet、List、Ordsetだけネイティブコードにして
全体はElixirのままで十分なんだよな >>812
あまりにも無知でプログラミングをしたことないみたいだから
練習に数十ヵ所のWebサーバーからデータをとって来るプログラム書いてみな
逐次処理は無駄に時間がかかり並行処理はすぐに済むことがわかる
これはネットワークプログラミングの基礎知識だよ >>814
うーん、何というか、君って悲しい存在だねw
JavaScriptが1スレッドで並行処理を実現してることを知ったら穴掘って埋まりそうw >>813
そもそも全体をElixirで書く必要がないんだけどw >>814
数十箇所ならElixirでもどうにか処理できそうだけど数万箇所だと取りこぼしそうって話がわかってないやつおるな
遅い言語でいくら複数のプロセスやスレッド作ってもハードの制限で並列化できる数は限られてるから意味がないよ
並行処理だと休みなくパケットが来たときに合計実行時間が逐次処理以上になるから処理の遅い言語は並行処理に向いてないよ >>815
並行処理だからもちろんシングルスレッドでいいんだよ
ちなみにマルチスレッドを必要とするのが並列処理
JavaScript普通にNode.jsでいいから先程の例をプログラム書いてごらん
逐次処理は遅く並行処理は速いというネットワークプログラミングの基礎知識がわかるから
>>817
Elixirとかいう言語には一切興味がないのでそこまでは知らん >>818
お前一人だけ初歩的な話をしてることに早く気づけ
痛々しいわw
大規模アクセスつまりパケットが常に行列に並んでて待ち時間が無い時には並行処理で早くならんということこそ基本だぞ?w
なんでお前一人だけ自分のPCの話をしてんだよw 大規模サーバーは並行処理をやっていて逐次処理をやっている古いプログラムはとっくに淘汰されたもんな
最近の言語がいずれも並行処理に力を入れてるのも需要を反映してる >>819
サーバーとクライアントと言うべき
> 大規模アクセスつまりパケットが常に行列に並んでて待ち時間が無い時には並行処理で早くならん
これはサーバーの話
> なんでお前一人だけ自分のPCの話をしてんだよw
これはクライアントの話
おまえは説明が下手 逐次処理があり得ないくらい遅いElixirでは並行処理も早くならんし他の言語でも今やasync/awaitが常識だしやっぱりElixirをわざわざ選ぶ理由はないよな
取りこぼしてエラー連発するのが落ち
普通のサイトなら普通にPHPやRubyでいいし速度を望むならRustで書けばいい
一番得意な分野で力を発揮できないって設計思想から間違ってるんじゃね? >>821
説明が下手というよりお前が(
いやなんでもない
初心者はほめて伸ばさなきゃな 他の言語vsElixirの話は逐次処理vs並行処理の話にすりかえろって指示でもどっかから出てんのかな
並行処理がElixirの独壇場って時代が存在したっけ? > ジョー アームストロング氏は、2013 年の Rackspace とのインタビューで次のように述べています。「もし Java が '一度書いたらどこでも実行できる'場合、Erlang は「一度書いたら永久に実行できる」
> Sun Microsystems の Web テクノロジー担当ディレクター、Tim Bray 氏は次のように述べています。 2008 年 7 月のオライリー オープンソース コンベンション (OSCON) での基調講演:
> 誰かが私のところに来て、実際に常時稼動する必要があり、一度に何年もダウンさせるわけにはいかない大規模なメッセージ処理システムを構築するために大金を払いたいと思ったら、私は迷わず Erlang を選ぶでしょう。それを組み込んでください。
> Elixir は、(Erlang 抽象形式経由で) BEAM バイト コードにコンパイルされるプログラミング言語です。
://en.wikipedia.org/wiki/Erlang_(programming_language)
> PhoenixはElixirで記述するWebフレームワーク。
> ちょうどRubyとRailsのようなもの。
://zenn.dev/hiroe_orz17/articles/647ec2155d8088
> Elixirは、低レイテンシで分散型のフォールトトレラントシステムや、Webや組み込みシステムの領域で成功を収めている、Erlang VMを利用します。
://elixir-lang.jp/
> OSネイティブなプロセスよりもはるかに軽量な「プロセス」を持ち、独自の実行環境(Erlang VM)上で動作する。
> また、Erlangのプロセスは他のプロセスからは分離されていて、メモリ領域を他のプロセスと共有することがなく、プロセス間でのデータ共有はメッセージパッシング機構を使用して行う。
> このため、Erlangではあるプロセスに問題が発生しても、他のプロセスに影響が及ぶことが少ない。
> こうした特徴から、Erlangではスケーラブルでリアルタイム性を持った、可用性の高いプログラムを構築できる。
://atmarkit.itmedia.co.jp/ait/articles/1608/30/news021.html 実際のところ何年もダウンさせない需要もないよ
どうせ時代に合わせてセキュリティーパッチを入れたりハードを交換したりしなきゃいけないし
そういう時に普通にやってる方法は運用しながら新しいプログラムを新ハードで動かしてデータをインポートしてデータが完全に同期したら新しい方のサーバーを公開する
それだけ
古いハードは使えるなら増強用として再利用したり別のところで使うしデータを完全に消去して中古として売ることもできる 要するにElixirの強みを活かせる場がないのに遅いという明確な弱点があるから流行らないというだけ
10万のプロセスが作れるとか一流のプロジェクトマネージャーが金と時間をかけて作れば何年もメンテ不要になるわずかな可能性があるとかそういうの求めてる場所ってほとんど無いから 某准教授は一流のプロジェクトマネージャーということだな 【11万文字越え】プログラミング初心者に贈る即戦力ガイド
https://qiita.com/nuco_bk/items/27f5ad03d0c4b41241fc
高評価されてる様子な記事だけど
> def calc(a, b):
> sum = a + b
> return sum
↑が「引数のa, bがどのような変数を受け取るのかわかりません。」だそうで改善版が
> def add(first_integer, second_integer):
> total = first_integer + second_integer
> return total
という説明だけど、名前に型含めるとかいまどき正気かな?
def add(a: int, b: int) -> int:
return a + b
型ヒントで良くね?
> def print_fruits(fruits_name):
> print(fruits_name)
「この関数名なら「フルーツの名前を出力する」と認識することができ、可読性が高くなります。」だそうだけど
def print_fruits_name(fruits_name):
print(fruits_name)
フルーツの値段や重さじゃなくて名前を出力するならそれが分かる関数名にするべきだろう。 あとコメントで指摘されてるけど
> def add(int_1: int, int_2: int) -> int:
> return int_1 + int_2
>
> def print_num(int: int) -> str:
> print(f"This num is {int}")
>
> num: int = add(5, 10)
>
> print_num(num)
酷い。業務でプログラミングに携わった者の書いたコードとは思えん。
本とか読んで勉強はしてるんだろうけど理解して身についてる感じじゃないなあ。 会社の宣伝として公開してる記事なんだろうけど社内でレビューすらやってない感じ。 記事を書く気持ちになれ
自分の利益のために記事を書くんだよ
それが学習したことを書くタイプの記事
従業員が学習したら会社の利益になる >>837
記事を公開したことない?
(公開したことがあるとしたら)学習したことを書いてない? >>835
コメントに返信すらないことから察するに正しい知識をまとめよう、みたいな意識はないと思うよ。
ボリュームで圧倒して記事の内容気にしない人にアピールしたいだけだろう。 わかってしまってると(無意識に)省略してしまう
わからない人に向けてを意識しすぎると、クドくなる(どこまでクドくすればいいか難しい)
記事書いたことない奴にはわからんだろな 記事ではVSCodeも紹介してるけどVSCodeならPythonの型ヒント見て型情報の表示や警告出してくれるプラグインくらい当たり前にあるだろう知らんけど。
ハンガリアン勧める気がしれない。
記事の章が噛み合ってないよう見えるのは筆者の理解が浅いからだろうなあ。 >>838
学習したことなんか書くわけ無いじゃんアホなの?
なんでN番煎じの記事を書かなきゃいけないのよ?w
研究成果を書くに決まってんだろ >>841
どこまでって対象読者を設定するもんだぞw >>838
お前小学校の読書感想文の宿題であらすじ書いてただろ。 >>843
学習したことを書く理由やN番煎じの記事を書く理由がわからないのはおまえがアホだからだ
そういう記事が大量にあるってことも認めない? >>845
なんで小学校の読書感想文の話になるのかがわからないが
おまえは小学校の読書感想文で何を書いてたの?w ID:vLHzsqrkが底なしの馬鹿であることは分かった 横からだけどID:vLHzsqrkのタイプにはインタラクティブな勉強会が必要だな
記事じゃダメだ(書く側でも読む側でも)
記事の数だけ量産して独り善がりするタイプ 自分の他記事リンクでひたすらたらい回ししたり
内容がポエムだったり、何を読んだ勉強しただのリストだったり
とにかく数を書いてランクインしたいとしか見えない >>847
大量にあったとしてそれが正しさの証明にならんことは理解してる? ID:y/jJ/G7Yの研究成果記事なんて出てこないだろうな
口ぶりからそれなりの数の記事書いてそうだが >>853
自分の書いた記事がどれか書けばいいのに >>841 Qiitaにバカな記事が大量にあるのはQiitaにバカが大量にいるということでしかないよなあ アドベントカレンダーみたいに書くことが目的となってる記事もあるしもう終わりだねこのサイト イベントにスポンサーがちゃんと付く位には成功しているから、いいね衆遇評価だけでなく、paizaとかatcoder見たく実行環境を用意して、記事+実行コードに基づいて評価される方向性になると良いのだけど、無理かw >>846
Brainfuckなら使えなさでは負けてないはず
…はず >>846
> これにより,TLE(実行時間制限超過)が2つにまで減りました.
クソワロタw
「Elixirを使えばこれだけ素晴らしいことができますよ」と言ってお金をもらってる立場とはいえ大変だなあw この問題ってElixirが得意という触れ込みの並列処理できる問題なんだけどな
なぜ10万のプロセスで他の言語を圧倒しないの?
おかしいな 目的地1から2へ、2から3へ、3から4へ…というのが全て独立に判定できるから10万の判定を並列で行って最後に集計して全てtrueならYesをそうでなければNoを返せばいいだけなんだよなあ
目的地は最大1万ヶ所だから10万の並列処理ができれば余裕だよね
「並列が得意だから速い」のが売りだったよね?
遅くね?
逐次より並行の方が速いと必死に主張してたやつ解説してよ > メッセージ交換アクターモデルによるシェアード・ナッシング・アーキテクチャを採用
://ja.wikipedia.org/wiki/Elixir_(プログラミング言語)
> シェアード・ナッシング・アーキテクチャは各更新リクエストが 1 つのノード (プロセッサ/メモリ/ストレージ ユニット) によって満たされる分散コンピューティングアーキテクチャ。
> シェアード・ナッシング・アーキテクチャは単一障害点を排除し、個々のノードで障害が発生してもシステム全体が動作を継続できるようにし、個々のノードでハードウェアやハードウェアをアップグレードできるようにします。システム全体をシャットダウンせずにソフトウェアを実行できます。
> シェアード・ナッシング・アーキテクチャはデータ ウェアハウジングアプリケーションで普及していますが、複数のノードからのデータを必要とするリクエストによりスループットが大幅に低下する可能性があります。
://en.wikipedia.org/wiki/Shared-nothing_architecture
シャットダウンしないのがすごいが遅い システム全体をシャットダウンせずソフトウェアを実行できるって普通じゃん
まさかそのために速度を犠牲にしてんの?
他の言語は犠牲にせずできるのに? >>861
>目的地1から2へ、2から3へ、3から4へ…というのが全て独立に判定できるから
2から3に到達する時刻を求めるにはその前に2に到達する時刻を求めなきゃならんからそこは逐次的。
幅優先探索の並列化ははできるかもしれんが。 >>864
大丈夫か?w
2に到達する時刻は入力で与えられるだろ?w 入力で与えられるのはその時刻にその地点を通過してほしいというプランだけ。 >>866
到達できなけりゃfalseになるんだから到達したと想定して並列/並行できるじゃんw
一つでもfalseがあればNoだぞ?
アホなのか?w ああなるほど、区間ごとの判定は独立してできるからそっちは並列化可能ってことか。 このスレでも散々言われてるけどCPUやメモリやネットワークのハードに制限があるから並列化できる数は限られてるんだよな
並行はどうしても逐次より遅くなるからプロセスを10万作れようが100万作れようがまったく無意味だし逐次が絶望的に遅い言語で万単位の並行処理させるのはデータの取りこぼしの原因にしかならない
遅い言語で並行作業するのは仕事の遅いやつに複数の仕事を振るようなもんだからそもそも遅い言語は並行処理が不得意なんだよ
誰だよElixirが並行処理得意だなんて嘘を広めてるやつ Elixirを使えと言ってるのじゃなくElixirが実験的にやろうとすることを他の言語で使えってことだろ
NTTデータが10月に発生したシステム障害を未だに直せなくて技術力のなさが社会問題になってる >>870
無関係すぎて草
実験的にやろうとすることの意味もわからん
Elixirは他の言語より10年は遅れてるんじゃね? 非同期はJSでも使えるしJSの方がElixirより速かったりするからな
技術力には言語選定力も含まれる
Elixir選ぶ奴は絶望的に技術力ないわ Elixirをダウンさせず動かし続けるためにはOSをダウンさせず動かし続けなきゃいけないわけだがそこで選ばれてるのはElixirじゃなくRustだってとこから察してみては?
Rustの方が安定性は高いし非同期も得意だし速い
Elixirはただのネタ言語で何も新しいことしてないよ? >>874
排他制御の理解が間違ってるみたいなことをZuishinに突っ込まれてたのを見たな 調べてみるとElixirの本当に得意なことは分散システムの構築らしいとわかった
確かにそれならメリットがあるようだ
それを知らず並行/並列にばかり目を向けたりElixirで並行処理すると温暖化防止になったりすると思い込んでるエヴァンジェリストがElixirへの理解が足りてないように思う
複数のコンピューターを立ち上げて分散処理してエネルギー消費や熱が減るわけないじゃんっていう どういうこと?と思ってググったら地球温暖化に立ち向かうための解決策は消費電力あたりの性能の高いプロセッサを使用することだと言ってるようだ
その上でElixirは分散システムの構築が得意だということのようだ 消費電力あたりの性能の高いプロセッサを並列処理で回すのは良いとしてクソ遅いElixir使う意味はまるでないんでは?
マルチスレッドのプログラムならCでも書けるんだしさあ、電力消費もそっちのほうが全然小さそうじゃん。
Elixirにこだわる理由が知りたい。 >>877
消費電力あたりの計算能力が低すぎやしませんかね 並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その1「背景: クロック周波数の停滞とコア数の増加」
https://webcache.googleusercontent.com/search?q=cache:h2nA9iIGnQkJ:https://qiita.com/zacky1972/items/bfb3bd920f7bcea02c23
並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その2「スレッドと同期・排他制御」
https://webcache.googleusercontent.com/search?q=cache:ba5ywQTe86AJ:https://qiita.com/zacky1972/items/bbf1f7bdecbbd0492151
並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その3「同期・排他制御の2つの問題点」
https://webcache.googleusercontent.com/search?q=cache:jrSB9c4-rgMJ:https://qiita.com/zacky1972/items/10787cb6104c82016487
並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その4「イミュータブル性の利点」
https://webcache.googleusercontent.com/search?q=cache:24KsYxfJZiwJ:https://qiita.com/zacky1972/items/fa362f4d9b1252a207ad
記事が消されたのはまあどうでも良いんだけど有用なコメントが消えたのは残念。 ん〜IntelやAMD辞めてARMやRISC-V使えって? 記事消えたのが准教授がこのスレ見ての反応だったらと思うとちょっと嬉しいね アーキテクチャがarmで困ったことはないなあ
aptみたいなパッケージマネージャーにないやつはオープンソースのを自分でビルドしてインストールすりゃいいし 身内の記事に内容も見ないでいいねを押しまくる福岡Elixirコミュはしょうもないんだけど
それ以外の反応で准教授の記事にコメントつける人、前はちょこちょこいたのに最近は
さっぱりいなくなったね。
しょうもなさ過ぎて相手にされなくなったか准教授の方からブロックしたかどっちかな。 【個人開発】近くの二郎とサウナを一瞬で検索し、黄金ムーブがすぐできるアプリを作った
投稿日 2022年02月22日
【サービスURL】://www.jirosauna.com/maps
このサイトにアクセスできません
www.jirosauna.com で接続が拒否されました。
【個人開発】「真のナポリピッツァ協会」認定店をサクッと探せるWebサービスをリリースしました。
投稿日 2022年03月04日
URL: ://www.napolipizza-club.com/
このサイトにアクセスできません
www.napolipizza-club.com のサーバーの IP アドレスが見つかりませんでした。 UPLIFT プレミアム・サービスのお知らせ
https://uplift.5ch.net/
UPLIFT 主な特典
・連続投稿の規制を緩和します。
・スレッド作成時の規制を緩和します。
・5ch.netのスレッド表示画面に表示される広告を除去します。
・5ch.net専用ブラウザで5ch.netの過去ログを閲覧できるようになります。
・海外からのアクセス・ホスト経由からでも書き込みができるようになります。
・書き込みが規制されているプロバイダーからでも書き込みができるようになります。
・5ch.netを安定して利用できるように運営を支援できます。
5ちゃんねるを存続させるためには、皆様のご協力が必要です。
最後まで御精読いただきありがとうございました。 第13回TOPPERS活用アイデア・アプリケーション開発コンテスト 活用アイデア部門 への「RISC-Vプロファイルに沿ったRISC-V64ビットプロセッサ向けTOPPERSカーネル標準化」の提案
https://qiita.com/zacky1972/items/f36851185f9af4331aa8
> 第13回TOPPERS活用アイデア・アプリケーション開発コンテスト 活用アイデア部門 へ「RISC-Vプロファイルに沿ったRISC-V64ビットプロセッサ向けTOPPERSカーネル標準化」という表題で応募しまして,金賞を受賞しました.
素晴らしいですね。さすがは准教授。
> 現状 (主に2023年の代表者の研究進捗)
> TOPPERSカーネルのコンフィギュレータをmacOS上でコンパイルする方法を確立した.特に最新版のBoostを用いてコンパイルする方法を高田光隆氏にご教示いただいた.
> https://qiita.com/zacky1972/items/aa4507d6613a0e8bbf11
人から教えてもらったことを自分の研究進捗って言っちゃうのすごくね?
> GCCインラインアセンブルを用いて,RISC-Vベクタ拡張(RVV)のアセンブリコードを記述する方法を確立した.
> https://qiita.com/zacky1972/items/eabbcae5af04e24c2cc0
マニュアルに書いてある程度のことを「確立した」かあ。
記事にはコメント付いてるけどまるで無視なのは良い判断だなw >>888
TOPPERSて何?ここに税金が投入されているのか? 最初のコードの
#include <bits/stdc++.h>
using namespace std;
//Created by karaju.
int main(void) {
int n, l;
cin >> n >> l;
int score[n], ans = 0;
for (int i = 0; i < n; i++) {
cin >> score[i];
//i人目の点数を受け取る
if (score[i] >= l) { //i人目が l 点以上なら
ans++; //カウントする
}
}
cout << ans << endl;
return 0;
}
・bits/stdc++.hって非標準だよね? 使うのやめて。
・scoreを配列にする理由は?
・nの入力値によっては即スタックオーバーフローするVLAの危険性は認識してる?
・ていうかC++でVLAって非標準じゃね?
コードレビューするとこれくらいの指摘はされそうだけど競プロやってる人達は意に介さないだろうなあ。 >>897
グローバル変数使ってないだけまだマシな部類だぞ
ABCだと配列でスタックオーバーフローするなんてことはまず無い
その辺は脳死でできるようになってるし不要な配列を使うのもむしろ普通(ただしJOIだと不合格になる)
VLAは環境が指定されてて移植の必要がないから問題ない
まあガラパゴスなところはあるけどC++自体がいまや競プロ専門言語みたいなもんだし オブジェクト指向から入った人間はメモリのこと分かってないからクソと言ってる老害と大して変わらんよな
競プロ批判の件 記事投稿キャンペーン 「2024年!初アウトプットをしよう」
こんな方におすすめ
インプットしたことをしっかり定着させたい方 >>900
さすがにそれを同じと思うのは知識なさすぎないか?w オブジェクト指向から入るとメモリがわからんというのは意味わからん
ポインタの話をしてるならC++はオブジェクト指向じゃないと思ってるニワカかな? > まあガラパゴスなところはあるけどC++自体がいまや競プロ専門言語みたいなもんだし
こーゆーズレたコメント見ると競プロは害悪という主張には頷く他ないなあ。 > オブジェクト指向から入った人間はメモリのこと分かってないからクソと言ってる老害
「GC自動でやってくれる言語から入った人間」なら分からんでもないけどオブジェクト指向関係なくね? >>900
知識ない競プロerがベテランに言われてること理解もできずにバカにしてる図にしか見えんんだけど。 結局競プロの問題ってC++を使うから起きるだけなんだよなあ
でもってC++は競プロでしか使うとこなくてあとは全部Rustでよしのオワコン言語 > C++は競プロでしか使うとこなくてあとは全部Rustでよしのオワコン言語
実務経験ない人はコードを保守する概念もないから気軽にこゆこと言うよね。 新規案件はもちろんRustがベストだけど
既存のメンテでC++要員がいるよね
ただしそれさえもGoogleはC++と混ぜて書けるCarbonを使うことで脱C++を試みてる Dartがgoogleで今どういう扱いなのか外部にはサッパリわからんけどCarbonも同様だろ。 > 新規案件はもちろんRustがベストだけど
H8とかPICの案件とか想定できない人は軽々しくこういうこと言うよね。
実務経験ないんだろうなあとしか思わんけど。 >>911
あくまでもC++で書かれている遺産のメンテ用としてC++よりもマシなCarbonを使うと言ってるよな
Carbonの公式FAQにRustを使える状況ならRustを使うほうがよいとまで書かれている
>>912
そんな全体から見たらニッチな狭い分野は今まで通りにいけばよいだけの話だ
LLVMがH8対応してないくらい優先度が低い 競技プログラミングでもC++の行儀が悪すぎて誰でもきれいなコードの書けるPythonに置き換えられつつあるのが現状 C++は親の遺産を食いつぶしてるおぼっちゃまくんでしかないから遺産が無くなれば終了するということはみんな知ってなきゃいけないよね C++のライブラリが今でも進化していて活発という記事が出たな C++は人間が完璧に書かないとメモリ管理ミスでセキュリティホールなどを招いてしまう欠陥言語だけど
圧倒的に速く動き省メモリで済むという他の言語では代え難い特性があるから使われ続けてきたんだよね
しかし同じ速さ省メモリで動きつつその欠陥問題のないRustが登場したからほとんどの分野でC++は終わりかな C++を省メモリとか言ってる人ホントに物知らないなw えっZINQの高位合成をRustで?
まっがんがれ >>899
一見Elixirの記事なのに中身はElixirを見限った話でしかないのは何かの皮肉かギャグなのか
生産性も低くて速度も遅い言語に覚える価値あんの? 「ほとんどの分野でC++は終わり」を否定できてなくて草 インテルやARM、その他のメーカーが純正コンパイラにRust採用してからなんか言うといいかもね >>923
インテルもARMも純正コンパイラはLLVMベースに変わりました
そのためLLVMを用いるRustもそのまま対応されています >>925
「純正コンパイラ」の意味知らん馬鹿は引っ込んでてね そのうちRustにかわるだろw
そりゃ一度には変わらんさ >>914
> 業務経験の無い人にはわかんないだろうけどC++はオワコンだからw
> ID:BXfMAzFh
>>927
> そのうちRustにかわるだろw
> そりゃ一度には変わらんさ
> ID:BXfMAzFh
ダサっ ツールを選択する理由って様々要因があるのにC++オワコン説に拘ってる人ってなんも分かってない感じだなあ。複数人で作業した経験すらなさそう。 オワコンというより言語としての優劣でC++が劣っているだけだろ
そして多くの分野でRustが実用的に使えるようになりつつあるためC++は静かにゆっくりと死んでいく 痴呆症患者はどこにでも徘徊してるな
さっさと病棟に戻りなさい
結局C++とRustってどっちが良いの? 9traits
https://mevius.5ch.net/test/read.cgi/tech/1701997063/ c++に慣れて過ぎて継承無しじゃコード組めない身体になってる人は今後どう生きて行けば良いのか Rustを使うことでバグが減るんだから使わない理由がないわな >>935
テキスト領域って何?
コメントにあるコード領域のことかな? >>937
調べてみたら一般的にもテキスト領域と呼ぶんだな
なぜテキストなんだろう プログラムの、
記事のCODE数百行がこのgithubレポジトリから丸パクリされてて、ライセンス違反をしてないか?とか、
(例えば)そのパクリ元のレポジトリがMITなんだからそのリポジトリを引用元として書いたら?とか、
バグとか、をコメントで報告したら記事ごと消す輩もいるよね
なんでコメントに真摯に向き合えないのか
厳密にはライセンス違反を問えるのはその著作権を持つ本人だから、あなたに言われる筋合いはありませんとか反論できるのに… > 厳密にはライセンス違反を問えるのはその著作権を持つ本人だから、あなたに言われる筋合いはありませんとか反論できるのに…
そのような反論はできない
ライセンスと著作権は違うものだろ
非匿名でコメントしても恥をかくだけ 真摯に向き合いたいやつがキータなんかに集わない件
そもそも正しさというものについて無関心なやつのみが集まってる
アウトプット()という行為を人にとにかく見せつけたいだけ 赤の他人のコメントに向き合うってストレスかかるんだよね
指摘してる人はわからないだろうけど 心弱すぎて草
指摘する方も赤の他人の記事にコメントしてるわけだが >>941
940だけど著作権じゃなくてライセンス権?の間違いだ
どちらにしろ権利保有者にしか記事を訴えられないだろうから、記事執筆者はコメントに紆余曲折せず真摯でかつ強気でいればいいってことを言いたかった 権利保有者が訴えても多分負けるぞ
訴えるとかどうとかじゃなくモラルどうなってんだって話だからサイコパス理論はお呼びでないよ なにせ日本ではソースコードに著作権はないというアホな判例ができちまったしライセンスには双方の合意が必要でパクった方が「俺は合意してない」と言い張ればそれで終了
特許でも取ってない限り権利者の権利を守る法的根拠がねえんだなこれが
逆にモラルの話だからこそ誰が指摘してもいいってことになる qiita本部に権利保有者であることを主張して届け出をすればqiitaが動いてくれるでしょ、きっと
それかDMCAを振りかざすか >>944
赤の他人にクソ記事見せつけてる加害者意識を持てよ >>949
Qiita運営は投稿時に他人の権利を侵害してないことをチェックさせてるから
自分ところには責任がないってスタンスだぞ。 >>948
> ソースコードに著作権はないというアホな判例ができちまった
プログラムの著作物は、著作権法第10条第1項第9号で著作物の例示として規定されています。
したがって、ソースコード等のプログラムが著作権の保護対象となることは間違いありません。 >>953
それってどの裁判?ググって情報見つかる? >>949
DMCA訴訟って国内でできるの?
できるなら日本の判例なんて知ったこっちゃないができそう プログラムを持ち出されて外で使われていても
使われているということを証明するのが難しい
webページのデザインとかは判例はあるの? 見なけりゃクソ記事かどうかわからんだろ
クソ記事はタイトルに💩マーク入れといてくれよ >>939
記事更新してるけどやっぱ分かってない感じ。
https://qiita.com/7_inai_/items/e9a983d7218e0eb18705#comment-e5ba721d7a16f6f3c145
> また、「高速なアクセスが可能」という内容に関して、様々な情報があり、ハッキリとしたことが言えなかったので、その部分は削除いたしました。
本人が理解してないところでテキトウにぐぐってこんなもんかなとまとめてる模様。
迷惑行為よなあ。 一次情報をド素人が噛み砕いて
バランス悪く曲解して劣化した情報を
さらなるド素人に食わせようという
情報の劣化ループ
素晴らしいやろこれ
自己顕示欲ってやつはこんなにも効率的に人類を非効率にする 同じ人の書いたいっこ前の記事
RAM(メモリ)について
https://qiita.com/7_inai_/items/d288965e8fb22bb0bd9f
> RAMとは
> RAM(Random Access Memory:自由にアクセスできるメモリ)とは、コンピューターが実行中のプログラムやデータを一時的に格納するためのメモリのことです。
> RAMの役割
> ■マルチタスク処理:
> 複数のプログラムやタスクを同時に実行する際に、RAMはそれらのデータを同時に保持し、効率的に切り替える役割を果たします。
最低限の知識もない感じ。よくこれで記事書いて公開しようと思ったな。 『RAM(メモリ)について』という表題の記事でマルチタスクについて言及するのアホとしか思えんw リンカ(linker)とは
https://qiita.com/7_inai_/items/57747f7ab67b9c3b8368
> リンカの役割
> B不要なコードの削除
> リンカは、実行可能ファイルに含まれるが使用されていないコードを、ファイルサイズの削減や、パフォーマンスの向上のために削除することがあります。
> 削除対象となるコードの例を以下に挙げます。
> ・未使用の変数や関数
> ・コメントアウトされたコード
> ・実行フロー外のコード
リンク時最適化のことを説明してる風ではないので単に分かってないんだろうなあ。 コメントアウトしたコードはコンパイラが取り除くんだよ? >>965
確かに、この執筆者さんにはぜひコンパイラのことも勉強してもらいたいね 参考文献の書いてない記事なんてハナから見る価値なし
LLVMリンカlldの仕様のurlくらい文献に書いとけや これの説明なんか結構分かりやすいんじゃないか?
コンパイラが作ったバイナリをつなぎ合わせるプログラム
「lld」の作者が語る、リンカの仕組み
https://logmi.jp/tech/articles/325775
>リンカとはコンパイラが作成したオブジェクトファイル(.o)をつなぎ合わせて、1つの実行ファイルや共有ライブラリファイルにまとめるプログラム
>なぜリンカが必要なのか 実はなくてもいい(中略) 分割コンパイル(中略)
>リンカの基本機能 1. オブジェクトファイルを1つのファイルにまとめる 2. リローケーションを適応する 残りの機能はすべてオマケ なんとかのコード書いてみた、みたいな記事ひとつも投稿してないみたいだしコード書く人ではないんだろうなあ どうでもいいけど、勉強会みたいになってていいね
なんか助かる https://qiita.com/higashi_nc/items/9a5ea00415a008f06843#comment-fdc1d0f0391a81b554a3
> decimal ではなくても float でも 問題無いですね。
たまたまTrueになったのを「問題無い」ってw
この記事のコメント欄でずば抜けたアホだわコイツw システムコールとは
https://qiita.com/7_inai_/items/502f850e6ee220c9cc1d
> システムコールとは、OSが提供する機能を呼び出すための仕組みのことです。
アプリは通常、OSの基本機能に直接アクセスすることはできません。その代わり、システムコールを使用することで、アプリからOSの基本機能を呼び出せるようにしています。
・アプリが直接アクセスできないのはOSが管理してる計算機資源
・システムコールはOSの基本機能
この辺わかってないからこんな珍文が書けるんだろうなあ。 確かに、OSの基本機能にアクセスすることをシステムコールって言うんだろうに、わざわざ直接どうのこうのって変な言い回しをしないでほしいね
自分もシステムコールの理解が怪しかったからこれ読んだ
システムコールについてどれくらいご存じですか?
https://atmarkit.itmedia.co.jp/ait/articles/1111/16/news161_2.html 余計な言葉を足したり
必要な言葉を足したり
そうやってキータらしいクソ情報になっていくのです
そしてそのクソ情報を読んでさらなるクソ情報を生んで行くのです [例えシリーズ]構造体とは家であり、ポインタとは住所である
https://qiita.com/Oknt/items/c451df3e7a7368d5baa1
コンパイルが通らないコードを掲載してる記事はままあるけど
掲載してるコードが全部がそれっていうのは初めて見た希ガス 他にもありそうだけどいちいち覚えてないな
なんでこいつらは動作確認をせず記事にするんだろう >>980
「なんで○○」は理由を聞いてないよ
「○○するな」と言ってる 書籍や公式ドキュメントに依らない層がQiitaの記事読んで勉強した気になってて、そういう奴らが更にクソ記事書いてる気はするな。
馬鹿相手に無責任にアウトプット勧めてる奴らが諸悪の根源。 https://qiita.com/hase-k0x01/items/a220f99a22c34eeecc5a
現在のLGTM0
> この記事は以下の記事からリンクされています
> 【毎日更新】注目されてるポエムの記事まとめ🚀
> からリンク
> 6 hours ago
https://qiita.com/naruqiita/items/b34c6dcb46825b8e0c07
> 直近でLGTM数が多い記事を自動で集計して投稿!
LGTM数が多い記事とは >>984
> 🐣 ポエムタグの新着記事 🐣
> ポエムタグがついた作成日時が最新の記事をピックアップ!
↑は読めて理解できてる? >>985
理解できんな
もしかしてお前、ピックアップという言葉の意味を知らんの? 「(いいねもストックもされてない)ポエムタグがついた作成日時が最新の記事をピックアップ!」が読み取れんとはかわいそうな頭してるね ポエムとタグ付けすればどんなにアホなこと書いてもWelcome
それがQiitaです >>987
どういう条件でピックアップするか書いてるのに読み取れてないということかw
かわいそうな頭してるね 条件
直近でLGTM数が多い記事を自動で集計して投稿!
ポエムタグがついた or タイトルにポエムが付いた記事で最近つくられたものに限定!
ストック数も見れるようにしているのでぜひ注目👀 もう一度
・直近でLGTM数が多い記事
かつ
・ポエムタグがついた or タイトルにポエムが付いた記事で最近つくられたもの >>988
「クソ記事」タグがデフォで入るようにしたらいいんよね
そしたらそれを外す奴が出てくるから
それを外そうとする一瞬だけでもクソ記事か否かを自己批判してもらいたいものだ python.おかしな時間
https://qiita.com/tattyan3/items/0b3652cfe7654b0c8285
人語のような声を出す妖怪とコミュニケーションが取れると思った時点で誤っている感じ。 >>972のコメント以降へんな論争になってるのちょっと面白いw Zuishinが関わるといつも議論が変な方向に行くんだよね
本人気づいてないんだろうけど
個人的に彼みたいなのは関わらないのが吉 見たけどZuishinしかまともなこと言ってなくね? 推測で主張してるZuishinよかプログラム書いて検証してる方が人としてまともだと思う。どっちが正しいかはわからん。 precisionとaccuracyの区別はつけて欲しいわ このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 232日 3時間 50分 43秒 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login レス数が1000を超えています。これ以上書き込みはできません。