[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/23 04:50 / Filesize : 284 KB / Number-of Response : 1021
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングのお題スレ Part8



1 名前:デフォルトの名無しさん mailto:sageteoff [2015/10/07(水) 20:19:06.64 ID:c4LYwtKo.net]
プログラミングのお題スレです。

前スレ
プログラミングのお題スレ Part7
peace.2ch.net/test/read.cgi/tech/1429195275/

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
ideone.com/
codepad.org/
compileonline.com/
rextester.com/runcode
runnable.com/
code.hackerearth.com/
melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

110 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 22:53:02.41 ID:OJ9xT8J+.net]
位取りの数学だよな。例えば、二桁に限定すれば
(10a+b)^2≡20ab+b^2(mod100)
であり、
b≡b^2(mod10)
であることがわかる。

111 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 23:02:28.06 ID:OJ9xT8J+.net]
10進数の位取りでは自然数nは、
n=Σ_{k=0}^m 10^k * a_k
と表せる。任意の正の整数pに対して
n≡n^p (mod 10)
n≡n^p (mod 100)
...
n≡n^p (mod 10^m)

112 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 23:12:11.82 ID:OJ9xT8J+.net]
1の位a_0は、明らかに0、1、5のいずれかである。
なぜなら0≡0^2かつ1≡1^2かつ5≡5^2 (mod 10)であり、それ以外は考えられないから。

113 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:15:35.02 ID:mg6U+sOG.net]
>>107
n^2の結果の最後がnで終わっていれば何乗しても結果の最後がnで終わる
言い換えればn^2の場合についてのみ調べれば良い。
n^2の結果の最後がnで終わっていないようなnは題意にそぐわない
言語・ライブラリレベルで多倍長演算をサポートしてる言語を使うといいと思うよ

114 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:18:19.92 ID:2RvUZ1HO.net]
>>111
6…

115 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2015/11/12(木) 23:20:39.98 ID:OJ9xT8J+.net]
n≡n^2ならばn≡n^3である。
なぜならn≡n^2の両側にnを掛ける

116 名前:ニn^2≡n^3が得られ、
これとn≡n^2の推移律より明らか。
数学的帰納法より、n≡n^2ならばn≡n^pである。
[]
[ここ壊れてます]

117 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:21:12.97 ID:Tt5I2ZgM.net]
変数xに0〜360までの角度を保持したいんですが、場合によってはこの範囲外の値が入る事が有ります。例えば500や-100など。そういう場合はそれぞれ140、260にしたいんですが、ifで場合分けする方法以外にスマートなやり方有りますか?

118 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:40:32.15 ID:2RvUZ1HO.net]
x=(x%360+360)%360;
mod2回とかひどいコードw



119 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:54:26.23 ID:qVN3pWO7.net]
math.a.la9.jp/ansinc.htm

これの大学院生の証明を信用すると
A<10^nなるAに対してA^2=K*10^n+AとなるようなAは
各nに対してA=p*2^n(=α[n]),r*5^n(=β[n])の
ちょうど2つあり、α[n]+β[n]=10^n+1を満たすことになる
よって、α[n]かβ[n]のどちらか一方を求めればもう一方も求まる
β[n]の構成方法は>>103で求まるので、これで全ての解が網羅される…はず
(ただし、α[4]=α[5]=9376やβ[3]=β[4]=625のように異なるnで解が重複することはあり得る)

120 名前:100 mailto:sage [2015/11/13(金) 00:50:19.24 ID:lCbsoecE.net]
ここまで数学の話になると自分は門外漢だな。参ったなぁ。
自分はC/C++しか使えないので、C++に多倍長が入るまで待ちますです。
自分の能力を疑う。。。Orz

121 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 00:51:09.68 ID:lCbsoecE.net]
ホント、数学怖い。

122 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 01:48:47.99 ID:oAcUw9gl.net]
>>96
Ruby
16桁で2秒くらい。
ideone.com/DzwaXc

123 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 01:56:56.44 ID:oAcUw9gl.net]
>>115
Rubyで。
ideone.com/YK6n9K

124 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 03:44:01.38 ID:lCbsoecE.net]
>>96
ideone.com/GDW8iY
C++。>>109-112の話を信じてコードにした。
だいたい>>102の劣化版になった。
>>102優秀!

125 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 03:44:43.48 ID:lCbsoecE.net]
1と5と6の倍数のどれかって結論になるんかねー。

126 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 17:25:00.01 ID:3TzLZ92T.net]
>>116
>>121
ありがとうございました。
JavaScriptでやりたいので 115 さんの方式でやることにしました。
Rubyの文法は良く分からないのですが、整数剰余 % は常に正の値を
返すのでしょうか?

127 名前:デフォルトの名無しさん [2015/11/13(金) 21:39:51.30 ID:VcgxUV6t.net]
お題:お財布軽算法
レジの買い物で財布の中身が最も軽くなるような支払い方を求めよ

条件:
・買い物の金額は999円以下
・硬貨(一円玉〜五百円玉)の重さは1とし、千円札の重さは0とする
・財布の中には、各硬貨が20枚以下と、千円札がちょうど1枚入っている
 (法律により同一硬貨20枚を超える支払いは店側が拒否できるらしい)
・お釣りはできるだけ価値の高い硬貨にまとめて支払われる
 (例:お釣り17円→十円玉1枚、五円玉1枚、一円玉2枚)
・両替目的の余分な支払いは禁止(例えば、10円の買い物で
 一円玉20枚支払ってお釣りとして十円玉1枚を受け取るのは禁止)

入力:
財布の中の各硬貨の枚数と買い物の金額が空欄区切りで順番に与えられる
(千円札は必ず1枚入っているので入力には含めない)
出力:
各硬貨および千円札の支払い枚数を空欄区切りで順番に返す

例:
0 0 0 0 0 0 1 -> 0 0 0 0 0 0 1
5 5 5 5 5 5 176 -> 1 1 2 1 1 0 0
1 2 3 4 5 6 789 -> 0 2 3 3 1 1 0
20 20 10 10 0 0 999 -> ?

128 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 22:05:01.72 ID:lCbsoecE.net]
>>125
ナップザック問題よく見るなー。



129 名前:126 mailto:sage [2015/11/14(土) 04:44:47.09 ID:ruukGtIx.net]
お題ボツ案

次に示すbrainf*ck亜種用のプログラムコードcode.txtを生成するプログラムを作成せよ

brainf*ck亜種の仕様
命令対応表table.txtに記載された文字列を命令ワードとしてcode.txtを解釈する
命令ワード以外の文字はコメント文字として無視して読み飛ばす

命令対応表table.txtの仕様
1行目に>に相当する命令を表す文字列がコロン区切りで並べられる
2行目に<に相当する命令を表す文字列がコロン区切りで並べられる
3行目に+、4行目に-、5行目に[、6行目に]、7行目に,、8行目に.、のが同様に示される
未定義の命令はないものとする(つまりどの命令にも必ず対応する命令ワードが与えられる)
命令ワードに使えるのは半角の英大文字・英小文字・スペースで構成される1文字以上の文字列

生成するプログラムコードcode.txtについて
(1) こちらが提示するtable.txtを命令ワードとするbrainf*ck亜種でcode.txtを実行する
この実行でcode.txtは新しい命令対応表を生成する(リダイレクトでtable2.txtに保存される)
(2) 先ほど生成されたtable2.txtを命令ワードとするbrainf*ck亜種で先ほどのcode.txtを実行する
この実行でcodetxtはこちらが指定した文字列を出力する
※つまりcode.txtは同一のファイルで2種類のbrainf*ck亜種用のプログラムコードとして解釈されるということである
※code.txtはどちらの実行でも必ず停止するようにする(無限ループさせてはならない)

code.txtのフォーマット
1文字のスペース区切りで並べられた実在する2文字以上の英単語と改行で構成される
各行2文字以上65文字以下で構成する必要がある、行末にスペースが来てはならない
※つまり人がcode.txtを開いて見た場合は英単語がでたらめに並べられているだけの文書ファイルのように見える

130 名前:126 mailto:sage [2015/11/14(土) 04:45:20.39 ID:ruukGtIx.net]
お題ボツ案 続き

(1)で使うtable.txt
====table.txt ここから
en:an:me
ry:ly:to
ea:ro:at
ou:is:

131 名前:of
ed:oo:we
es:ee:he
ff:qu
ll:th
====table.txt ここまで
(2)で出力する文字列
Hello
の5文字

例えば
road eat attacked meet seat early of he month

+++[>++<-].
と解釈される

評価ポイント
・code.txtの英大文字を英小文字に変換した状態において単語の平均出現頻度が3以下になるほど加点、逆は減点
・code.txtに出現する単語のうち「最短の長さの単語」の長さが4以上になるほど加点、逆は減点
・code.txtのファイルサイズ(ようは全体の文字数)が小さくなるほど加点、逆は減点

ボツになった理由
評価ポイントは俺自身が出した答えのcode.txtのファイルサイズを基準に点数付けする予定だったが
俺自身がこの課題を満足するコードを書けなかった
[]
[ここ壊れてます]

132 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 07:36:05.43 ID:HECTDRcm.net]
>>125
2つ目の例間違ってました

5 2 5 2 5 2 176 -> 1 1 2 1 1 0 0

133 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 01:14:20.57 ID:iZq4VH3S.net]
>>127
いくらチューリング完全とはいえ、こんな暗号何に使うんだよ。
IS関係かよ。

134 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 13:23:12.14 ID:qzaifS3v.net]
キレイにあいにいこう

135 名前:デフォルトの名無しさん [2015/11/17(火) 22:19:23.76 ID:qSlbRl0V.net]
突っ込みどころが幾つもあるからそりゃ書けんだろ

136 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 10:07:53.97 ID:MW0MQlR6.net]
お題:以下を出力する
ABBACACBBA
CBCBBBABC
AAABBCCA
AACBACB
ABACBA
CCBAC
CACB
BBA
BC
A

137 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 11:15:42.88 ID:4sFoEFSe.net]
>>133 Squeak/Pharo Smalltalk

| str |
str := 'ABBACACBBA'.
Transcript open.
[str isEmpty] whileFalse: [
 Transcript cr; show: str.
 str := str overlappingPairsCollect: [:a :b |
  a = b ifTrue: [a] ifFalse: [('ABC' copyWithoutAll: {a. b}) first]]]

138 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 16:23:59.84 ID:6s10vQob.net]
>>133 C
ideone.com/DJzS47



139 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 18:06:15.56 ID:D8fsp1uM.net]
>>133 c
#include <stdio.h>
int main() {
char buff[] =

140 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 18:23:26.04 ID:D8fsp1uM.net]
>>133 c
https://ideone.com/UAnRhr

141 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 21:29:20.89 ID:4nC9re2c.net]
>>133 Emacs Lisp

(require 'cl-lib)
cl-lib

(defun f (l)
(while l
(let (m)
(cl-mapl (lambda (s)
(princ (car s))
(let ((s (let ((x (nth 0 s)) (y (nth 1 s)))
(and y (if (eq x y) x (car (remove x (remove y '(A B C)))))))))
(and s (push s m))))
l)
(terpri)
(setq l (reverse m)))))
f

(f '(A B B A C A C B B A))
ABBACACBBA
CBCBBBABC
AAABBCCA
AACBACB
ABACBA
CCBAC
CACB
BBA
BC
A
nil

142 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 23:42:26.25 ID:YAZwGvpo.net]
>>133 Haskell
import Data.List

main = putStr . unlines . takeWhile (/= []) $ iterate f "ABBACACBBA"

f [_] = ""
f (x:x':xs) = (if x == x' then x else head ("ABC" \\ [x, x'])) : f (x':xs)

143 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 03:34:56.68 ID:phHpIHjD.net]
よく法則性わかったな。全く分からんぞ。

144 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 22:16:34.51 ID:uJ/1LVHK.net]
隣接した文字が同じならその文字、違うならそれ以外の文字

という法則性で書いてるようだけど問題中に指定はないから同じ出力ならなんでもいい
この類の出題に対する簡単な解決法は出力例をそのままコピペすること

145 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 12:08:27.30 ID:GuOf3/Bz.net]
>>141
だよねw

それよりも長くなってしまうコードは冗長なのかも。

146 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 12:28:08.45 ID:FQy8dcw9.net]
>>141-142
短いコード…つまりこうだな
ideone.com/PrSnh2

147 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 01:49:25.12 ID:HxaRKQeG.net]
>>133
Rubyで。
ideone.com/4sQ3ws

148 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 10:43:36.89 ID:jCDsTAiM.net]
>>133 ruby 2.0.0
s = 'ABBACACBBA'
s = s.tap {|s| puts s}.chars.each_cons(2).map() {|(a, b)| a == b ? a : 'ABC'.delete(a + b) }.join until s.empty?



149 名前:デフォルトの名無しさん mailto:sage [2015/11/24(火) 21:57:54.41 ID:VKmO+9+0.net]
JavaScriptスレで、以下の質問をしました。
 1/3=0.33333
 1/2=0.5
 1/4=0.25
 みたいに、実数値を文字列化する時に、割り切れない時は四捨五入で小数点以下5桁で、割り切れるならその全桁数をそのまま文字列化したいんですが、一発で出来る関数や手法は有りますか?
と質問したら、曖昧で分かり辛いようだったので、もう少し詳しく、

 では、桁数n (n<=30)を指定するとして、
 割り切れない場合は小数点以下n+1桁目を四捨五入してn桁までを求める。
 割り切れる場合は、その全部を文字列化する。ただしnを超える部分が有る場合は、四捨五入の方法を用いる。
 これでいいかな?

と質問したのですが、浮動小数演算の世界では割り切れるかどうか判定できないので無理だよ、という意見なのですが、
私としては、浮動小数点演算で割り切れるかどうか判定出来なくても、プログラムは書けると思います。
それが出力する結果が数学的な意味での正しい解答になっていればいいと思うので。
でも良く分からないので、レベルの高いここで質問します。よろしく。

150 名前:デフォルトの名無しさん mailto:sage [2015/11/24(火) 23:57:27.64 ID:BzULhZcd.net]
適当に10^n倍して整数の範囲でやれ
てかJavaScriptで簡単に30桁も扱いたいなら外部ライブラリでも使えよ

151 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 00:04:10.27 ID:O+sc6fcj.net]
>>147
出来ないならレスしなくても良い

152 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 00:20:18.37 ID:B5r/QkfM.net]
俺は出来ないから禁止じゃなくてよかったわ

153 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 01:02:10.19 ID:DvsQmrmL.net]
>>147
自分も10^N思いついたわ。
泥臭いけど、正しい数字がほしかったら急がば回れだと思うわな。

154 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 02:12:43.93 ID:DvsQmrmL.net]
うーん。暇だからいじってたけど失敗した。改良案募集中。
ideone.com/kC2jUa
C++。指数いじってるだけなのに明確に誤差が出る。
一番楽なのはsprintfのソース嫁。だと思う。

155 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 02:34:57.37 ID:WgXGKPIm.net]
>>146
有理数が割り切れるかどうかという話なら、既約分数の形で分母に2と5以外の素因数が含まれると
循環小数になる

整数に乗る範囲なら>>147で同じことができる

156 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 03:14:52.14 ID:DvsQmrmL.net]
>>146
ideone.com/MJYOa4
C++。数学ムズイな。log10(0.1)が-inf返す。理屈は知らん。
基本的なことは、 okwave.jp/qa/q3050160.html からパクってきた。
これ以上は俺のキャパ超えてますわ。頑張ってー。

157 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 08:08:20.28 ID:DvsQmrmL.net]
寝ようとしたらバグ思いついたのでフィックス。
ideone.com/KEG8so

158 名前: []
[ここ壊れてます]



159 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 09:36:21.17 ID:O+sc6fcj.net]
>>154
素晴らしい。完璧です。

160 名前:デフォルトの名無しさん mailto:sage [2015/11/25(水) 21:34:13.25 ID:DvsQmrmL.net]
一応、最初に案だした>>147にも言っとけー。
それと何も違わんからな。

161 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 06:44:11.07 ID:et7wKfDy.net]
お題:2ビットバイナリのソートと復元。
ideone.com/aBSpRb
こういうコードを書きました。
不完全ですが、実用化に至ればどんなファイルも1kb程度に収まるすさまじい圧縮規格の草案デス。(妄想です)
さて、ソートと復元にパーミテーションを使っているのですがこれが超重たいです。困りました。
そこでこれを差し替えて、ソートと復元を軽くしたいと思っています。
さてなんかいい方法ありませんでしょうか。処理速度はあんまり重視していません。
その代わり序数などを用意する場合、64BIT整数の範囲に入ることが望ましいです。
自由な発想で何か思いついてください。お願いします。

ちなみに、このコードの弱点はメモリ使用量で、元バイナリの256倍メモリを消費します。

162 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 00:48:49.92 ID:KmrpGp6z.net]
>>157
その文章はネタなのかマジなのか…
ideone.com/4EkJzF

163 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 04:53:54.49 ID:6OpYz5rj.net]
ideone.com/nFKJnK
メモリ使用量を256倍から8倍に抑えた。
そしたら、>>158のコードが動かなくなった。Orz
っていうか、序数が簡単に64ビット突破してしまうなぁ。
N!をどうにかしないと。

>>158
乗ってくれてありがとう。

164 名前:デフォルトの名無しさん mailto:sage [2015/11/29(日) 06:33:12.85 ID:6OpYz5rj.net]
序数なくしたい・・・。(^q^)

165 名前:デフォルトの名無しさん mailto:sage [2015/12/03(木) 23:19:41.07 ID:Wkj8zlJv.net]
>>146
[実数値]は2進数の浮動小数点数で受け取るの?
それとも分母と分子の2個の整数で受け取る?

166 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 11:53:42.59 ID:2flNGmiy.net]
お題:楕円の長径と短径が与えられたとき、円周の長さを求める

167 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 22:05:37.72 ID:OagebEri.net]
>>162
それは楕円積分じゃね?
セイガクのとき勉強してうろ覚えだけど。

168 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 22:09:09.73 ID:4dGrKabk.net]
https://ja.wikipedia.org/wiki/%E6%A5%95%E5%86%86%E7%A9%8D%E5%88%86



169 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 22:17:32.62 ID:OagebEri.net]
楕円の外周の計算方法- 数学 | 教えて!goo
oshiete.goo.ne.jp/qa/439398.html

楕円の周の長さの求め方と近似公式 | 高校数学の美しい物語
mathtrain.jp/daennagasa

こういった近似解法の存在を知らないと、
自力でアルゴリズムを発見するのは天才級の頭脳がいる問題だぜょ
セニョール

170 名前:デフォルトの名無しさん mailto:sage [2015/12/07(月) 23:34:24.64 ID:4dGrKabk.net]
「天才級」は言い過ぎでしょ

171 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 04:57:10.08 ID:3EaU/rl6.net]
>>162
ideone.com/cjVSmk
2分法かつモンテカルロ。
数学的に正しいかは知らんけど、一応近似はしてるんじゃないかと。
数学わかんねー。積分わかんねー。

172 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 05:22:43.49 ID:3EaU/rl6.net]
あれ?各種計算サイトと数字があわね・・・。
>>165の計算法あってる?

173 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 05:44:52.78 ID:3EaU/rl6.net]
ideone.com/gtoI4q
と、思ったら。
俺が計算パラメータ勘違いしてるだけだった。Orz
うごごごご。すまん。

174 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 09:59:25.88 ID:/HebolMS.net]
天才現る

175 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 19:56:53.86 ID:3EaU/rl6.net]
e!?

176 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:17:02.87 ID:3EaU/rl6.net]
いやいやいやいやいやいや・・・・・。
式パクってきて2分法書いて、モンテカルロやっただけですぜ。
天才とかとは程遠い。っていうか無縁。
天才っていうのは式を作る人。

177 名前:164 mailto:sage [2015/12/08(火) 20:20:16.07 ID:a07369ql.net]
おお、モンテカルロも手だな
解析的近似ばかりじゃなく
数値計算の力技もコンピューターならではの解法だ
したがって天才はコンピューターである。

なんちゃって

178 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:40:17.60 ID:3EaU/rl6.net]
実際、叩かれるつもりで投稿したんだがなんか怒られる兆しがないな。
いやー、コンピュータはすごいよ。

俺がじまんしたいのはモンテカルロより綺麗にかけた2分法のほうなんだよな。
まぁそれもベースはパクってきたわけなんだけど。Orz



179 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:44:12.32 ID:3EaU/rl6.net]
>>173
ちょうどいいから聞きたいんだけど、
一般的に積分に限らずデルタってどっから引っ張ってくるの?
わからなかったからランダム適応したんだけど。勘で・・・。Orz
作法あるんだったら知りたい。

180 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:53:40.72 ID:k5FAaYPJ.net]
モンテカルロよりはマシだろ

#include <math.h>
#include <stdio.h>
#define DIV_NUM 16777216
#define PI 3.14159265358979323846
#define A 3
#define B 2
int main(){
double x0 = A;
double y0 = 0.0;
double length = 0.0;
for (int i = 0; i < DIV_NUM; i++) {
double ang = i * (PI / 2 / DIV_NUM);
double x1 = A * cos(ang);
double y1 = B * sin(ang);
double dx = x1 - x0;
double dy = y1 - y0;
length += sqrt(dx * dx + dy * dy);
x0 = x1;
y0 = y1;
}
printf("%f", length*4);
return 0;
}

181 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 20:57:35.31 ID:k5FAaYPJ.net]
なんか微妙に間違ったな
値は大体あってるけど

for (int i = 1 ; i <= DIV_NUM ; i++){

こうだね

182 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 21:14:08.51 ID:3EaU/rl6.net]
俺の悩みは一体。もっといい理屈があるじゃないか!Orz

183 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 22:02:09.84 ID:k5FAaYPJ.net]
一番原始的な積分値の求め方だよ

184 名前:デフォルトの名無しさん mailto:sage [2015/12/08(火) 22:08:33.54 ID:3EaU/rl6.net]
なるほど。勉強になるわ。

185 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 02:46:42.95 ID:WkKrcfNI.net]
>>162
ideone.com/Fpqwn1
C++。実はこれでよかったのか?
ゲーム世代だから、こう、もっと複雑なものを想像してたんだけど。
こんな感じでいいの?シンプルね。

スペシャルサンクス >>179@積分について教えてもらった。

186 名前:164 mailto:sage [2015/12/09(水) 21:24:48.15 ID:ZhIEYZLO.net]
>>175
台形式による数値積分の積分幅に応じた誤差は関数の
二次微分値(曲率)に応じて変化するので、積分幅を調整することによって
誤差を抑制したければ関数の二次微分に相当する値に応じた
幅を使えばいいとおも
あるいは区間の関数自体を非直線近似によって真の値からの乖離による
誤差を減らしかつ計算量を抑えるにはシンプソンとか二次曲線近似とか

187 名前:164 mailto:sage [2015/12/09(水) 22:44:23.10 ID:92NQQkZk.net]
いや、でも円を等分割したときの誤差率は
完全に分割角依存で
曲率半径には依らないか
なんか間違えちゃったかもwテヘペロ

188 名前:デフォルトの名無しさん mailto:sage [2015/12/09(水) 22:53:48.61 ID:EF8HxpWM.net]
>>182
なんか素人が痛いからそろそろ止めた方が
板違いだし



189 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 00:24:50.66 ID:FNI4SdQA.net]
>>182-183
解説ありがと。
でも、数学わからんので数学用語がこんなに出てくると爆発しちゃうお。

190 名前:デフォルトの名無しさん [2015/12/10(木) 20:15:14.98 ID:qXWtOvvK.net]
お題:
西暦が与えられるので
その年の十月一日から翌年の二月末日までに
平日の月曜がいくつあるか求めよ

191 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 23:05:45.07 ID:1swodkqj.net]
>>186
>>平日の月曜がいくつあるか求めよ

平日の月曜というのがよくわからないのですが、
たとえば、春分の日とか秋分の日が月曜日ならばそれを除く
ということですか。
春分や秋分の日が日曜日のときは、月曜日が振り替え休日に
なりますが、その場合も除くのでしょうか。

192 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 23:14:37.28 ID:qXWtOvvK.net]
>>187
はい、祝日と振り替え休日を除いた日数です

193 名前:デフォルトの名無しさん mailto:sage [2015/12/10(木) 23:26:01.14 ID:IEwdtYYT.net]
祝日って施行された年月日の表を持たないといけないね
決め方も途中で日にち固定じゃなくなった祝日もあるし

194 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 00:00:09.46 ID:QFhJl34b.net]
江戸時代には、祝日というものは正月ぐらいしかないだろうし、
祝日も明治5年の改歴以来いろいろと変わってきているので、
西暦をインプットして求めるといったって、そういう祝日が何年から
改訂されたかの表が必要でしょうし、第一天文学的に決める春分と
秋分の日が今日では、地球の自転を一定とした力学字で計算し、そして
その力学時と世界時との差を予測して世界時に直して日にちを決めて
いるわけだから、過去の世界時と力学時との差は判っているけれど
将来の差はあくまでも予測にしか過ぎないから、将来の春分や秋分の日
を求めて、それが月曜日にあたっていないと計算ではでても、その時の
世界時と力学時との差はその年にならなければ判らないから、将来
については、厳密にいうと計算できないことになります。
西暦を与えてということだから、たとえば西暦1000年については
どのように計算すればいいのですか。その頃の祝日というのは、どうすれば
わかりますか。

195 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 00:27:12.79 ID:eVuXsWSu.net]
日本国という縛りもありませんし。

196 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 06:26:06.24 ID:tt4EKsw8.net]
これアルゴリズムとか関係なくね?

DBに自分で登録するかそういうWebサービスを探して利用するしか

197 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 06:32:51.11 ID:tt4EKsw8.net]
>>189の言うように予め配列等に祝日のデータが入ってると仮定すれば答えようがあるかも

宿題や仕事で使うコードなら他人に投げるのは感心しない

198 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 06:40:36.76 ID:kB8+oJGq.net]
どこかで見た問題に適当に制約付けただけじゃね?
ちょっとでも考える能力あればこりゃ無理と分かるだろうし



199 名前:デフォルトの名無しさん mailto:sage [2015/12/11(金) 09:08:34.35 ID:eVuXsWSu.net]
俺ニートだから、全部休日な。答えは0だ。

200 名前:デフォルトの名無しさん [2015/12/11(金) 13:06:30.20 ID:L6hqxofP.net]
paiza、「プログラミングで彼女をつくる」オンラインハッカソンを開催 | マイナビニュース
エムアウトグループのギノは12月8日、IT/Webエンジニアに特化したプログラミング転職サイト「paiza」にて、恋愛プログラミングゲーム「paiza オンラインハッカソンVol.7 プログラミングで彼女をつくる」を公開したことを発表した。
開催期間は、2015年12月8日12時00分から2016年1月13日23時59分まで。
news.mynavi.jp/photo/news/2015/12/09/611/images/001l.jpg
news.mynavi.jp/photo/news/2015/12/09/611/images/002l.jpg
news.mynavi.jp/news/2015/12/09/611/




恋愛SLG: プログラミングで彼女をつくる|paizaオンラインハッカソン7
https://paiza.jp/poh/ando

201 名前:デフォルトの名無しさん mailto:sage [2015/12/12(土) 00:02:55.04 ID:epBUOQqG.net]
ニッポンバンザーイ!!!

202 名前:デフォルトの名無しさん mailto:sage [2015/12/12(土) 01:49:09.61 ID:g+kFVlkS.net]
>>196
全部解くのに70分、水着に30分かかってもーた

203 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 07:17:29.28 ID:O2iUJZml.net]
>>162
ideone.com/gPjeg8
C++。意味も分からずパラメータをいじっていたらより模範解答に近づいたのでアップ。
なぜかGCCではコンパイルできない。
メルセンヌツイスタは優秀だな。さすがモンテカルロ用乱数。

204 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 07:23:54.61 ID:O2iUJZml.net]
今見て思ったんだけど、このコード乱数使ってるのにこの精度だと値がほとんど一意なんだな。
これどれくらいあってるんだろう??

205 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 14:41:46.73 ID:X4YbRsnm.net]
お題:モンテカルロ法でドーナツから切り取った部分の体積と表面積を求めなさい
uproda.2ch-library.com/909700o0Q/lib909700.bmp
参考:
3次元CADでは
体積  194#.##・・・
表面積 99#.##・・・

206 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 16:48:49.04 ID:sP1yS+qf.net]
>>201 C++
体積だけ
ideoneが調子悪くてせっかく書いたのが消えた
出力にはそれらしい数字が表示されてるでしょ
ideone.com/NK8Obe

207 名前:201 mailto:sage [2015/12/13(日) 16:58:32.34 ID:sP1yS+qf.net]
ついイライラしてクソ解答を書き込んでしまったが、コード書きなおした
ideone.com/l7avA0

208 名前:デフォルトの名無しさん mailto:sage [2015/12/13(日) 22:16:08.38 ID:O2iUJZml.net]
ideone.com/9dojVw
C++。謎の係数に轟け。



209 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 02:29:21.98 ID:eVz/xHue.net]
>>201
ideone.com/jTXuFD
ちょい、リファレンス間違ってねーか?
詳しくはウィキペディア見てくれ。
https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%BC%E3%83%A9%E3%82%B9

210 名前:デフォルトの名無しさん mailto:sage [2015/12/14(月) 02:30:05.61 ID:eVz/xHue.net]
あー切り取った部分だった。Orz






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<284KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef