プログラミングのお題スレ Part13
■ このスレッドは過去ログ倉庫に格納されています
>>83 自明もへったくれもない。 プログラムが正しいかどうかの確認だよ。 プログラムも書かないで能書きだけ垂れてもなんの足しにもならない。 ここはプログラムのお題スレだよ。 >>62 のお題は前スレのGMP の整数平方根の説明の文章の中から取り出したもの。 つまり、ここまでできると、次は n**2%(2**24-1) のリストを作れと言うお題になるんだろうけど、時間がかかりすぎるからお題にするのはやめた。 このリストができないと実際の平方数の高速チェックが出来ないじゃん。 しかしここまで複雑な処理をして本当に早くなるのかどうか疑問だけどな。 mod 2**24-1 って結構時間がかかりそうな気がする。 >>85 一番能書き垂れてんのお前だろ クソみたいな御託並べる前に自分のことを考えろっつったろうが GMPが一体どこで > n**2%(2**24-1) のリスト なんか使ってんだ?91で割った場合のテーブルでさえ12byte必要だってのにどうやってそんな巨大なテーブル用意するんだ? GMPの中身なんか数学の成果の塊だぞ?お前が数学したくないだか出来ないだか知らんがアルゴリズム考えるようなスレでクソみたいなこと喋ってんじゃねぇよ お前はコードを書いても価値がない 単なるbitmaskで済まない様な場合 あるいは除算して剰余を求めるなら さんざ研究されていると思うから自力で1から考える前に 先人の業績を知れってことだろ アバヨ ノシ お題:ポーカーダイス 通常のサイコロを5個振って出た目をポーカーの役になぞってそれぞれの出現確率を求める。 役は、5カード、4カード、ストレート、フルハウス、3カード、2ペア、1ペア、ブタ(ノーペア) 例えば出た目が 1,1,3,1,4 ならスリーカード。2,5,4,6,3 ならストレート。 5カードは6/(6^5)、4カードは(5*5*6)/(6^5)というように数学的に 求めても難しくはないのですが、ここはプログラミングのスレなので 全通り力技でチェックして求めてみてください。 解答例:C言語 https://ideone.com/4X62Am 6^5総当りせよってか… native compiler系言語で力技か python3 https://ideone.com/k6Ea4j 最後の出力部分はpython 3.6以降だと for k,v in hand.items(): print("{} :\n {} / 7776 ({} %)".format(k,v, round(100*v/7776,2))) でいけるけど実行環境が3.5なのでやむなく なんか数学でもできる力技お題増えてきたな もっとプログラミングじゃないとできないような良いお題無いんだろうか 確率の問題でも特定の疑似乱数と種を使った偏りを求めるとかは数学では難しい お題: 日本語文字とカッコ { } とスラッシュ(/)で構成された入力文字列Sが与えられる。{ }で囲まれ、かつ スラッシュで区切られた部分文字列について、それぞれ場合分けを行って、複数の文字列のリストに展開して改行区切りで出力せよ。 カッコの対応が間違っている場合はERRORを出力せよ。 (例1) {ひまわり/あさがお}は{植物/花}です。 (出力結果) ひまわりは植物です。 あさがおは植物です。 ひまわりは花です。 あさがおは花です。 なお、展開の順序については問わない。カッコがなくなるまで繰り返し展開せよ。 (1) {あ{いう/え}/お{か/き}/く}け{こ} (2) さ{し/す}せそ{{た/ち}つ/て}と ヒント: まず、適当な場所でブツ切りにしてノードに分ける。 (1)の答え(※ソート済み) あいうけこ あいうけこ あえけこ あえけこ おかけこ おかけこ おきけこ おきけこ くけこ くけこ くけこ くけこ (2)の答え(※ソート済み) さしせそたつと さしせそちつと さしせそてと さしせそてと さすせそたつと さすせそちつと さすせそてと さすせそてと これでいいのか? > (1) {あ{いう/え}/お{か/き}/く}け{こ} あ いう け こ あ え け こ お か け こ お き け こ く け こ > (2) さ{し/す}せそ{{た/ち}つ/て}と さ し せそ た つ と さ す せそ た つ と さ し せそ ち つ と さ す せそ ち つ と さ し せそ て と さ す せそ て と ごめんなさい。間違えました。重複は単一化して下さい。 単純に場所分けを樹木図で考えると重複ができるようだ。すみません。 お題:Aが真であるならばBが真である ことをプログラムしなさい。 バカなのか?AとBに因果関係があるわけじゃないし、この世の全てがプログラム言語でマッピングできるわけじゃない、数学徒は帰れ const A = true; const B = A === true ? true : false; console.log(B); >>113 If A = True Then B = True End if {あ{いう/え}/お{か/き}/く}けこ あいうけこ あえけこ おかけこ おきけこ くけこ さ{し/す}せそ{{た/ち}つ/て}と さしせそたつと さしせそちつと さしせそてと さすせそたつと さすせそちつと さすせそてと >>113 > Bが真である をどう解釈するかによる 文字通りの解釈なら If A Then Assert(B) かな Bを真にすると解釈するなら>>117 が正解かな >>116 と>>119 はAが偽の時にBを偽にしちゃうので誤りやね >>117 も間違い。偽のときは未定義なんだからエラー吐かなきゃ Aが偽の時はエラー吐かなきゃいけないとかBを偽にしてはいけない とかいうのは勝手な拡大解釈でしかない >>125 アホかお前 AならばBでAが偽ならばそれは真だっつーの 義務教育からやり直せよ >>128 > AならばBでAが偽ならばそれは真だっつーの えっ、どういうことなの? それは AならばB のとき AでないならばB ということ? BはAに関わらず真ということ? > AならばBでAが偽ならばそれは真だっつーの の意味がよくわからん… >>129 論理としては A => B (AならばB)は対偶論理 ¬B => ¬A (BでないならばAでない)を成り立たせるために通常 ¬A∨B (AでないかまたはBである) で定義される つまり A => B という論理式は A が偽であれば B の真偽に依らず真になる だから何だという話ではある >>129 そう決まってるじゃん 前提が偽ならどんな推論でも導けるし真になる 論理学の初歩 「AならばB」 と言う命題は 「Aが真でBが真である Aが偽であればBは真である」という命題の 上の文の3行目のはじめの部分をプログラムしろということだぞ A: 自然数 : 1,2,3,・・・・・ B: 整数 : ・・・・・ , -2,-1,0,1,2,3,・・・・・ AならばBである AでなければBでもない BでなければAでもない >>135 間違い A: 自然数 : 1,2,3,・・・・・ B: 整数 : ・・・・・ , -2,-1,0,1,2,3,・・・・・ AならばBである Aでなければ不定 BでなければAでもない >>130 ありがとうこれは分かりやすい。 高校出てないけど義務教育は真面目にやったんだがなぁ…こんなのあったっけ? >>136 よくできました。 お題: ひらがなで与えられた五段活用動詞の五段活用を表示しなさい。 明らかに五段活用動詞でない場合は、ERRORと表示しなさい。 >>138 義務教育ではやらない というか高校数学でも明示的に教えはしない(証明ではしばしば暗に使う) そして大学の数学科では何をおいてもまず最初に学ぶ >>145 必要な感じがするのであれば高認受けて高卒と同等にでもなりなさい。昔の大検と違ってそれだけでも高卒扱いになる。 その後大学行くかどうかはご自由に。金と時間があまりないなら通信制ってのもあるよ。 この頃はネットの大学もあるな。よく知らんけど。 まあしかし既に社会人になって何十年も稼いできてしまった人の場合はもはやどうでも良い話かな。 >>138 理解したいと思った気持ちが大事。深入りの必要はない。 プログラムの世界というのは、客のニーズを知らなくてもなんでも解決しないといけないから、その時々で勉強するしかない。 実践の世界。 素地がある方が理解は早いとは思うが、気にすることは無い。 その時に必要なものを勉強すれば(理解できれば)良い。 全ての学問を習得するなんて不可能なんだから、学問なんてあまり気にしない方が良い。 ただ、論理的な思考訓練はやった方が良いとは思うが、大学でできるとは思わない方が良い。 ひたすらプログラムを続けた方が思考訓練になると思うぞ。 >>113 しかしさ、この日本語は日本語として成り立っていないんじゃないの? 日本語としても論理学としても 日本語の曖昧さを残したまま、お題にする方がおかしい。 これを自分の顧客に提示して見なさい。 バカじゃないのと言われるよ。 理解力がないと思われるだろうな。 >>132 その2つの意味後違うって言うならそうなるセマンティクスを提示してみせろや 「普通は」同等に扱うだろ チコ 「A->Bの意味も知らずにボーっとコードかいているんじゃねよ!」 >>99 Ruby def hoge(str) return str if str.match?(/\A[^{}\/]*\z/) raise 'ERROR' if str.match?(/\A[^{]*}|{[^}]*\z/) a, *b = str.scan(/(?<={|\A)[^{}]*(?=}|\z)/).map{|s| s.empty? ? [''] : s.split(?/)} s = str.gsub(/(?:{|\A)[^{}]*(?:}|\z)/, '%s') a.product(*b).flat_map{|e| hoge(s % e)}.uniq.sort end %w[ {あ{いう/え}/お{か/き}/く}け{こ} さ{し/す}せそ{{た/ち}つ/て}と] ].each{|s| puts hoge(s), $/} # => あいうけこ あえけこ おかけこ おきけこ くけこ さしせそたつと さしせそちつと さしせそてと さすせそたつと さすせそちつと さすせそてと >>133 >「Aが真でBが真である >Aが偽であればBは真である」 完璧に間違っていますね…Aが偽であってBが偽であってもいいのです あなた、もう馬鹿としかいいようがないですね、論理学の教科書が読めなかったの?いや、日本語が読めなかったの? 生きていること自体が罪悪といわずして何といえばいいのか… 死ね お題 print(a) のように変数の宣言や代入なしで 使用するとどうなろか EXCELシート名が1文字のシートが数シートある。これをwindows10でVB6を使いデータベースで読み取ってみせよ。 >>154 だから>>134 で4行目間違えたって書いてあるだろ よく読め >>155 AならばBと Aが真ならばBが真 が同じならば AならばBと Aが偽ならばBが真 と同じ AならばBと Aが偽ならばBが偽と 同じ ということになるぞ? これは同じじゃないから君の言ってることは 間違ってるということだな >>160 糞コテの肩は持ちたくないがなんだこのくっそみたいな日本語は 「AならばB」と「Aが真ならばBが真」が同値ならば 「AならばB」と「Aが偽ならばBが真」と「Aが偽ならばBが偽」が同値 って言いたいのか? 同値になるわけねえだろ ABの真偽は4パターンしかねえんだから、いくらお前が無能でも全4パターンくらい考えてからレスしろよ 大体、任意の命題Pに対して「P」と「Pは真である」が同値にならないケースってなんだよ 馬鹿も休み休み言えよホント >>162 >>161 に「よく考えたら同じだな」って書いてあるじゃん 「よく考えたらやっぱり同じだな」だけでは何と何が同じだと思ったのかわからない 悪びれた様子もなく前後の文脈からも推論不可 とてもまともとは思えない >>156 Lua print(a) 実行結果 nil 言語とか使えるライブラリとか制限しないと 意味が無くなっている希ガス 言語指定した場合でも特定の文法を使っては ならないとか制限加えると面白いものが 出来るような,,, >>165 お前の場合、わかりにくいんじゃなくてわかりえないの 日本語もおかしいし >>168 俺の文が不親切すぎたよな ごめんねごめんねー >>167 制限なんかしなくてよいよ。 ライブラリが嫌いならあまりライブラリが使えそうにないお題を出せばよいだけだし。 例えば正規表現ライブラリなんて装備されていない言語は殆どないだろうし、標準装備している言語とそうでない言語で不公平になるし。 使えるものはすべて駆使して解けばよいだろ。 >>113 python if A: B=A 結果 Aが True の時 B(結果)= True Aが False の時 B(結果)= None (変わらず) Aが False の時 B(結果)= False (変わらず) Aが False の時 B(結果)= True (変わらず) >>113 Lua functio naraba(A, B) if A == B then return true else return B end end >>172 それちゃうよ。 A が False の時 B がFalseに限定される >>156 C言語のようなコンパイルする言語だとだいたいはコンパイル時にエラーになって実行不能だろうなあ(そうでない言語もあるかも知れないが)。 更に print がない言語もある。少なくともCの標準的なライブラリにはない。printf()やputs()のようなものはある。 なので変数宣言すればコンパイルは通るが今度はリンクで関数が見つからなくてエラーになりこれまた実行不能。 まあでも言語や環境で起こることは違って来るので答えは沢山出てくるかも知れない。(またはほとんど相手にされないかだ)。 お題 長方形のサイズが指定された時、その長方形に敷きつめられるパターン全て列挙 回転もおkかは好きに定めていい 例: 2 3 # ### # # ### ### 回転もOKの場合は↓も入るってことかの? ## # >>176 なんか図が良くわからないな。 2 x 3 なら、そのパーツは, / は空きだとすると *// *** と /** ――- *// *// と /** /** ――― *// **/ と /** //* ―― *** *** ――- みたいな感じかな。パーツの回転を許す許さないは自由という事。 3 x 3 の時は斜めのパーツも許すんだろうね。 *// /*/ //* これが一つのパーツ? >>178 斜めのパーツは現実的には作れないし、組み合わせが膨大になるから、許さない方が良いのかも。 縦、横に繋がっていないパーツは除外かな。 これはかなり難しいお題になるんじゃないの。 パーツを少なくするためには、穴開きパーツも許さない方が良さそうだし。 パーツは、空白は 0 基本図形は 1として表した方が良いのかな。 2 x 3 なら 100 110 と 011 001 とか >>178 同じ形のパーツだけで指定の長方形に敷き詰められる物を探すんじゃろ プログラミング超初心者です 自動で2ちゃんにコピペを書き込むようになりたいんですがそれってかなりレベル高いスキルですかね? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる