プログラミングのお題スレ Part11
■ このスレッドは過去ログ倉庫に格納されています
>>420 と同じようなのをやった気がするなとログ探したらやっぱりやってた…3年以上前やw プログラミングのお題スレ Part6(c)2ch.net https://peace.5ch.net/test/read.cgi/tech/1418278634/148,703 >>426 数学要素があること自体はいいんだけど、数学的に解いたら後は手計算の代わりに入出力と演算をプログラムにやらせるだけっていうお題は興醒めというか面白味がないね。 でもO(1)かどうか確かめられない人がほとんどなんでしょう お題スレ Part9 では、 tan() の値が有理数になる場合についての 数学的証明が活発に議論されていたな 数学者がプログラミングの領域にしゃしゃり出てくんなや プログラミングはExcel方眼紙を操る文系の神聖不可侵領域なんや ディープラーニングとかAIとかモロ数学(知識)では? プログラミングも一応数学の一部ではあるけどな。計算手順だし。 しかしプログラミングのお題として数学問題そのまま出されると数学的に頭で考えるだけで解けてしまってあまり意味がないだろう。 コンピュータに計算をさせるという要素がなくなりプログラミングのお題にならない。それは数学のお題だ。 >>430 の過去スレの有理数・無理数の問題が数学問題で、 このスレの>>420 は、プログラミング問題だな。 >>420 「同値」の意味くらいは知っておいた方が良いかと >>428 プログラムってのはそういうもんだろ 人間が考えたアルゴリズムを言語という形にするだけ 数学ってアルゴリズム考える所までで終わりじゃない?算数や物理じゃないから式に値を入れて計算して答えを出す所までやる必要がなくて、式そのものを求めて終わり。 このスレで数学って言ってるのは 式だけじゃなくアルゴリズムまで含んでる気がするけど アルゴリズムは数学じゃないっていうなら >>420 なんか数学的要素ゼロになっちゃう プログラミング的な試行錯誤のあるお題を考えるのって難しくない? まぁ俺には数学的なお題を考えるのも難しいが あらら、やっぱ>>420 はもう出てたか よくある設定だし既出かもなーとは思ったが >>439 まあ、式を複雑にしたのがアルゴリズムみたいなものかな。 で、コンピュータを使う理由は普通はプログラムを作るためではなくて、実際にプログラムを動かして計算させて結果を得るためだ。 正解となるプログラムを作った段階で終わりにはしない。 式とアルゴリズムは別物 計算アルゴリズムが存在しない式もある やっぱり不気味だよ 例えば>>275 なんて最終盤面がU・D・L・R(上下左右)とUR・UL・DR・DL(左上・右上・左下・右下)の8つしか無いだろ 2回計算して終わりじゃん 2回かどうかは知らんが、最後に2パターンのうちの一つを作って回転もしくは反転させるだけだわな 入力ごとに馬鹿正直に駒を動かすようなプログラムを組む奴は壊滅的にセンスが欠けている お題: 以下のように操作を繰り返して単一リストになったらその要素を返す [1,2,3,4,5,6,7,8,9] -> [5,1,13,2,21,3,29,4] -> [16,16,41,1,66,38,91] -> [8,8,124,69,33,19] (中略) -> [4,216] -> [2] テスト例: [1,2,3,4,5,6,7,8,9] -> 2 [9,8,7,6,5,4,3,2,1] -> 2496 [3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6] -> ? >>455 要素が1個になるまで繰り返す 奇数の場合3で掛けて右の数値を足す 配列の右端を切り捨てる とか、どこ情報なの? こんなの読み取らなきゃいけないのなんて「プログラミングのお題」ではない こんな糞問題出すなや >>452 誰でも簡単に出来るお題じゃあつまらんから 数学だったりパズルだったりの要素があってもいいかと なぜ朝鮮人はプログラムを書かないのか それは書かないからではなくて「書けない」からである >>450 題意はわかってるけど頭の中でコマを動かせないんだと思うぞ >>488 例えばこんな風に動くとかわかる? よく考えてみて 元のボード abcdefghi. 12345678.. .......... 'DRUL' 適用 1abcdefgh. 2345678i.. .......... もう一度'DRUL' 適用 21abcdefg. 345678ih.. .......... さらに'DRUL' 適用 321abcdef. 45678ihg.. .......... ああ>>446 , >>448 は勝手に駒の区別をしないことにしたうえで難癖付けてたのか プログラミング以前に日本語のセンスが「壊滅的に欠けている」なw 日本語の問題なんだろうなとは俺も思った。それにしてもちょっとでもコーディングしてみれば勘違いに気づきそうなものだが… コーディングしない系プログラマなのか ×コーディングしない系プログラマ ◎コーディングはできない、プログラマでもない、人にいちゃもんつけるのが得意なだけの嫌われ者 >>465 俺はIQ高いから頭ん中でシミュレーションしてみたんだわ ただ、駒が全部真っ黒で見分けが付かなかった すまんな このスレもう4年以上経つのか 時の流れって怖すぎだよな >>464 それってそんなにコマ沢山使わなくてもわかるよね。 3つのコマを2*2の4枠の中に入れれば傾けるだけでくるくる回せるから。 >>471 >>446 で本人が言っている8種 >>448 で反転だの言ってるからその倍にして16種 結果の盤面がそれ以下のバリエーションだと 「やっぱり8種類以下しかないじゃないか!」とかになるだけだろ もちろんもっと少ないコマでも結果が16種より多くなる盤面はあるけど、 幾らでも多くなるよというのをイメージしやすいように大きめにした >>358 勉強をかねてこれやってるが、ある程度、できたところでアップしてみる。 考えてる方針が速いとはおもうが・・・ >>378 HTML5 + Web Audio API (1) を音声出力 https://ideone.com/9aOhLO お題 スペース区切りで入力された文字列をすべて含むリング状の文字列を出力し、 その後に、各入力文字列に対応するインデックスと長さを出力せよ 出力文字列の構成・格納順に関しては特に制約は設けない インデックスと長さは出力文字列の先頭からの最短マッチで求める [制約] (なくしてもいい) 文字列の構成文字は0と1の二種類とする 入力の各文字列長は最大9文字とする 入力要素数は最大255個とする [入力例1] 0 1 01 10 111 1001 [出力例1] 01110 (0,1) (1,1) (0,2) (3,2) (1,3) (3,4) [入力例2] 01 1000 1010 100 0 0010 110 0000 00 0111 101 0100 11 10 111 0110 1101 010 000 1 001 0001 011 1001 1011 1100 [出力例2] 010100001101110 (0,2) (3,4) (1,4) (3,3) (0,1) (14,4) (8,3) (4,4) (4,2) (10,4) (1,3) (2,4) (8,2) (1,2) (11,3) (7,4) (8,4) (0,3) (4,3) (1,1) (6,3) (5,4) (7,3) (13,4) (9,4) (12,4) 関連 >>378 >>419 >>474 じゃあ競争しよう 私はこれからスタートであまり時間もないので ちょっと時間がかかるかも知れないけど >>477 入力文字列を単純につなげば解の1個だが... 求める文字リングが短いほど良い解っていう条件? >>479 そんな感じです ほどほどに圧縮できてれば必ずしも最短でなくても >>478 です とりあえずこれだけ出来ました 4770でシングルスレッドのC++で15分くらい 半径を倍にすると16倍くらいは時間がかかりそうなので マルチスレッド&アセンブラ&AVXでガシガシに最適化したくらいじゃ 大して検索範囲は増えなそう 何かアイデアがないか考え中 ---- 3 : r=1.178511 4 : r=0.707107 5 : r=5.892557 6 : r=2.500000 7 : r=23.890677 8 : r=1.581139 9 : r=15.320647 10 : r=12.500000 11 : r=57.536370 12 : r=3.535534 13 : r=111.621856 14 : r=62.500000 15 : r=76.603235 16 : r=5.700877 18 : r=32.500000 20 : r=17.677670 24 : r=12.747549 28 : r=88.388348 32 : r=23.505319 36 : r=45.961941 40 : r=63.737744 48 : r=52.559490 64 : r=117.526593 ピタゴラス素数(4n+1型の素数、5、13など)は2乗和で表わせて。 逆に、2乗和(X^2+Y^2)は、2とピタゴラス素数の積の表わせる、もしくはこの問題を考える上でそれだけに限定していいとおもってる。 2^i * 5^j * 13^k * ・・・・をピタゴラス合成数と名付けると。 X^2 + Y^2 = ピタゴラス合成数、の解とその個数は比較的カンタンに求まる。 それを利用して、拡大(縮小)と並行させたやつで、最小半径を与えるのは全て表せるはず。 具体的には、上の解が求まっていれば、 (mx + a)^2 + (my +b)^2 = ピタゴラス合成数、の解と個数もそれなりの低コストでもとまる。 mの剰余を考えれば、解があるaとbの範囲も限定できる。 ノーヒント、全て自力で求めようと思ってたんだけど だから競争って まあいいや 使えそうなら使わせていただきます ピタゴラス素数は2乗和であらわせて。 (a^2 + b^2) (x^2 + y^2) = (ax + by)^2 + (bx - ay)^2 が常に成立するので、 ピタゴラス素数と 2 = 1^2 + 1^2 の積で、新たな2乗和の式が作り出せる。 この式から、解とその個数も求まるはず。 しかし、これがわかっても最小値を求めるのは簡単ではないとおもう。かなりの計算量がいるはず。 z = x + yiという複素数でいうと、このノルムは| z = x + yiという複素数でいうと、ノルムは|z|^2 = x^2 + y^2 であって |z||w| = |zw|を満たすので、 >>484 の式は、新たな複素数 zwを作り出すことと一緒。 お題 ケブンリッジジェネレータ 知らない人のために解説すると、人間の認識力の問題で単語の最初と最後が正しいと途中の文字順序が違っていても正しい単語と見間違えるというのがある。 例えば「よこうそ」は「ようこそ」と見間違える。「およはう」は「おはよう」と見間違える。(これは違うと分かっていても見えてしまうという、空耳アワーの歌みたいでもある)。 以前2chでこのことについてケブンリッジで発見されたというような内容の文章がコピペされて広まり一時期有名になりそれ用の変換をするケブンリッジジェネレータのページ(JavaScriptで作られてたと思う)が作られたりもしていた。 今はもうないようだが今回のお題はこれである。つまり、入力された単語の最初と最後はそのままで途中の文字順序をランダムに入れ替えた結果を出力する。 日本語の文章は普通は単語と単語の間にスペースがないが、これについては処理を簡単にするためにスペースありで入力された文章しか正常に処理しないということにして良い。 >>487 Ruby str = <<~EOT Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, 'and what is the use of a book,' thought Alice 'without pictures or conversations?' EOT puts str.gsub(/(?<=\b\w)\w*(?=\w\b)/){|m| m.chars.shuffle.join} #=> Aclie was bngneniig to get very terid of sntitig by her seistr on the bnak, and of hnvaig nnthoig to do: ocne or twcie she had ppeeed into the book her sitser was rniadeg, but it had no piteucrs or cinsoentravos in it, 'and waht is the use of a book,' tohught Aclie 'wtihuot pricetus or coenrovanstis?' >>477 これってその条件内なら普通に最適解(圧縮度)出せる方法とか存在する? >>487 Squeak/Pharo Smalltalk | input nonLetters | input := 'Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, ''and what is the use of a book,'' thought Alice ''without pictures or conversations?'''. nonLetters := input reject: #isLetter. (input findTokens: nonLetters keep: nonLetters) inject: '' into: [:acc :token | (token first isLetter and: [token size > 1]) ifTrue: [acc, (token first: 1), token allButFirst allButLast shuffled, (token last: 1)] ifFalse: [acc, token] ] "=> Ailce was beingnnig to get vrey tierd of sttinig by her seitsr on the bank, and of hvanig nohintg to do: once or twice she had peeepd into the book her seitsr was riaendg, but it had no piercuts or coitnevnarsos in it, 'and what is the use of a book,' thuoght Alice 'wtiohut ptriecus or ctnaseinroovs?' " >>482 やってみたけど、 馬鹿正直に検索するのと大して変わらんね 半径1000以下を全て検索するのは厳しそう 円周を検索するする昔ながらのアルゴリズムは優秀だ >>487 Squeak/Pharo Smalltalk 日本語文章処理例 | input nonLetters | input := '以前2ch で このこと に ついて ケブンリッジ で はっけん された と いうような ないよう の ぶんしょう が コピペ されて ひろまり いちじき ゆうめい になり それよう の へんかん を する ケブンリッジ ジェネレータ の ページ(Java Script で つくられ てたと 思う)が つくられ たりも していた。 今 は もうない ようだが こんかい の お題 は これ である。つまり、にゅうりょく された 単語 の さいしょ と 最後 は そのまま で とちゅう の もじじゅんじょ を ランダム に いれかえ た 結果 を しゅつりょく する。 にほんご の ぶんしょう は 普通 は 単語 と 単語 の 間 に スペース が ないが、これ に ついては 処理 を かんたん に するため に スペース あり で にゅうりょく された ぶんしょう しか せいじょう に 処理 しない ということ に してよい。'. nonLetters := input reject: #isLetter. (input findTokens: nonLetters keep: nonLetters) inject: '' into: [:acc :token | (token first isLetter and: [token size > 1]) ifTrue: [acc, (token first: 1), token allButFirst allButLast shuffled, (token last: 1)] ifFalse: [acc, token] ] "=> 以前2ch で このこと に ついて ケブリンッジ で はっけん された と いうような なよいう の ぶんょしう が コピペ されて ひろまり いちじき ゆうめい になり そよれう の へかんん を する ケンブッリジ ジレェーネタ の ページ(Jvaa Spcirt で つくられ てたと 思う)が つくられ たりも しいてた。 今 は もうない ようだが こんかい の お題 は これ である。つまり、にりゅうょく された 単語 の さしいょ と 最後 は そのまま で とちゅう の もゅんじじじょ を ラダンム に いかれえ た 結果 を しょゅつりく する。 にほんご の ぶんしょう は 普通 は 単語 と 単語 の 間 に スペース が ないが、これ に ついては 処理 を かんたん に すたるめ に スーペス あり で にゅうりょく された ぶしんょう しか せょじいう に 処理 しない といこうと に してよい。" >>495 ランダムに入れ替えるのはいいけど、元の単語と同じ並びは排除しないと期待外れの出力になるね 完全にランダムなんだから、結果が同じ並びでもそのまま出力するのが筋だろ 変更するなら日本語の文章の方だ >>487 Squeak/Pharo Smalltalk 同じ並びは排除 | input nonLetters | input := '以前2ch で このこと に ついて ケブンリッジ で はっけん された と いうような ないよう の ぶんしょう が コピペ されて ひろまり いちじき ゆうめい になり それよう の へんかん を する ケブンリッジ ジェネレータ の ページ(Java Script で つくられ てたと 思う)が つくられ たりも していた。 今 は もうない ようだが こんかい の お題 は これ である。つまり、にゅうりょく された 単語 の さいしょ と 最後 は そのまま で とちゅう の もじじゅんじょ を ランダム に いれかえ た 結果 を しゅつりょく する。 にほんご の ぶんしょう は 普通 は 単語 と 単語 の 間 に スペース が ないが、これ に ついては 処理 を かんたん に するため に スペース あり で にゅうりょく された ぶんしょう'. nonLetters := input reject: #isLetter. (input findTokens: nonLetters keep: nonLetters) inject: '' into: [:acc :token | | middle | (token first isLetter and: [token size > 3 and: [(middle := token copyFrom: 2 to: token size - 1) asSet size > 1]]) ifTrue: [ | shuffled | [(shuffled := middle shuffled) = middle] whileTrue. acc, (token first: 1), shuffled, (token last: 1)] ifFalse: [acc, token]] "=> 以前2ch で ここのと に ついて ケンブッリジ で はけっん された と いううよな なよいう の ぶしょんう が コピペ されて ひまろり いじちき ゆめうい になり そよれう の へかんん を する ケリンッブジ ジネレェータ の ページ(Jvaa Srcpit で つらくれ てたと 思う)が つらくれ たりも しいてた。 今 は もなうい よだうが こかんい の お題 は これ である。つまり、にりょうゅく された 単語 の さしいょ と 最後 は そまのま で とゅちう の もじじんゅじょ を ラダンム に いかれえ た 結果 を しょつゅりく する。 にんほご の ぶしんょう は 普通 は 単語 と 単語 の 間 に スーペス が ないが、これ に つていは 処理 を かたんん に すたるめ に スーペス あり で にうりょゅく された ぶょんしう" 単語の最初と最後が正しいと途中の文字順序が違っていても正しい単語と見間違える というのは無いこともないが、やっぱりおかしな単語はおかしく見えるな >>487 Kotlin https://paiza.io/projects/vW2LiM_sGEYAb_l7QfaA_g paiza.io の Kotlin はちょっとバージョンが古いようで shuffle() がなかったので自作した。 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 AI2XF 僕の 知合いりの 知合りいが できた パコソン 一台で お持れちにな金る やり方 役立につ かまれもしせん グルグーで 検るす索と いかいも 『 ネットぐ方稼で法 モヌレアフニノ 』 AXI2F 荒らし業者の連投規制回避の小さな変更 さっさとアク禁になれ 2個目はどう考えても業者じゃなくてスレ住人だろ… 業者はアク禁になってほしいのは同意 >>506 お前のレスがあるまでケブンリッジジェネレータなのに気付かなかったわw 人間の認識力はそんなもんなんだろうな。ちょっと似てると同じと判断しまう。そうやって脳は省力化してエネルギーあまり使わないようにしてるのかも知れない。脳を動かすには糖分沢山必要だからな。 逆に言えばいちいち全部の文字を正確に認識してたらちょっと誤字脱字や書き損じがあっただけで意味がわからなってしまうぞ botの書き込みなんていちいち推敲モードで読まないからな >>518 あ、ホントだ、恥ずかしいww 校正というべきだったか あ、ごめん。テキストファイルじゃなくて標準入力からでもいい。 何処から入力するかはたいした問題ではない。 http://www.din.or.jp/ ~ohzaki/mail_regex.htm RFC通りのメールアドレス判定なんて不毛だってはっきりわかんだね ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる