C言語なら俺に聞け 144
レス数が950を超えています。1000を超えると書き込みができなくなります。
>>892
ゲームボーイのQビリオンの動画を見ると
実装方法が自ずと思い付く >>891
そんな意味なんて人それぞれやん…
バカじゃねえの >>890
time_t とか struct time とか使って書いたことある? >>890
時間制限付きの算数ドリルなんてどうや? 宿題もたいがいだけど、その上をいくな
(既に〆てる奴なら上位の回答見れないのけ?) プログラムはある程度かけるけどそういうコンテストみたいなのってからっきしダメなんだよなあ
将来これでやってけるのか不安 プログラミング・コンテスト・チャレンジブック、第2版、2012
1年掛けて、この本の問題をやれば? 与えられた希望一覧の中の希望を1番多く叶えられるようなチェック柄の位置に対する叶えられる与えられた希望の数を求めるらしい(´・ω・`) 複数の条件 (xi,yi,ci) ci =白か黒 と 市松模様の大きさ K
KxK の市松模様を任意の位相でプロットし(=(周期2Kの中で)位相を適当に振ったとき)
与えられた条件をできる限り満たしたい。 変数は位相
解で要求されているのは満たした条件数 シカくんが塗りたいマスの一覧
シカくんは出来るだけ多くのマスを塗りたいらしい。 出来るだけ多くのマスを塗りたい(希望一覧の中のマスの中で) どうやるの?
パターンを全種類生成してから条件に合わないものを弾いていくの?
数学苦手だから分からない>< あー。なんとなくわかってきたぞ。白か黒かに塗りたいのはその指定された座標の1マスだけということか。
その希望を実現するためのマス目を求めるってこと?
でもその出力例ってなんなの?数字一つしか出力されてないけど。なんの値が出力されてるの?マス目の一辺の長さ? 希望を出来るだけ多く満たせるようなチェック柄の位置に対する満たせる希望の数を出力するらしい わからんw
しかし、わかる必要性もないような気がしてきたw
わからない事はわからないままにしておこう。
きっと今はその時ではないのだ。 シカくんが塗りたいマスで実際に塗れるのは何個か求めるんだよ(>_<) N=100000、K=1000の場合、考え得る模様のパターン数は幾つになるのかな?
全部計算するのに何分かかる?
生成パターンを保存するためのメモリ容量は何MB必要? 模様のパターンは 2K × 2K 通りで時間はO(N×K^2) >>920
もうよい。昔の事は忘れようではないか。w
ていうかここでこの話続けるのもスレチな感じがしてきた。C言語かどうかの問題じゃないし。 確かにパズルの解き方の部分と、Cによる実現は別々に考えた方が良さそう。
それにしても問題文が酷いね。
たぶん元は外国語で、サイエンティフィック・アメリカン誌の
読者への問題コーナーみたいなノリの文章だったんだろうけど、
日本人向けにはまるまる再構成すべきだわ。 解き方のイメージとしては↓こんな感じ?
x = (x[i] /K) & 1;
y = (y[i] /K) & 1;
c = x^y;
if (c1==c) count++; ニキ質問!
頑張ってくるCといかいうサイト終わりそうなんだけど、2冊めってか次やるなら何がいいっすか? >>927
そのサイトは知らないけど、解説読んだり課題解くだけじゃ大して進歩しないから、とにかく自分でコード書いて悩んで調べて考えて乗り越えるのを繰り返してみたら。やってるうちに自分が理解していないのはどこか、自分がやりたいことに必要な物が何か分かると思う。
あと、こういうことやりたいのにこんなめんどくさい方法しかないの?って思うようなことは既に上手いやり方が確立してたりするから、そういうのも一度自分で経験してから身につけると理解が深まると思うよ。 >>927
「C実践プログラミング」 でCの文法、make、gdbなど、基礎を習得
↓
「C言語ポインタ完全制覇」 or 「秘伝C言語問答 ポインタ編」 でポインタに関して完全理解する
↓
「エキスパートCプログラミング―知られざるCの深層」 でスタック、ヒープ、リンカ、ローダなど周辺知識を習得
↓
「C言語によるオブジェクト指向プログラミング入門」 で大規模プログラムの作り方を学ぶ
↓
「C言語デバッグ完全解説」でバグに強いプログラムの記述法をマスター
↓
「Code Complete(上)(下)」でより良いC言語プログラムとは何かを各人で考察する
↓
神の誕生 神だってお
どんだけレベル低いんだよ
まあレベルの問題でもないんだが
なにがしか発明をしてやっと神界の入り口だぞ 青色LEDとかflashメモリーとか発明して初めて神の領域 己の創りたもうた世界に住人がいなきゃ
どんなにレベルだけ高くても神と呼んでくれる人がいない ハードなんかいくら発明したって、神になれる訳ないよ >>933
その場合は呼んでくれる人が居なくても最初から神に確定してるのでどうでもよい。
まあしかし夢の中では夢の世界を作ったのは自分なのに、その夢の中の登場人物は特に崇めてくれないのと同様に、本物の神は普通は崇められていない。 ん、俺はあくまで喩え話をしていたんだが
ガチの宗教論になってきたのか? 宗教論なら、gotoは悪とかreturnは関数末にひとつだけ論とかやろうぜ? 質問。
1/3を3回、6回、9回足し合わせる計算を単精度と倍精度でそれぞれ行うプログラムを作ったんだけど、
6回足したときの結果が単と倍で逆転しているような気がする
これってプログラムがおかしい?それともこうなるようになってる?
プログラム
https://imgur.com/ncjlu.jpg
実行結果
https://imgur.com/QpRfO.jpg >>940
10進数に直した時に小数点以下20桁ないからそうなるだけでは?
どちらも本当はだめなんだけどビット数の都合でうまいこと10進で丸まる事があるだけだと思うが。 >>940
これと同じなら10進数では小数点以下は15桁だ。
http://www.cc.kyoto-su.ac.jp/~yamada/programming/float.html 分数を実数で扱うからこうなる。
分数なら分数のまま、分子と分母が扱える型を使って計算しろ。 分数なら、Ruby の、Rational とか
浮動小数点は、常に誤差があるから、
正確な値は表せないから、== で比較もできない
また、式の順番を入れ替えたり、コンパイル時・実行時で、
同じ式でも値が異なるとか、とにかく実装依存 C使いにオヌヌメするならC++だろ
分数クラスはないが、標準にgcd関数があるから
小学校の算数ができる人ならすぐ自作できるし、
ratioなら翻訳時評価までできる >>930
紹介してる本は良いものだと思うけど、入手性はどう?
今でも新本で買えるのかな。
…いや、俺の経験じゃ古本屋ではついぞ見かけなくてね。 cでカーネルとか書いたことないからアレなんだけどmalllcとかfopenとかどうやって書いてるのかしりたい >>947
ターゲットのOS、CPU、コンパイラーのC実行時ライブラリー(C runtime; CRT)のソースを探せ。 malloc() の原理というか基礎的な実装方法は
『プログラミング言語C』で1章割いてた記憶がある。
まるまる1章じゃなかったかも知れんけど。
あとは「標準ライブラリのmalloc()は遅くて使い物にならん」と言って
でかいメモリブロックをひとつだけシステムから借り受けた後、
小分け部分は自前で管理する実装がネットのあちこちで紹介されてる。
TLSF とかいうアルゴリズム。 >>947
その辺は glibc とかがソース公開してるんじゃないかな。
でもそんなに難しくないよ。
ある程度わかってくると自作もできる筈。
既にあるので作る意味ないけどな。 >>951
その小分けの階層構造に愕然とはしなかったのか 若者はinetdのソースを是非読んで欲しい。
貧乏くさくて涙ちょちょぎれるぞ。 最近組み込みやデバイスドライバでもC++使われるのが増えてきたけど、Cの未来ってあるのかな? 縮小傾向はあるのでは?しかし、UNIX系OSが根強いから中々なくならんだろうけどね。
特に Linux が組み込み関係や Android で物凄く広まってほぼ定着してしまったからな。 組み込みLinuxやAndroidではC言語ってそんなに使われてないと思うが 例えば組み込みLinuxとして有名なRaspbianではPython、またAndroidではJavaが主流
直接カーネルでも弄るような特殊な事例を除けば、C言語でのアプリ開発なんか殆ど誰も行なわないだろ C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
つまりこういうことだ: C を選ぶのは、唯一のまともな選択だ。
ぼくは C よりも C++ をプロジェクトに使いたがるようなプログラマーは、みな
*本当に* ムカつかせておきたいようなプログラマーだという結論に達した。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。
言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。 >>962
FILE* は優秀
time_t とか struct tm は糞 >>963
そういった分野ではOS自体が必要無いしな
ファイルシステムやコンソール入出力が存在しない場合も多い
メモリと入出力ポートさえ直接制御出来さえすればいい
アセンブラに比べればC言語の方が主流ではある 「組み込み」て言葉を、プアなハードウェア環境をギリギリ限界まで使う、と
寸法は小さくても目的には十分以上の能力を持ったコンピュータ、と
両様の意味で使ってて議論がちぐはぐになってるように感じる。 選択肢がないと言うのは語弊がある
とことんまで高速性を追求するならアセンブラということになる >>961
ああ。アプリ開発ではCはほとんど使われてないだろうな。 OSそのものがCで書かれているからと言って応用アプリもCで書くのか? >>962
Linusと書いてなくても、元の英語のままでなくても内容からしてLinusが書いたとわかってしまうなw とことん高速求めるなら、FPGAでワイヤーロジック組めよ。 >>972
それはOSとは関係ないがLinuxの場合組み込み用のボードでよく使われている関係上使われる率は今のところ高いんじゃないかな。
Cだと最終的に作られる実行形式のバイナリが小さいというのもあるしね。 >>972
書くだろ
アプリと言うから違和感あるけど、制御プログラムなら今でもCは普通に使われてる まあしかしソースが公開されていて誰でも開発に参加できるOSがCで書かれているとなるとそのOSが使われ続ける限り最低でもそこでCが使われ続けるということだからCは消えないだろう。
俺の予想では別の言語をベースにして作った互換性のあるOSが爆発的に流行してLinuxやUNIX系OSを誰も使わなくなった時にCが完全に廃れると思う。なので100年以上先なのではないかな。
(途中time()の都合で改造が入るだろうが、それが元でOSごと全部廃れることはないと思う)。 ちょっと前のパソコンスペックのlinux機だって組み込みと言うし。 なんでパソコンってアプリケーションから書き換え可能なFPGAを搭載しないの?
その回路を使って光速で処理できるのに... 標準じゃないだけで
載せたければいくらでも載せられる プラス数万円程度のFPGAじゃあ性能なんてたかが知れてるだろう。
Intelがチップセットに内蔵するというならともかく。 ニコニコ動画かどこか忘れたけど動画の処理をFPGAに実装できるらしいけどあれって高いのかな >>983
数年前にドワンゴがFPGAかASICだか開発して販売するとか記事読んだ覚えあるわ
すっかり忘れてた
その後続報聴かんし >>979
FPGA は ASIC に比べると「遅い」 速くなるかはさておき、C/C++でのFPGA設計はRTLより楽ではある ふと「最近 \e ってネタ聞かなくなったなぁ」と思った。 ASIC って書き換え出来ないやん?
>>979 の意図で ASIC は無いと思うんだが >>989
だから FPGA は遅い、といっている セットアップ時間が掛かるって話と、応答速度がごっちゃになってるけど、わざと? ASICはApprication Specific ICというだけで、フルカスタムという場合もある
ただし、それだけが理由ではない
仮に自分とこがフルカスタムでも、それはIntelと同じ土俵に立ったに過ぎない
開発費を同等以上にかけられるとは限らないがね レス数が950を超えています。1000を超えると書き込みができなくなります。