プログラミングのお題スレ Part20at TECH
プログラミングのお題スレ Part20 - 暇つぶし2ch50:デフォルトの名無しさん
21/07/02 13:39:10.26 E59Amcuv.net
本気で知らないんだろう
月曜始まりのカレンダーを見たことないご存じないとかじゃね?

51:デフォルトの名無しさん
21/07/02 16:10:17.73 lOCqtdeG.net
URLリンク(www.543life.com)

52:デフォルトの名無しさん
21/07/02 22:18:49.57 IHzKftMK.net
>>36
haskell
URLリンク(ideone.com)

53:デフォルトの名無しさん
21/07/02 22:25:49.60 6PmzgaZp.net
>>48
お前が一番日本語理解できてなくて草

54:デフォルトの名無しさん
21/07/02 22:59:04.30 bqpqPyM3.net
>>49
むしろ全てのカレンダーを月曜始まりにして欲しいぐらい

55:デフォルトの名無しさん
21/07/03 02:44:37.57 +PW8v28+.net
月月火水木金金

56:デフォルトの名無しさん
21/07/03 12:07:58.36 gq7PWL9B.net
オプションの話なんてどうでもいいけど
1日を左上始まりの方が合理的だと思う

57:デフォルトの名無しさん
21/07/03 18:17:25.88 IfvioC2j.net
どうかな
多くの場合
月の開始日を固定するより
曜日を固定した方が有用だ

月によって

58:デフォルトの名無しさん
21/07/03 18:34:34.91 8vTMQXC9.net
曜日固定の暦も提案されたけど採用されることはなかったんだよね

59:デフォルトの名無しさん
21/07/03 19:07:03.68 uSbSUvL9.net
まあ大抵の人は基本的に曜日で休みが決まってたりするしな

60:デフォルトの名無しさん
21/07/03 19:13:38.83 DPpwWmVc.net
28日×13月、最終月で調整、がシンプルで良かったのにな
年初の時期も夏至とか分かりやすい日にすれば良かったのに

61:デフォルトの名無しさん
21/07/03 21:26:36.17 IfvioC2j.net
暦は農業をするうえで細かく日を読む必要から作られ発展してきた
農閑期には日付が定められなかったことも
ヨーロッパの言語で前半は神の名が付けられ、後ろの方がテキトーなことからもその時代における重要度が推し量れる

62:デフォルトの名無しさん
21/07/03 21:35:30.23 TQwtnc11.net
そもそも古代ローマの暦では11-12月は名前がなかった

63:デフォルトの名無しさん
21/07/04 00:40:14.83 FJOBYcj7.net
エチオピアではエチオピア歴が今も使われており13月があったりする。
URLリンク(www.hope.or.jp)

64:39
21/07/04 08:11:39.86 iOGAyFs7.net
>>36 Ruby
お題の仕様を拡張してみた
前後の月の日付も週単位で表示
・前月日付は週はじめから最小1日から最大7日
・翌月日付は週末まで最小0日から最大6日
require 'date'
str = '2021 7 0'
y, m ,s = str.scan( /\d+/ ).map( &:to_i )
a = '日月火水木金土'.chars.rotate(s)
sw = (Time.new( y, m, 1 ) - s % 7).wday
( (sw == 0)? 7 : sw ).downto(1){|d| a << Date.new( y, m, 1 ).prev_day( d ).mday.to_s }
1.upto( Date.new( y, m, 1 ).next_month.prev_day.mday ){|d| a << '%2d' % d }
(-a.size % 7).times{|d| a << '%2d' % (d+1) }
a.each_slice(7){|w| puts w * ' ' }

65:39
21/07/05 00:26:38.86 e4Vm80Jj.net
>>36 Ruby
>>63
> sw = (Time.new( y, m, 1 ) - s % 7).wday
は間違いでした
require 'date'
str = '2021 7 0'
y, m, s = str.scan( /\d+/ ).map( &:to_i )
m1 = Date.new( y, m, 1 )
sw = m1.wday - s % 7
pmd = m1.prev_day.mday
a = '日月火水木金土'.chars.rotate(s)
( pmd - ((sw == 0)? 7 : sw) + 1 ).upto( pmd ){|d| a << d.to_s }
1.upto( m1.next_month.prev_day.mday ){|d| a << '%2d' % d }
(-a.size % 7).times{|d| a << '%2d' % (d+1) }
a.each_slice(7){|w| puts w * ' ' }

66:39
21/07/05 01:08:34.16 e4Vm80Jj.net
>>64 もバグ有り
> sw = m1.wday - s % 7
sw = (m1.wday - s) % 7

67:デフォルトの名無しさん
21/07/05 17:31:47.07 7Yd2cijs.net
>>28-31
28はPowerShell版
お題:クロームブラウザーのヘッドレスモードを使って何かを作る
google-chrome --headless --disable-gpu --hide-scrollbars --window-size=700,8000 --virtual-time-budget=10000 --screenshot="$HOME/Pictures/$(date +"%H_%M_%S").png" 'yahooリアルタイム検索結果のURL'
--window-size=はスクリーンショットを撮る範囲
--virtual-time-budget=は検索結果が表示されるまで時間がかかるサイトで使う。これがないと検索結果のスクリーンショットがうまく撮れない。10000ミリ秒=10秒。

68:デフォルトの名無しさん
21/07/06 12:39:02.75 gfjghTPI.net
数学板から
お題
Σ[n:2〜∞]cos(n)/log(n)を小数第10まで求めよ
元々収束するか?で収束するなら10桁計算せよってついてたけど今のところ10桁計算してみせた人おらず
もちろん収束遅すぎて少し工夫しないと10桁出すのは難しいかなと

69:デフォルトの名無しさん
21/07/06 18:27:19.16 ifvAZrxB.net
>>67
わからない。

70:デフォルトの名無しさん
21/07/07 06:44:52.69 GHc1zSP4.net
>>67
チェザロ平均考えるとかかな
1万項の平均雑に計算したら-1.34までは収束してる感じ
URLリンク(ja.wikipedia.org)チェザロ平均

71:デフォルトの名無しさん
21/07/07 07:00:20.59 GHc1zSP4.net
>>67 Haskell
sums xs = scanl1 (+) xs
ss n = sums [cos k / log k | k <- [2..n]]
avr xs = sum xs / (fromIntegral $ length xs)
結果:
λ> avr $ ss 10000
-1.3422141860097583
(0.02 secs, 6,244,872 bytes)
λ> avr $ ss 100000
-1.3422187431198473
(0.21 secs, 61,066,720 bytes)
λ> avr $ ss 1000000
-1.3422195503566596
(1.97 secs, 609,383,904 bytes)
λ> avr $ ss 10000000
-1.3422195021937073
(48.08 secs, 6,092,457,440 bytes)
これ以上は厳しそうだから何か工夫しないといけないけど8桁辺りまでは収束してそう

72:デフォルトの名無しさん
21/07/07 07:19:49.97 GHc1zSP4.net
8桁って小数第七位ね

73:デフォルトの名無しさん
21/07/07 19:16:52.25 5d+e1myw.net
この文献
URLリンク(www.kurims.kyoto-u.ac.jp)
をもとに C
#include <math.h>
#include <stdio.h>
int main(){
double p=12.0,q=7.0,s=0;
long n,nmax=166;
for(n=2;n<nmax;n++) s+=(cos(n)/log(n))*0.5*erfc(n/p-q);
printf("s=%-20.16lf, N=%d\n",s,nmax-2);
return 0;
}
s=-1.3422195101745578 , N=164

74:デフォルトの名無しさん
21/07/07 20:36:04.14 MZbePiNM.net
>>67 収束する。
B_k := Σ[n : 2..k] cos(n)
|B_k| = |cos((k + 1) / 2) sin(k / 2) / sin(1 / 2) - (1 + cos(1))|
 (see URLリンク(math.stackexchange.com))
 <= 1 / sin(1 / 2) + 1 + cos(1) ... (i)
a_n := 1 / log(n)
Σ[n : 2..∞] |a_{n + 1} - a_n|
 = Σ[n : 2..∞] |log(n / (n + 1)) / (log(n) log(n + 1))|
 <= Σ[n : 2..∞] |log(2) / log(n + 1)^2|
 < ∞ ... (ii)
lim a_n = 0 as n -> 0 ... (iii)
(i), (ii), (iii) よりアーベルの級数判定法の条件を満たすので所与の級数は収束する。

75:デフォルトの名無しさん
21/07/07 21:23:56.34 GHc1zSP4.net
>>72
すごい
あんまり読めてないけど交代級数じゃなくても使えるの?

76:デフォルトの名無しさん
21/07/07 21:39:28.53 5d+e1myw.net
>>74
6節でFFTの計算とともに使ってるのでフーリエ級数全般に使えるはず

77:デフォルトの名無しさん
21/07/07 22:23:37.48 7LucU1Ml.net
>>5の2 Dart版
void main() {
DateTime today = new DateTime.now();
print(
"${today.year.toString()}/${
today.month.toString().padLeft(2,'0')}/${
today.day.toString().padLeft(2,'0')}/第${
((today.day + 6) / 7).floor()}${
{1:'月曜日',2:'火曜日',3:'水曜日',4:'木曜日',5:'金曜日',6:'土曜日',7:'日曜日'}[today.weekday]}/${
today.hour.toString().padLeft(2,'0')}:${
today.minute.toString().padLeft(2,'0')}/"
);
}

78:デフォルトの名無しさん
21/07/07 22:51:04.45 GHc1zSP4.net
>>75
やっぱり交代級数限定の話っぽいけど何で今回上手く行ってるのか良く分からない

79:デフォルトの名無しさん
21/07/21 03:52:07.59 s4XLTZzk.net
お題
2乗〜6乗
自然数nに対して方程式
n = p^2+q^3+r^4+s^5+t^6
の整数解をひとつ探し出す関数を実装せよ

-2 → [1,-2,1,0,0]
-1 → [1,-2,1,1,9]
0 → [1,-1,0,0,0]
1 → [1,0,0,0,0]
2 → [1,1,0,0,0]
100 → [2,0,0,2,2]
2021 → [3382713530574301803635446275486,-563785588429051426890762429768,2252569709434420,5488,750856569811473]

80:デフォルトの名無しさん
21/07/21 04:00:54.83 s4XLTZzk.net
訂正
-2 → [2,-2,1,1,0]
-1 → [0,-1,0,0,0]

81:デフォルトの名無しさん
21/07/21 05:27:57.77 qAe+ZLCy.net
-1と-2は自然数じゃない

82:デフォルトの名無しさん
21/07/21 13:17:19.10 s4XLTZzk.net
>>80
ですな
-1,-2は抜いて
じゃ追加で
3→[1,1,1,0,0]
10→[1,2,1,0,0]
1000→[1,-3,1,4,1]
などなど

83:デフォルトの名無しさん
21/07/21 16:30:29.39 s75CxDCd.net
>>81
n<=10^6 を力業で、先頭と最後の101件のみ表示
URLリンク(ideone.com)

84:デフォルトの名無しさん
21/07/21 20:59:05.44 qAe+ZLCy.net
寧ろ定義域を整数全体にすれば?

85:デフォルトの名無しさん
21/07/21 22:08:26.55 DfqCC9n+.net
>>83
元々整数のつもりだったのが筆が滑りましたw
お好きな方でという事で
自然数に限定して楽になる事もないと思うけど

86:デフォルトの名無しさん
21/07/22 03:13:11.19 o3SPPMDQ.net
>>78
Kotlin
URLリンク(paiza.io)
無念無想で何も考えずにただ作った。

87:デフォルトの名無しさん
21/07/22 13:52:09.29 mzts8Rpt.net
元の問題
面白い問題おしえて~な 37問目
スレリンク(math板:543番)
元の問題は7乗まで使って桶だったけど6乗までの解答が出た
スレリンク(math板:588番)
あくまでプログラムの話、数学の部分はどうでもいいという方は参考にして下さい
この方法はn-t^5-76843が6630の倍数になるような整数tが取れる事を使います(t:0〜6629の中で探す)

88:デフォルトの名無しさん
21/07/22 20:25:25.04 giJnvKaJ.net
>>86
5次以下にはできない証明は?

89:デフォルトの名無しさん
21/07/22 20:30:40.90 eIP4GB5u.net
>>87
それはまだ数学板では5以下でも可能も5以外では不可能もどっちも証明されてません

90:デフォルトの名無しさん
21/07/24 11:44:46.01 uYrXTofe.net
お題: 端末上に地球を模した円の描画を行い、入力された緯度、経度のおおよその地点に印を付けろ
ただし描画される円の中心は常に日本の東京とし、東京が見えるようにすること
描画される円の大きさは自由とする
入力された座標が東京の裏側の半球上にあって印を描画できない場合は、印を描画しないか、あるいは円(地球)を透過させて印を描画する
地球の半径=6,371 km
東京の経度=139°41′30″
東京の緯度=35°41′22″
*出題者は自分で実装してません

91:デフォルトの名無しさん
21/07/24 11:48:58.50 2jz91/WX.net
>>89
画面の上を地球上のどの方位にするとか、平行投影なのか透視投影なのか画角どうするかとか決めないといけないんでないの?

92:デフォルトの名無しさん
21/07/24 11:53:24.04 uYrXTofe.net
>>89
>>90
画面の上端を北とします
投影方法と画角はよくわからないので自由とします^^;

93:デフォルトの名無しさん
21/07/24 12:18:19.24 /U+1YhTs.net
地球は球体じゃないから無理じゃない?

94:デフォルトの名無しさん
21/07/25 16:25:19.73 YgX/LOmt.net
地形データってどっかから取って来れるの?そこも自作しろと?それとも地形描画なしのツルツルの地球で良い?

95:デフォルトの名無しさん
21/07/26 04:06:01.70 uFE88Z/4.net
いいよ

96:デフォルトの名無しさん
21/07/27 08:42:26.61 3vSla0fp.net
>>5の2 JavaScript版
let today = new Date()
console.log(
today.getFullYear().toString() + '/' +
today.getMonth().toString().padStart(2,'0') + '/' +
today.getDate().toString().padStart(2,'0') + '/' +
'第' + ( Math.floor( ( today.getDate() + 6 ) / 7 ) ).toString() +
['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'][today.getDay()] + '/' +
today.getHours().toString().padStart(2,'0') + ':' +
today.getMinutes().toString().padStart(2,'0') + '/'
)

97:96
21/07/28 13:12:24.23 D9Z9/eJz.net
>>20 Perl5、DPで解けないかなと考えてたけど、すぐには思いつかずnaiveな解法
use List::Util 'max';
my $m;
sub f {
 my ($a, $b, $c) = @_;
 return () if $m and $m <= $c;
 my $aa = $a * $c - $b;
 return ($m = $c) if 0 == $aa;
 my @s;
 if (0 < $aa) {
  my $bc = $b * $c;
  @s = f($aa, $bc, max(int($bc / $aa), $c + 1));
  @s = ($c, @s) if @s;
 }
 my @t = f($a, $b, max(int($b / $a), $c + 1));
 if (@s and @t) {
  $s[-1] < $t[-1] ? @s: @t;
 } else {
  @s ? @s: @t;
 }
}
$m = 0; my @a = f(37, 60, 1);
printf "37 / 60 = %s\n", join ' + ', map{"1/$_"} grep{$_} @a;
#$m = 0; my @a = f(3, 1, 1);
実行結果
~ $ perl 20_20_re_expan.pl
37 / 60 = 1/4 + 1/5 + 1/6
なお、この解法だと 3/1 = は時間がかかりすぎて解けない

98:デフォルトの名無しさん
21/08/08 11:08:25.71 KegFD0tb.net
平面上に円をおくと、円周上に整数点ができることがあるが
それがちょうど47個の円の最小半径は?
ここで前にもあったとおもったが、答わからん

99:デフォルトの名無しさん
21/08/10 04:18:36.48 RT5RB9Hc.net
解き方がわからん。

100:蟻人間
21/08/11 00:16:58.90 yQA623uX.net
お題: (C/C++/Rust限定)
与えられたテキストファイルのエンコーディングを早く正確に判定するプログラムを作れ。
判定内容はASCIIのみ、UTF-8、UTF-16、Shift_JIS、バイナリのいずれかとBOMの有無とする。
ファイル先頭にBOMがある場合はBOMの意味を優先するものとする。
ASCIIではない場合はファイル先頭より256バイト以降は無視するものとする。
テキストファイルがUTF-8かShift_JISか区別できないときはUTF-8の判定を優先するものとする。
判定にかかった時間をミリ秒単位で測定せよ。
UTF-16 BEとEUC-JPはバイナリとみなしてもよい。

101:デフォルトの名無しさん
21/08/11 19:57:42.99 lGVA2SmZ.net
宿題は自分でやれ

102:デフォルトの名無しさん
2021/08/


103:11(水) 23:48:46.02 ID:BaITumyQ.net



104:デフォルトの名無しさん
21/08/12 04:41:39.82 zN4hKecF.net
昔々グラフィックス画面に直線を描くアルゴリズム調べた時は感�


105:ョしたな。あれは40年ぐらい前か。月日の経つのは早いものぢゃ。



106:デフォルトの名無しさん
21/08/12 09:29:17.38 GeyAERvY.net
お題
文字列を入力として受け取って
入力された文字列と、入力された文字列を逆順にした文字列を
1文字ずつ交互に結合した文字列を出力してください
入力: abcde
出力: aebdccdbea

107:デフォルトの名無しさん
21/08/12 10:08:21.06 Lpug+0Go.net
>>103 Ruby
'abcde'.size.times{$><<s[_1]<<s[~_1]} # => aebdccdbea

108:デフォルトの名無しさん
21/08/13 03:01:45.42 pLlXEN4h.net
>>103
Haskell
import Data.List
acbbca x = concat $ transpose [ x , reverse x ]
main = do
putStrLn $ acbbca "Hello World"
putStrLn $ acbbca "たけやぶやけた"
----
HdellrlooW WoolrlledH
たたけけややぶぶややけけたた

109:デフォルトの名無しさん
21/08/13 03:35:13.90 hXjFUBNl.net
なんかこういうのはhaskellのlensが得意そうな気がするな
この前Intのリストの奇数だけソートするのを
sortArray xs = xs & partsOf (each . filtered odd) %~ sort
だけで済ましてるのを見た

110:デフォルトの名無しさん
21/08/13 11:47:55.66 Zwr8vbQY.net
>>103 octave
URLリンク(ideone.com)
f = @(s) [s; flip(s)](:)';
f('abcde')

111:96
21/08/13 12:16:45.65 Tqy/ucLn.net
>>103 Perl5
@b = reverse @a = split'', 'abcde';
use List::MoreUtils 'zip';
print zip @a, @b;
実行結果
~ $ perl 20_103.pl
aebdccdbea

112:デフォルトの名無しさん
21/08/13 18:31:56.72 C2vgWz0X.net
>>103
Kotlin
URLリンク(paiza.io)

113:デフォルトの名無しさん
21/08/13 18:54:31.59 C2vgWz0X.net
>>103
C
URLリンク(paiza.io)
>>109と出力が同じになるようにした。
それと、折角なので wchar で作った。

114:デフォルトの名無しさん
21/08/13 20:49:58.92 ++s/0C9b.net
>>103 J
f =: ,@(,. |.)
___ f 'abcde'
aebdccdbea

115:sage
21/08/13 23:42:35.13 WxHHmkEE.net
>>104
Rbuy 3.0.2 だと s が未定だと怒られる

116:デフォルトの名無しさん
21/08/14 12:38:10.02 LgiNTbaj.net
>>36 octave
URLリンク(ideone.com)
function [c, w] = f(y, m, dow)
c = calendar(y, m);
w = {'日' '月' '火' '水' '木' '金' '土'};
if dow == 1
a = (c')(:);
b = [-1 6](1 + (a(1) == 1));
c = reshape(circshift(a, b), flip(size(c)))';
w = circshift(w, -1, 2);
end
end
function g(y, m, dow)
[c, w] = f(y, m, dow);
disp(strjoin(cellfun(@(s) {sprintf('%6s', s)}, w), '')), disp(c)
end

117:デフォルトの名無しさん
21/08/17 02:41:19.70 5M+zf85m.net
お題: 菅話法作成

Kotlin
URLリンク(paiza.io)

118:デフォルトの名無しさん
21/08/17 19:49:43.89 skFpZz34.net
>>114 Ruby
$><<%W[「中止の考えはない。強い警戒感を持って に臨む」\n「バブル方式で する。感染拡大の恐れはないと認識している」]*gets.chop

119:96
21/08/17 22:38:15.40 BrZ+lWok.net
>>114 Perl5
$it="うっふ~ん";
print<<EOF;
「中止の考えはない。強い警戒感を持って${it}に臨む」
「バブル方式で${it}する。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証として${it}する」
「${it}を中止することは一番簡単なこと、楽なことだ。${it}に挑戦するのが国民の役割だ」
「安心安全な${it}に向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
EOF
実行結果
$ perl 20_114_菅話法.pl
「中止の考えはない。強い警戒感を持ってうっふ~んに臨む」
「バブル方式でうっふ~んする。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証としてうっふ~んする」
「うっふ~んを中止することは一番簡単なこと、楽なことだ。うっふ~んに挑戦するのが国民の役割だ」
「安心安全なうっふ~んに向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」

120:デフォルトの名無しさん
21/09/03 01:55:54.93 d87lg/Z2.net
半月ぐらいお題が出ないので一つ。
お題: テトロミノ
こんなパズルを解く。
URLリンク(ja.wikipedia.org)
大きさもピースも任意だが、上記ページにあるやつそのままで良い。(2つあるがどちらか一つで良い)
沢山パターンがあるかも知れないが、最初に見つかった一つを出すだけでも良い。
出力はテキストでも何でも人間が見て分かるようになってれば良い。
この問題については既にあちこちで答えが出ているような枯れた問題だと思うので、なるべく何も見ずに自分で考えて作ること。

121:蟻人間
21/09/03 20:43:43.19 9DjO+PTi.net
お題:15パズルを解くプログラム。
15パズルの盤を16要素の配列で表現し、実際に解く様子を出力せよ。空白は整数のゼロで表現する。
解けないときは「No answer」を出力せよ。可能ならば画像データも出力せよ。
参考資料:
URLリンク(www.studio-boiler.com)

122:デフォルトの名無しさん
21/09/04 00:30:45.45 ExeocnPJ.net
猿真似しか出来んのか

123:デフォルトの名無しさん
21/09/04 02:42:13.50 7+Hy81Ja.net
全然お題が出なかったからこれで良い

124:デフォルトの名無しさん
21/09/04 15:54:45.82 Q1ZjOy0h.net
最短でも80手らしい
それくらいだと全部表示してもそこまでうるさくないんだけど簡単な探索法だと2,300超えてしまいそう
全部表示したらうるさい事この上ないんだよな

125:デフォルトの名無しさん
21/09/04 16:28:17.76 HA1H8jBr.net
お題:パンくずリストを出力せよ
入力
東京,特許,許可局
出力
<ul class="pankuzu">
<li class="pankuzu_item">東京</li>
<li class="pankuzu_item">特許</li>
<li class="pankuzu_item active">許可局</li>
</ul>

126:デフォルトの名無しさん
21/09/06 02:26:18.29 gafTCMAF.net
>>122
Perl5
URLリンク(paiza.io)
よく分からんがこんなのでいいの?

127:デフォルトの名無しさん
21/09/06 09:51:36.66 AS0MIjWb.net
XSSに気をつけましょう

128:デフォルトの名無しさん
21/09/06 10:28:52.31 c9RFzrWf.net
>>122
react
const Pankuzu = ({ items }) => (
<ul className="pankuzu">
{items.map((item, i) => (
<li
key={`item-${item}`}
className={"pankuzu_item"}
data-active={i === items.length - 1}
>
{item}
</li>
))}
</ul>
);

129:デフォルトの名無しさん
21/09/06 11:28:19.10 DJ6jxapu.net
>>122 Python
URLリンク(ideone.com)

130:96
21/09/06 12:09:28.54 GTV7C5SZ.net
>>122 Perl5
use HTML::TreeBuilder;
@s = split',','東京,特許,許可局';
@a = map{['li', {class => 'pankuzu_item'}, $_]} @s;
$a[-1][1]{class} .= ' active';
$h = HTML::Element->new_from_lol(['ul', {class => 'pankuzu'}, @a]);
print $h->as_HTML('<>&', ' ', {});

実行結果
~ $ perl 20_122_pankuzu_list.pl
<ul class="pankuzu">
<li class="pankuzu_item">東京</li>
<li class="pankuzu_item">特許</li>
<li class="pankuzu_item active">許可局</li>
</ul>

131:96
21/09/06 13:04:59.11 moEus4wD.net
>>127 use HTML::TreeBuilder; だと色々引き連れて来るので、使う use HTML::Element; をuseすれば良かったんだけど、結果は同じだしまいいや…



133:デフォルトの名無しさん
21/09/06 13:13:49.70 uTG0VSHW.net
>>117
Ruby
URLリンク(ideone.com)
久しぶりにやってみた

134:デフォルトの名無しさん
21/09/06 19:38:11.84 n/A9WgFn.net
>>122 ocaml
URLリンク(ideone.com)
let f =
let rec aux acc = function
[] -> "<ul class=\"pankuzu\">\n" ^ acc ^ "</ul>"
| s :: [] -> aux (acc ^ "<li class=\"pankuzu_item active\">" ^ s ^ "</li>\n") []
| s :: ss -> aux (acc ^ "<li class=\"pankuzu_item\">" ^ s ^ "</li>\n") ss
in aux ""
let () = print_endline @@ f ["東京"; "特許"; "許可局"]

135:デフォルトの名無しさん
21/09/07 09:55:32.26 WSMGeNyo.net
>>122 bat
:: usage: this.bat 東京,特許,許可局
@echo off &setlocal enabledelayedexpansion
set "OUTPUT=echo ^<ul class="pankuzu"^>"
for %%a in (%*) do set "OUTPUT=!OUTPUT!&echo ^^<li class="pankuzu_item"^^>%%~a^^</li^^>"&set "LastArg=%%~a"
set "OUTPUT=!OUTPUT!&echo ^^</ul^^>"
set OUTPUT=!OUTPUT:"^>%LastArg%= active"^^^>%LastArg%!
%OUTPUT%
:: (%OUTPUT%) >>pankuzu.txt

136:デフォルトの名無しさん
21/09/07 12:33:03.11 Q6Cbfir4.net
お題
次のように置換した文字列が入力される
ESC → ESCESC
CR → ESCcr
LF → ESClf
元の文字列を復元してください
続く・・・

137:デフォルトの名無しさん
21/09/07 12:33:27.25 Q6Cbfir4.net
>>132の続き
例) 入力 → 出力
ESCESCESCESC → ESCESC
ESCESCESCcr → ESCCR
ESCESCESClf → ESCLF
ESCESCESCESCcr → ESCESCcr
ESCESCESCESClf → ESCESClf
ESCcrESCESC → CRESC
ESCcrESCcr → CRCR
ESCcrESClf → CRLF
ESCcrESCESCcr → CRESCcr
ESCcrESCESClf → CRESClf
ESClfESCESC → LFESC
ESClfESCcr → LFCR
ESClfESClf → LFLF
ESClfESCESCcr → LFESCcr
ESClfESCESClf → LFESClf
ESCESCcrESCESC → ESCcrESC
ESCESCcrESCcr → ESCcrCR
ESCESCcrESClf → ESCcrLF
ESCESCcrESCESCcr → ESCcrESCcr
ESCESCcrESCESClf → ESCcrESClf
ESCESClfESCESC → ESClfESC
ESCESClfESCcr → ESClfCR
ESCESClfESClf → ESClfLF
ESCESClfESCESCcr → ESClfESCcr
ESCESClfESCESClf → ESClfESClf

138:デフォルトの名無しさん
21/09/07 13:04:58.96 YXnsp+WP.net
>>132 Ruby
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/, { 'ESCESC' => 'ESC', 'ESCcr' => 'CR', 'ESClf' => 'LF' } )

139:134
21/09/07 13:14:10.80 YXnsp+WP.net
>>132 Ruby
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/ ){ _1[3..].upcase }

140:デフォルトの名無しさん
21/09/07 22:44:48.30 Q6Cbfir4.net
>>122
Java
URLリンク(paiza.io)

141:デフォルトの名無しさん
21/09/08 01:03:27.49 gNm9L8yp.net
>>132
Perl5
URLリンク(paiza.io)

142:デフォルトの名無しさん
21/09/08 01:19:37.74 gNm9L8yp.net
>>132
Kotlin
URLリンク(paiza.io)

143:デフォルトの名無しさん
21/09/08 01:55:31.54 gNm9L8yp.net
>>132
C
URLリンク(paiza.io)

144:96
21/09/10 22:13:37.39 UuNKa3lP.net
>>132 Perl5
s/ESC(ESC|cr|lf)/\U$1/g;

実行結果
URLリンク(ideone.com)

145:デフォルトの名無しさん
21/09/10 22:32:25.84 VHKKBZ5d.net
そんなやり方があったとは知らなかった

146:蟻人間
21/09/10 23:29:13.91 aesnFr7F.net
お題: 円柱の高さ(5~15cm)と半径(5~10cm)を指定すると、その円柱の展開図のSVGデータを出力するプログラム。
展開図には一部、0.5~1cmほどのりしろがあり、印刷・糊付けして実際に組み立てることができるものとする。SVGの用紙はA4サイズ。

147:デフォルトの名無しさん
21/09/11 00:32:47.77 7ac2XrM2.net
>>142
糊代を折ることを考えたら円柱じゃなくて(円に近い)多角柱になると思うけど、それでいいの?

148:蟻人間
21/09/11 10:37:25.30 DC


149:kTc1oQ.net



150:デフォルトの名無しさん
21/09/12 23:05:50.13 a0Jd4Hkz.net
>>132
Java
URLリンク(paiza.io)
"ESCESC"を "ESC" 任意の文字 に変換して
逆の変換すればOK
下記のJSONの文字列のようなエスケープでも
同様のやりかたで復元できる、はず
\ → \\
\r → \\r
\n → \\n

151:デフォルトの名無しさん
21/09/12 23:51:43.19 a0Jd4Hkz.net
訂正
\ → \\\\
\r → \\r
\n → \\n

152:デフォルトの名無しさん
21/09/12 23:52:06.11 a0Jd4Hkz.net
訂正2
\\ → \\\\
\r → \\r
\n → \\n

153:デフォルトの名無しさん
21/09/13 00:01:27.06 kzWLxl1N.net
お題 転調記号の数
問題
12成分のベクトル
a=[ 5,2,3,4,1,6,1,4,3,2,5,0 ] // 半音上げた調号数
b=[ 0,5,2,3,4,1,6,1,4,3,2,5 ] // 原曲の調号数
c=[ 5,0,5,2,3,4,1,6,1,4,3,2 ] // 半音下げた調号数
をとる
12成分の実ベクトルxに対して
f(x) = min{ a・x, b・x、c・x } (・は内積)
と定める
xが領域
x[i]≧0, Σ_[i:1〜12] x[i]=1
を動く時f(x)の最小値を求めよ
原題は数学板にあるけど長いし音楽知らないとわけわかめになるので略
知りたい人は以下より
スレリンク(math板:80番)
面白い問題おしえて~な 38問目

スレリンク(math板:190番)
面白い問題おしえて~な 38問目

154:デフォルトの名無しさん
21/09/13 07:01:38.59 eHkY1yZB.net
x=[1,0,0,0,...]でf(x)は最小値0をとるけど、原題みるとf(x)の最大値を求めるのかな

155:デフォルトの名無しさん
21/09/13 09:36:40.69 bTLuzAmV.net
対数とれば簡単

156:デフォルトの名無しさん
21/09/13 10:04:21.34 kzWLxl1N.net
>>149
orz
その通り
最大値求めよ
です

157:デフォルトの名無しさん
21/09/13 10:31:13.42 7dFFnUhL.net
黒鍵が1オクターブに5個しかないのに
調号が6個必要なのが納得出来ない

158:デフォルトの名無しさん
21/09/13 10:31:55.37 7dFFnUhL.net
最大値は3かな?

159:デフォルトの名無しさん
21/09/13 15:11:00.36 kzWLxl1N.net
>>152
嬰へ長調は♯6個とその異名同音調の変ト長調は♭6個でどうあがいても6個必要です
♭1個でキーは5/12上がり♯1個でキーは5/12下がりますがハ長調から見て嬰へ長調=変ト長調はどちらから回っていっても6個必要です
URLリンク(ja.m.wikipedia.org)
>>153
もう少し大きいです
数学板で最初に出た3より大きい例は
スレリンク(math板:157番)
面白い問題おしえて~な 38問目
変ト長調3回、ニ長調4回、変ロ長調4回
0 5 2 3 4 1 6 1 4 3 2 5
_ 4 _ _ _ 3 _ _ _ 4 _ _ = 35 > 33
_ _ 4 _ _ _ 3 _ _ _ 4 _ = 34 > 33
_ _ _ 4 _ _ _ 3 _ _ _ 4 = 35 > 33
つまりこの場合f(0,0,4/11,0,0,0,3/11,0,0,0,4/11,0)=34/11です
ホントの最大値はもう少し大きくなります

160:デフォルトの名無しさん
21/09/13 18:18:32.59 7dFFnUhL.net
円周率に近いな

161:デフォルトの名無しさん
21/09/13 22:45:15.18 kzWLxl1N.net
答え有理数です
しかしプログラム板のお題なので近似値出れば良しでいいと思います

162:デフォルトの名無しさん
21/09/13 22:51:14.71 7dFFnUhL.net
3.142857...
じゃなくて?

163:デフォルトの名無しさん
21/09/13 23:14:04.32 kzWLxl1N.net
3.2は超えます

164:デフォルトの名無しさん
21/09/13 23:14:24.72 7dFFnUhL.net
orz

165:ハノン
21/09/14 17:29:19.22 .net
>>148
元の出題
>変ニ長調(♭×5)→ホ長調(♯×4)→へ長調(♭×1)という曲の平均調号数は
そんな変てこな転調があり得るのか‥‥

166:デフォルトの名無しさん
21/09/14 20:25:22.64 3yXL9VGN.net
そう思ったら作曲してみよう

167:デフォルトの名無しさん
21/09/14 23:17:19.71 ugFzvtUj.net
サビで短3度転調、後半盛り上がって


168:半音上げはポップス曲だとよくある



169:デフォルトの名無しさん
21/09/15 02:21:25.59 3vtMVT28.net
>>148
そのお題はタイトルからして調べないと分からない単語が使われており、全体を通して何を言わんとしているのか分からない。

170:デフォルトの名無しさん
21/09/15 06:01:22.11 uRkyJcx+.net
>>163
音楽知識は不要 (不要なように書き換えてる)
それ以外は簡単な数学用語 (高校レベル)

171:ハノン
21/09/15 06:22:14.22 .net
>>162
>サビで短3度転調、後半盛り上がって半音上げはポップス曲だとよくある
気がつきませんでした、なるほど
>後半盛り上がって半音上げ
最後に半音上がるアレ、主和音と同じ高さで導音系の和音を強奏するのが無理があると思っており好みじゃないのです‥‥
URLリンク(www.youtube.com)

172:デフォルトの名無しさん
21/09/15 06:28:49.75 uRkyJcx+.net
お前の好みとかどうで良くね?

173:デフォルトの名無しさん
21/09/15 06:34:56.44 uRkyJcx+.net
URLリンク(soundquest.jp)

174:ハノン
21/09/15 06:45:27.54 .net
>>152
白鍵に調号をつけるしかない場面があるのです、>>154 のいうとおり ♭ソを基本の音にした音階のときはそうなります‥‥
では 7 個が最大かというと、そうでもなくて、ダブルシャープ(シャープ2個分)、ダブルフラット(フラット2個分)を使って(一時的に)8個以上の楽譜に仕上げる人がいました‥‥

175:デフォルトの名無しさん
21/09/15 08:25:52.14 m09hSrNp.net
>>165
私はあなたの存在が好みじゃないのです‥‥
URLリンク(www.youtube.com)

176:デフォルトの名無しさん
21/09/15 21:26:44.83 UGHCgEvY.net
ちなみにこの問題よくよく考えるとアルゴリズムの教科書によく出る超有名問題になってます
問題の名前だけは高校の数学の教科書にも載ってるくらい有名な問題です

177:デフォルトの名無しさん
21/09/15 22:28:51.28 qUQwebCi.net
3.2222222222222ってなるのかな
3.222221で止まってるけど

178:デフォルトの名無しさん
21/09/15 22:31:14.96 uRkyJcx+.net
最大=>3個とも平均が同じ=>3個の調しか使わない最大が存在する=>12C3全検索

179:デフォルトの名無しさん
21/09/15 23:00:11.21 UGHCgEvY.net
>>171
それです
見つけ方は>>171さんの方法が1番簡単
なんせ何も工夫しなくてもC[12,3]=220通りしかないので全部総当たりで計算する方が早い
それには
5a+ 2b+ 3c+ 4d+ 1e+ 6f+ 1g+ 4h+ 3i+ 2j+ 5k+ 0l

0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
5a+ 0b+ 5c+ 2d+ 3e+ 4f+ 1g+ 6h+ 1i+ 4j+ 3k+ 2l

0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
a*b+c+d+e+f+g+h+i+j*k+l≧1
の中の
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l
の最大値探す時に例えばd,f,h成分だけ0でない領域での最大値を見つけるには12元の線形方程式
5a+ 2b+ 3c+ 4d+ 1e+ 6f+ 1g+ 4h+ 3i+ 2j+ 5k+ 0l
=
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
5a+ 0b+ 5c+ 2d+ 3e+ 4f+ 1g+ 6h+ 1i+ 4j+ 3k+ 2l
=
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、
a*b+c+d+e+f+g+h+i+j*k+l=1、
a=b=c=e=g=i=j=k=l=0
を解いてどれかの成分が0以下なら捨て、正なら候補に残して全部調べてのパターンを後3つやればいけます
(もちろん有理係数の線形方程式なので解は有理数)
その際線形代数の計算をやってくれるライブラリがあれはそんなに大変な作業にはならないはずです
というかこのタイプの問題“線形計画法”この問題解くためのライブラリ持ってるやつが多いのでその場合は数行で終わってしまいます

180:デフォルトの名無しさん
21/09/16 00:34:05.02 g1b5b/gu.net
問題全く何も理解してない
力任せ
URLリンク(ideone.com)

181:デフォルトの名無しさん
21/09/19 19:11:20.33 zqOP2O5f.net
>>174
理詰めの解答よりこういう力技の解答の方がありがたいです
理詰めはどっかでうっかり間違ってる事も多いので
>>172さんの方針で220通り全数検索するコード組んでみました
URLリンク(ideone.com)
元々用意してた解答は単体法( Simplex algorythm)というやつ使う方法だったんですけど、220個位なら全数検査した方が安全ですね
しかも全部調べるのでベスト10とか出せる
さっきのコードは原曲のままが最小になる場合のベスト10とどちらかに半音ずらした方が最小になる場合のベスト10です

182:蟻人間
21/09/23 00:23:18.14 WyFAZLWz.net
お題: 中心(x, y)で半径mの円と、中心(z, w)で半径nの円の当たり判定。

183:蟻人間
21/09/23 00:36:24.97 WyFAZLWz.net
お題: カオス理論で知られるローレンツ・アトラクタを描画せよ。

184:蟻人間
21/09/23 00:45:13.27 WyFAZLWz.net
お題: 厚み0.5cm長さX cmのしなやかなテープを最小のうずまき状にまるめると直径は何cmになるか。X = 20, 30, 50.

185:ハノン
21/09/23 12:30:22.12 HaJtCNmP.net
>>178
「しなやかな」の定義中、中心側の終端の扱いを精緻に定義しなおしてください

186:デフォルトの名無しさん
21/09/23 12:40:13.64 fWOsjY2x.net
document.querySelectorAll('.post').forEach( e => {
const nameElement = e.querySelector('.name');
if(nameElement === null) return;
const name = nameElement.innerText;
if(name.indexOf('◆T6xkBnTXz7B0') >= 0 || name.indexOf('◆QZaw55cn4c') >= 0) e.remove();
});

187:デフォルトの名無しさん
21/09/23 16:05:27.59 jg/8HMJJ.net
>>176
それって数学的な証明はよくわからないんだけど直感的に考えると、(x, y) から (z, w) の距離が m + n 以下なら当たりで良いのかな?
他のパターンで当たる場合はなさそうだけど、あったとしても今は思いつかないのでとりあえずプログラムはそれで作ろうかと思う。

188:デフォルトの名無しさん
21/09/23 16:34:26.56 LOQBNAlJ.net
円周か円板かで答えが違う

189:デフォルトの名無しさん
21/09/23 17:12:27.81 QUC7Fk2H.net
入力として整数値が与えられたらその中の立っているビットを
等確率でランダムに一つ抜き出した整数値を出力する
3が与えられたら1か2のどちらかを1/2の確率で
17179877640が与えられたら8か256か8192か17179869184のどれかを1/4で

190:デフォルトの名無しさん
21/09/23 18:08:32.21 em+PQ8QU.net
>>Ruby
n = 17179877640
bits = []
while n > 0
n ^= b = n & -n
bits << b
end
puts bits.sample

191:181
21/09/24 02:52:30.55 N3yB15M0.net
>>176
Kotlin
URLリンク(paiza.io)

192:デフォルトの名無しさん
21/09/24 18:51:00.62 FX1uO51R.net
お題 繁分数
奇数個の整数がカンマで区切りで与えられる
間に'+'と'/'を順に挿入して計算する、ただし優先順位は後から優先
例) "1,2,3,4,5,6,7" → " 1 + 2 / ( 3 + 4 / ( 5 + 6 / 7 ))) = 233/151 ≒ 1.543046357616
計算結果を出力せよ
例)
入力 : "1,2,3,4,5,6,7"
出力 : 1.543046357616
入力 : "1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2"
出力 : 1.4142135623730951
入力 : "2,1, 1,1, 2,1, 1,1, 1,1, 4,1, 1,1, 1,1, 6,1, 1,1, 1,1 "
出力 : 2.718283582089552
入力 : "0, 4, 1, 1, 3, 4, 5, 9, 7, 16, 9, 25, 11, 36, 13, 49, 15, 64, 17, 81, 19, 100"
出力 : 3.141593311879928

193:デフォルトの名無しさん
21/09/24 19:42:20.13 SF8pwxS9.net
>>186
なぜ、偶数個あるのか?
偶数個は最後に1"を入れてやってみた
(頭悪いからリヴァースして、浮動小数点でやっている)
URLリンク(wandbox.org)

194:デフォルトの名無しさん
21/09/24 21:54:41.68 uMkpdCmM.net
>>187
数え間違えorz

195:ハノン
21/09/25 21:21:39.43 YrZFQiAF.net
>>186
URLリンク(ideone.com)

196:ハノン
21/09/25 21:23:01.64 YrZFQiAF.net
>>187
うーむ、私の >>189 よりシンプルですね

197:96
21/09/25 22:19:21.21 qK5TmKac.net
>>186 Perl5
use feature qw{signatures say};
no warnings 'experimental';
sub s($a, $b, @a) { @a ? $a + &d($b, @a) : $a + $b }
sub d($a, $b, @a) { @a ? $a / &s($b, @a) : $a / $b }
say &s(/(\d+)/g) for <DATA>;
__DATA__
1,2,3,4,5,6,7
1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
2,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,6,1,1,1,1,1
0,4,1,1,3,4,5,9,7,16,9,25,11,36,13,49,15,64,17,81,19,100
実行結果
$ perl 20_186_fraction.pl
1.54304635761589
1.4142135623731
2.71828236824984
3.14159316790851

198:デフォルトの名無しさん
21/09/26 00:35:27.94 x+MOSZRz.net
>>186
ruby -ne "/$_.split(?,).map(&:to_f).each_slice(2).reverse_each.reduce{|(s), (a, b)| b / s + a}"
# input
1,2,3,4,5,6,7
1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2
2,1, 1,1, 2,1, 1,1, 1,1, 4,1, 1,1, 1,1, 6,1, 1,1, 1,1,1
0, 4, 1, 1, 3, 4, 5, 9, 7, 16, 9, 25, 11, 36, 13, 49, 15, 64, 17, 81, 19, 100, 1
# output
1.5430463576158941
1.4142135623730951
2.718282368249837
3.141593167908507

199:ハノン
21/09/26 02:32:13.09 fnZfkDL3.net
>>186 C
>>189
終端処理を間違えていたので御題にあわせて修正
URLリンク(ideone.com)
233/151 = 1.54304635761589414855
1855077841/1311738121 = 1.41421356237309514547
1457/536 = 2.71828358208955211950
54193766400/17250408000 = 3.14159331187992751921

200:デフォルトの名無しさん
21/09/26 02:51:04.12 edcxzAwz.net
>>186 J
f =: +`%/
___ f 1,2,3,4,5,6,7
1.54305

201:96
21/09/26 11:06:39.50 ROfWiNc+.net
>>186 Perl5、>>191だと分母が大きい値になるテストケースで下の桁が例解と違ってくるので、通分を下から再帰的に行って
最後に割り算するようにした。また数値の個数が偶数だった場合には0を補うようにした
use feature qw{signatures say}; no warnings 'experimental';
sub f($a, $b, $c = 0, @r) {
 if (@r) {
  ($c, $e) = f($c, @r);
  $b *= $e;
 }
 ($a * $c + $b), $c;
}
for (<DATA>) {
 my ($n, $d) = f(/(\d+)/g);
 say "$n / $d = ", $n / $d;
}
__DATA__
1,2,3,4,5,6,7
1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
2,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,6,1,1,1,1,1
0,4,1,1,3,4,5,9,7,16,9,25,11,36,13,49,15,64,17,81,19,100
$ perl 20_186_fraction_2.pl
233 / 151 = 1.54304635761589
1855077841 / 1311738121 = 1.4142135623731
1457 / 536 = 2.71828358208955
54193766400 / 17250408000 = 3.14159331187993

202:デフォルトの名無しさん
21/09/26 13:52:29.02 Db797RWb.net
すいません
>>191は例題おかしいので数字合わないですね
気にしないでください
最後の例では最後の項の100抜くか、最後に21を追加してください
100抜いた場合は
4317632 / 1374345 = 3.14159254044654
21追加した場合は
54743776 / 17425485 = 3.1415926730303347
になると思います
>>191の例は
0+4/(1+(1/(3+...(17+81/(19+100/0)))))...)))
になってしまってるんだと思います(違うかも)

203:デフォルトの名無しさん
21/09/26 15:05:57.74 RIy3qD4V.net
>>186 ocaml
URLリンク(ideone.com)
let f xs =
let rec g = function
[] -> 0, 1
| a :: [] -> a, 1
| a :: b :: [] -> a + b, 1
| a :: b :: cs -> let n, d = g cs in a * n + b * d, n
in let n, d = g xs in Printf.printf "%d / %d = " n d;float n /. float d
>>186 ocaml
URLリンク(ideone.com)
let f xs =
let rec g = function
[] -> 0, 1
| x :: [] -> x, 1
| x :: xs -> let n, d = h xs in x * d + n, d
and h = function
[] -> 0, 1
| x :: [] -> x, 1
| x :: xs -> let n, d = g xs in x * d, n
in let n, d = g xs in Printf.printf "%d / %d = " n d;float n /. float d

204:デフォルトの名無しさん
21/09/26 15:06:59.82 RIy3qD4V.net
let g xs = Printf.printf "%.16f\n" @@ f xs
let () =
g [];g [1];g [1;2];g [1;2;3];g [1;2;3;4];g [1;2;3;4;5;6];
g [1;2;3;4;5;6;7];
g [1;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2];
g [2;1;1;1;2;1;1;1;1;1;4;1;1;1;1;1;6;1;1;1;1;1];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19;100];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19;100;21]

0 / 1 = 0.0000000000000000
1 / 1 = 1.0000000000000000
3 / 1 = 3.0000000000000000
5 / 3 = 1.6666666666666667
9 / 7 = 1.2857142857142858
59 / 37 = 1.5945945945945945
233 / 151 = 1.5430463576158941
1855077841 / 1311738121 = 1.4142135623730951
4178 / 1537 = 2.7182823682498372
66628546560 / 21208521600 = 3.1415931679085070
12434780160 / 3958113600 = 3.1415925404465401
315324149760 / 100370793600 = 3.1415926730303347

205:ハノン
21/09/26 19:57:37.78 KhgDxRBF.net
>>197
>[] -> 0, 1
>| x :: [] -> x, 1
>| x :: xs -> let n, d = h xs in x * d + n, d
>>193 を書いた私としてはなんとなくわかってしまうのが‥‥悲しいですね

206:ハノン
21/09/26 19:58:46.43 KhgDxRBF.net
つまり >>193 は言語として冗長だ、という点が悲しい、という意味です、誤解を招かないように補充します

207:デフォルトの名無しさん
21/09/26 21:14:48.05 K0n5mMQr.net
>>183
Java
URLリンク(paiza.io)

208:デフォルトの名無しさん
21/09/26 21:49:22.16 6LE1NaJb.net
お題: 与えられたUTF-8日本語文章から空白と記号を取り除いた後の文字列にNGワードがあるかどうか判定せよ。
NGワード: 「集近閉」「地獄経済」
例文1「集☆近☆閉☆は☆不☆滅」
例文2「地/獄/経/済/は/大/丈/夫」
出力例:「NGワード「集近閉」があります。」
出力例:「OKです。」

209:デフォルトの名無しさん
21/09/26 21:51:41.83 K0n5mMQr.net
>>186
Java
URLリンク(paiza.io)

210:デフォルトの名無しさん
21/09/26 21:58:42.24 Db797RWb.net
>>196
いまレス読み返したらアンカー間違ってるorz
>>196>>191と書いてあるのは全部>>186宛の自己レスです
191さんすいません
ちなみにやっぱり186の数値
3.141593311879928
は最後の部分を.../(17+81/(19+100/(0))))..として処理した値でした
100/0が∞になって17+81/(19+∞) = 17となって結局17で打ち切った場合の答えになってました
17で打切った場合
3763456 / 1197945 = 3.1415933118799275
>>186の値になってました

211:デフォルトの名無しさん
21/09/27 02:09:19.34 mB71+9h3.net
お題:: 文字列に対して文字列の範囲を指定すると、その範囲を角カッコで囲って出力するプログラムを作れ
文字列はASCII文字の並びでソ


212:ートされている前提とする 入力フォーマット 文字列 範囲 入力 abcdefghijklmn c-g 出力 ab[cdefg]hijklmn



213:デフォルトの名無しさん
21/09/27 03:27:36.76 HGR3sN0a.net
お題: ハッシュタグをGoogle検索リンクに変換せよ。
ハッシュタグを含む日本語UTF-8文字列が与えられる。ハッシュタグをHTMLハイパーリンクに変換してHTMLテキストを出力する。
ハッシュタグは「#」か「#」か「♯」で始まるものとします。
ハッシュタグには半角の「_」以外の記号と空白は使えません。
HTMLの特殊文字「&<>」はそれぞれ「&」「&lt;」「&gt;」に変換するものとします。
検索リンクは日本語グーグルを使用します。
入力例「これは #テスト文字列です。 #家族募集中 <本日は雨天なり>」

214:デフォルトの名無しさん
21/09/27 03:36:26.68 lACGcuZa.net
>>206
出力例もよろしく

215:デフォルトの名無しさん
21/09/27 03:39:59.74 HGR3sN0a.net
>>206
訂正。「&」→「&amp;」

216:デフォルトの名無しさん
21/09/27 04:15:57.90 HGR3sN0a.net
>>206
出力例「これは <a href="URLリンク(google.co.jp)テスト文字列です">#テスト文字列です</a>。 <a href="URLリンク(google.co.jp)家族募集中">#家族募集中</a> &lt;本日は雨天なり&gt;」

217:デフォルトの名無しさん
21/09/27 10:56:06.17 BIqiQYZe.net
家族募集中
が無視されてるのは何故?

218:デフォルトの名無しさん
21/09/27 11:20:24.19 FdLhLOZv.net
>>206
$ echo -e 'これは #テスト文字列です。 #家族募集 中 <本日は雨天なり>' |
sed -e 's/&/\&/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g' -e 's![##♯]\(\w*\)!<a href="URLリンク(google.co.jp)'
これは <a href="URLリンク(google.co.jp)テスト文字列です">#テスト文字列です</a>。 <a href="URLリンク(google.co.jp)家族募集中">#家族募集中</a> &lt;本日は雨天なり&gt;

219:デフォルトの名無しさん
21/09/27 16:42:34.63 lACGcuZa.net
>>186
Kotlin
URLリンク(paiza.io)
偶数個のやつは一つ削って奇数個にした。

220:デフォルトの名無しさん
21/09/27 17:07:09.23 lACGcuZa.net
>>186
Perl5
URLリンク(paiza.io)
これはまあ、ふざけたやり方というかなんというか。計算はPerlにお任せ。

221:デフォルトの名無しさん
21/09/27 21:40:29.82 lACGcuZa.net
>>205
Kotlin
URLリンク(paiza.io)
正規表現使って置換しているだけ。他の言語でも正規表現使ったら大差ない感じになるかも。

222:デフォルトの名無しさん
21/09/27 22:04:19.72 IGWq0JTX.net
>>205 octave
URLリンク(ideone.com)
f = @(s, r) regexprep(s, ['([' r ']+)'], '[$1]');
f('abcdefghijklmn', 'c-g')

223:デフォルトの名無しさん
21/09/27 23:53:33.07 CFsFGFcT.net
>>214
性器を痴漢
まで読んだ

224:デフォルトの名無しさん
21/09/28 00:35:44.78 R7FPj2K+.net
>>213
やはりそれきましたかw

225:デフォルトの名無しさん
21/09/28 02:40:03.94 wFK5NO29.net
>>206
Kotlin
URLリンク(paiza.io)
正規表現使って一発でやるのではなく1文字づつ読んでやるように作った。

226:デフォルトの名無しさん
21/09/28 07:20:01.83 OyddjX6J.net
>>176 Lua
function f(x, y, m, z, w, n)
return (x - z) ^ 2 + (y - w) <= (m + n) ^ 2
end

227:デフォルトの名無しさん
21/09/28 07:27:57.86 OyddjX6J.net
>>219
間違えました
function f(x, y, m, z, w, n)
return (x - z) ^ 2 + (y - w) ^2<= (m + n) ^ 2
end

228:デフォルトの名無しさん
21/09/28 10:29:00.43 wFK5NO29.net
あ、そーか。2乗のまま比較すればsqrt不要だったな。

229:デフォルトの名無しさん
21/09/28 19:11:27.77 RwSKB5Xt.net
>>202
Kotlin
URLリンク(paiza.io)
二番目のやつはOKではないな。

230:デフォルトの名無しさん
21/09/28 23:13:01.41 R7FPj2K+.net
>>209
の出力例をみると“テスト文字列です”は文字列、“。”な区切り記号と認識してここで切らないとダメみたいだけど、だとするとunicodeの文字列の中にある“区切り記号”と“文字列を構成する文字”を区別しないといけなくなる
GOには“unicode”というライブラリが用意されてて簡単にできるみたいだけどオレが愛用するHaskellではその手のライブラリが見つからんorz
流石にスクラッチで一から書くのは無理だし
どっかに“コード××〜××までは記号”とか一覧になってるテーブルとかないんかな

231:デフォルトの名無しさん
21/09/29 00:03:13.95 BLI1g7MR.net
POSIX character classes

232:デフォルトの名無しさん
21/09/29 00:18:36.77 1i2b1Egj.net
お題: 次を真似して作れ。
「突然の死ジェネレーター」
URLリンク(totuzennosi.sacnoha.com)
ただし、等幅フォントでの表示を想定し、半角・全角の文字幅の違いを尊重すること。

233:デフォルトの名無しさん
21/09/29 04:42:10.56 WX6C7qGJ.net
>>225
★や※を全角にするか半角にするかに依存。要はフォントに依存するから無理

234:デフォルトの名無しさん
21/09/29 11:07:43.39 0XODgfdX.net
Unicodeで半角全角を扱う Ambiguous(曖昧さ)とUncertainty(不確実性)の恐怖
URLリンク(qiita.com)

ま、しかし、なんとなくいい加減で入力によってはおかしくなるやつならば作れるので、後で時間があったら作ろう。

235:デフォルトの名無しさん
21/09/29 12:01:49.91 hPAWkWy2.net
>>227
> Unicodeで半角全角を扱う場合、まずフォントがEast Asian Widthの規定を正しく守っている必要があります。でも実際にはそうとは限りません。
>
> またそれを取り扱うプラットフォームも適切に実装されている必要がありますが、必ずしもそうとは限りません。
仕様を満たしてないものは仕様通りの挙動にならないかどで仕様を叩いているということで合ってる?

236:デフォルトの名無しさん
21/09/29 12:03:25.69 SXvzkJ7t.net
Boys, be Ambiguous.

237:デフォルトの名無しさん
21/09/29 12:32:11.32 SXvzkJ7t.net
お代
URLリンク(tokyochallenge.odpt.org)

238:デフォルトの名無しさん
21/09/29 13:28:55.86 p1B8H211.net
>>225
Kotlin
URLリンク(paiza.io)
流石に寿限無は長すぎたようだ。

239:デフォルトの名無しさん
21/09/29 13:41:53.17 p1B8H211.net
>>230
> 2020年、2021年の東京では、東京マラソンの開催、東京国際クルーズターミナルのオープン、
> 東京2020オリンピック・パラリンピック競技大会の開催など、国際的に注目を集めるイベントが
> 多数予定されています。
外国からの入国制限、及び無観客にして解決。

240:デフォルトの名無しさん
21/09/29 19:41:42.38 p1B8H211.net
>>225
Kotlin
URLリンク(paiza.io)
吹き出し部分を半角文字に変えてみたんだけどね。あまり意味ないか。

241:蟻人間
21/09/29 19:46:15.13 1i2b1Egj.net
お題: 重力と慣性のないデカルト座標系に長さ3, 4, 5の固くて丈夫な連結された3本の棒B1, B2, B3がある。棒の幅はゼロに近い。
B1, B2, B3は現在x軸上に並んでいて、それぞれの端点の座標はO(0, 0)~E1(3, 0)、E1(3, 0)~E2(7, 0)、E2(7, 0)~E3(12, 0)である。
B1, B2, B3はこの順で


242:端点が連結されており、B1の一端は原点O(0, 0)に連結されている。B3の他方の端は自由である。連結点では-180~180度曲げることができる。 このような条件でB1, B2, B3を連結点O, E1, E2を中心に回転するとE1, E2, E3は移動するであろう。 さて、点P(x, y)が与えられたとき、どのように回転すればE3がPに重なるであろうか。その回答の一つを求めよ。許容誤差をε=0.01とする。 入力例「P=(0, 12)」「P=(5, 5)」「P=(15, 3)」 出力例「90度、0度、0度」「ありません」



243:デフォルトの名無しさん
21/09/29 20:45:55.00 ktvYkylG.net
>>234
頭が悪そう
出題が冗長

244:蟻人間
21/09/29 21:27:25.97 1i2b1Egj.net
>>235
代わりに出題してみて

245:デフォルトの名無しさん
21/09/29 21:47:32.31 yKvURuJk.net
悪"そう"では無いな。説明において要点を整理出来ない者はすべからく頭悪い
問題文はその者の理解度に等しい

246:デフォルトの名無しさん
21/09/30 00:49:10.52 Ai6xyiAS.net
>>234
haskell
URLリンク(ideone.com)

247:デフォルトの名無しさん
21/09/30 01:23:41.62 Ai6xyiAS.net
>>238
ラジアンと度の変換間違いorz
haskell
URLリンク(ideone.com)

248:デフォルトの名無しさん
21/09/30 03:52:16.30 Ai6xyiAS.net
ちなみに代わりに出題するなら
入力(a,b)に対して方程式
a = 3cos(x) + 4cos(x+y) + 5cos(x+y+z)
a = 3sin(x) + 4sin(x+y) + 5sin(x+y+z)
の解x,y,zをひとつ求め(度数法で与えるとする)
「x度、y度、z度」
の形で出力せよ、解がない場合には
「ありません」
と出力せよ
ただし角度の範囲は-180°〜180°の範囲で与えるとする
かな

249:デフォルトの名無しさん
21/09/30 20:22:48.51 59EqeRS1.net
>>202 JavaScript
URLリンク(ideone.com)

250:蟻人間
21/09/30 20:33:52.35 8ZMYiRqf.net
>>239
ここに居るほとんどの人が分かってないから、解説をお願いします。

251:デフォルトの名無しさん
21/09/30 20:35:20.03 BaUXpZJu.net
>>242
素直に「僕には難しすぎてわからないから詳しく教えてください」って言えないの?

252:蟻人間
21/09/30 20:45:22.12 8ZMYiRqf.net
>>243
ここは解いた人が解説しないと

253:デフォルトの名無しさん
21/09/30 20:46:54.85 BaUXpZJu.net
>>244
お前とQZ以外は理解してるよ

254:蟻人間
21/09/30 21:01:09.92 8ZMYiRqf.net
2つの副業と、ベルトコンベアのラインでねじ回しの仕事で疲れてるから許してくれよ。

255:蟻人間
21/09/30 21:13:56.42 8ZMYiRqf.net
この技術を応用すればロボットアームを自由自在に動かせそうだね。

256:蟻人間
21/09/30 21:47:22.16 8ZMYiRqf.net
イーロン・マ●クさん、見てる? イェイ!

257:デフォルトの名無しさん
21/09/30 23:18:58.96 vWP+uHYR.net
>>247
誤差が積もり積もるから無理

258:デフォルトの名無しさん
21/10/01 00:08:37.55 VIfkqI1d.net
群論で簡単に解けそう

259:デフォルトの名無しさん
21/10/04 21:51:58.57 8pCgPPfH.net
お題: CSV形式のテキストデータを検索する grep のようなコマンド(または関数)
CSVの形式は RFC 4180 の通りで文字のエンコーディングは UTF-8、改行は CR/LF。
この辺のページを参考にすると良い。
URLリンク(datatracker.ietf.org)
URLリンク(www.kasai.fm)
URLリンク(blog.tech-monex.com)


260:%E3%83%83%E3%83%88%E3%81%AE%E5%AE%9A%E7%BE%A9 普通の grep コマンドを CSV ファイルに対して行うと1つのデータで改行が入っていた時に何行目の何列目のデータなのかが分からなくなって不便である。 その他、ダブルクォーテーションで括られているか否か、データとしてカンマやダブルクォーテーションを含むか否かで検索する側が正規表現を考慮して作らねばならず面倒臭い。 ということでこういった面倒くささを解消するコマンドを作るのがこのお題。 コマンドという形式ではなく正規表現と検索されるCSVテキスト(あるいはCSVファイル名や読み込みオープンしたファイルデスクリプタ)と検索する時のオプション(大文字小文字を無視など)を渡すと検索結果を返す関数を作成しても良い。 尚、1行目の項目名が入っている事がある行についてはその存在の有無をオプションで渡して指定する方式にして良い。 検索結果はパターンにマッチしたデータについて何行目、何列目だったかが分かるようにしてデータと共に出力する(関数の場合は呼び出し元に返す)。 出力する時にデータを見易くするために改行があったら \n 等にエスケープして1行にしても良い。 CSV読み込みや正規表現について既存のライブラリを使うか否かはご自由に。但し言語や環境に最初から付属していない外部のライブラリを使う場合は何を使ったかが分かるようにコメント等に入れておくこと。



261:デフォルトの名無しさん
21/10/04 23:29:46.48 nQu0++L9.net
はい次

262:デフォルトの名無しさん
21/10/05 01:25:35.09 jsFp2nZ3.net
難し過ぎたか・・・

263:デフォルトの名無しさん
21/10/05 03:24:50.56 8XAhfzzR.net
お題として質が低いのよ。
課題だねこれじゃw
宿題や仕事は自分でやってどうぞ

264:デフォルトの名無しさん
21/10/05 07:56:40.58 DrLIL1/r.net
てかちょっとガチでやったらそれなりの規模になるからこんな所でやるようなもんじゃない

265:デフォルトの名無しさん
21/10/05 11:30:23.33 akfRupr1.net
せやな
どんなに長くても30分くらいて完成する程度がやってみようと思える限界やろな
所詮暇つぶしやし

266:デフォルトの名無しさん
21/10/05 11:35:39.40 jsFp2nZ3.net
まあやるやらないは自由なので

267:デフォルトの名無しさん
21/10/05 12:04:55.27 +8sevm6S.net
じゃあ俺がやるよO/

268:デフォルトの名無しさん
21/10/05 12:39:36.95 mwjMS5Mk.net
というか正確に仕様を満たせというのは実装チャレンジであって僕の考えた最強の解決策を見せっこするためのお題にはならんだろ

269:デフォルトの名無しさん
21/10/05 12:57:06.08 UApdMlTn.net
>>251
スレリンク(tech板:88番)
> 88 名前:デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)[] 投稿日:2021/09/28(火) 00:00:21.68 ID:qy0bUCok0
> >>81
> CSV用のgrepってあったらいいよな。
> ライブラリ使えば簡単そうだからお題スレに出しておくかな。

270:デフォルトの名無しさん
21/10/05 13:17:01.07 +8sevm6S.net
>>260


271:デフォルトの名無しさん
21/10/05 13:17:11.37 +8sevm6S.net
>>259
??

272:デフォルトの名無しさん
21/10/05 13:17:42.69 +8sevm6S.net
解かない人は黙っててもらえないかな

273:デフォルトの名無しさん
21/10/05 13:19:46.17 +8sevm6S.net
>>255
ライブラリ使えば余裕
>>256
俺は人生かけてチャレンジする

274:デフォルトの名無しさん
21/10/05 13:20:57.94 +8sevm6S.net
>>251
ちょっと待ってろ俺が回答してみせる
しばらく修行の旅に出る

275:デフォルトの名無しさん
21/10/05 13:54:06.13 8XAhfzzR.net
>>260
そんなことだろうと思ったよ

276:デフォルトの名無しさん
21/10/05 14:03:05.86 +8sevm6S.net
>>254
ライブラリ使うのもあり


277: オートマトンを実装するのもあり Bison使うのもあり パーザジェネレータから作るのもあり すごく面白そうじゃん



278:デフォルトの名無しさん
21/10/05 14:03:59.63 +8sevm6S.net
お題に文句つけるのはお前ららしくないよ
淡々と馬車馬のように回答するのがお前らのアイデンティティだろ
初心思い出せよ

279:デフォルトの名無しさん
21/10/05 15:15:20.74 jsFp2nZ3.net
>>260
そうそう。それそれ。

280:デフォルトの名無しさん
21/10/06 12:59:47.28 xRQj077j.net
お題 持久戦
隔たりのない6面のサイコロがN個ありi番目のサイコロのj番目の面には整数Aijが書かれている
高橋君は一個のサイコロを選んで一回振ると言う操作を繰り返す。
ただし2回目以降の操作で、前回の操作で出た目より小さいか同じ目が出てしまったら操作を止める
各回どのサイコロを振るかは前回に出た目を見てから決めることができる
高橋君は出来るだけサイコロを多く振りたいと考えている
操作の行われる期待値が最大化されるような選択が行われたときの操作回数の期待値を求めよ
と言うのが数学板に投下されたけどどう見ても数学の問題でないので全員ガン無視
URLリンク(atcoder.jp)

281:デフォルトの名無しさん
21/10/06 12:59:53.99 xRQj077j.net
以下自分の計算した例
間違ってるかも
入力
1
[ [ 1,2,3,4,5,6 ] ]
出力
117649 / 46656 ( = 2.5216263717421126 )
入力
3
[ 1,2,3,4,5,6 ]
[ 1,4,9,16,25,36 ]
[ 1,8,27,64,125,216 ]
出力
13070575 / 3779136 ( = 3.4586146145574013 )
入力
3
[ 1,1,1,1,1,1 ]
[ 2,2,2,2,2,2 ]
[ 3,3,3,3,3,3 ]
4 / 1 ( = 4.0 )
出力は別に小数表示でも良いとする
尚最後の例は元サイトの“全部異なる”の制約満たしてないけど検算用、無視して桶

282:デフォルトの名無しさん
21/10/07 19:56:52.00 intYWBu8.net
隔たりって何

283:デフォルトの名無しさん
21/10/09 14:34:36.05 uZ4xSJeU.net
>>272
偏りのないです
元ネタのホムペには他にも何問か有るんですけどコレ以外はあんまり面白いのがない
ちなみに例はN=1,3でこれくらいだと総当たりでも解ける
でも元ネタサイトの制限はN≦30000でこれだと実質総当たりだと解けない
なので元ネタは「いわゆるDPで解ける問題だけどできますか?」が題意のようです
まぁここではN=3くらいでパッパッと解ければいいかと

284:デフォルトの名無しさん
21/10/12 06:03:57.89 e1q14myl.net
お題:
正整数 N が与えられます
f(x) = 正整数 a, b であって 0 < a / b < 1 かつ b ≦ x を満たす a / b の「値の種類数」
としたとき f(x) = N を満たす x が存在するか判定しなさい
制約:
1 ≦ N ≦ 10^12
入力: N
出力: x が存在するのなら "Yes", 存在しないのなら "No"
入力例 1: 11
出力例 1: Yes (f(6) = 11 です)
入力例 2: 123
出力例 2: No
入力例 3: 303963552391
出力例 3: Yes (f(1000000) = 303963552391 です)
f(x) の例
f(1) = 0
f(2) = 1
f(3) = 3
f(4) = 5
f(5) = 9
...

285:デフォルトの名無しさん
21/10/13 17:28:45.55 igjNiW+q.net
>>274
 URLリンク(ideone.com)
 c++
 アルゴは"OEIS A015614"より、本人はよくわかってない
 余談:単純にオイラーのφを200万やっても2秒くらいだった

286:デフォルトの名無しさん
21/10/15 22:08:55.85 NqIVJaNX.net
じゃ簡単なお題を
1.少数(整数部MAX5桁、小数部MAX5桁)を入力し、分数に変換するプログラムを作成しなさい。
2.誕生日と日付AをそれぞれYYYYMMDDの8桁の整数で入力し、日付Aの時点で何歳かを表示するプログラムを作成しなさい。
3.西暦年YYYYを入力して閏年か否かの判定をするプログラムを作成しなさい。

287:デフォルトの名無しさん
21/10/15 22:53:54.66 HBylJ5Wv.net
平面3リンクマニュピュレータの逆運動学のプログラミングを完成させなさい。
キーボードで手先の位置を入力すると、関節角が表示されるようにすること。
scanfを使うのと、アームの長さなどは適当に決めていいという条件。

288:デフォルトの名無しさん
21/10/15 23:23:30.53 eqKsqNtm.net
>>277
平面3リンクマニピュレータというものを検索してみたけど、手先の位置だけ与えても各関節の角度は同定できないのでは?

289:デフォルトの名無しさん
21/10/15 23:45:51.35 HBylJ5Wv.net
>>278
第1関節は原点で固定ですね。
手先の位置・姿勢が(xed, yed, φed)と与えられた(キーボード入力)時の、第3関節の位置が
x2=xed-L3×cosφed
y2=yed-L3×sinφed
と求まり、第3関節がこの場所に来るには、リンク1とリンク2が三角形の2辺になるように第1関節と第2関節の角度を決めるという感じですね。

290:デフォルトの名無しさん
21/10/16 02:01:06.18 8sv207AJ.net
お題専門用語だらけでググらないと意味わからないようなお題やる気にならん

291:デフォルトの名無しさん
21/10/16 04:05:29.07 a3RnthCp.net
Visual Studio Code / VSCode Part11
スレリンク(tech板:173番)

292:
21/10/16 17:58:18.20 EXZ4MfzZ.net
>>268
>初心思い出せよ
すみません……

293:デフォルトの名無しさん
21/10/16 18:45:58.11 BO6yK2Ly.net
scanfってことはHaskellじゃダメなのか。
休み一日しかないから取り掛かってみるか止めとくか悩むね。

294:デフォルトの名無しさん
21/10/16 18:53:52.75 BO6yK2Ly.net
>>277は算数はわかってるんだけどプログラムがわからないんだろな。
そんなあなたにHaskell!!Haskell!!

295:デフォルトの名無しさん
21/10/16 19:48:39.78 ZzoUZQ8H.net
>>277
C++のスレで僕の丸投げ課題だれもやってくれないって拗ねてた奴か
こっちにまで来て人に迷惑かけるなよ

296:デフォルトの名無しさん
21/10/16 21:10:27.39 27uehHe1.net
>>284
数学じゃないだろ

297:デフォルトの名無しさん
21/10/17 08:07:29.47 QqhGhKAl.net
算数じゃなかったら何なんだ。

298:デフォルトの名無しさん
21/10/17 08:09:34.06 eIKWemED.net
物理

299:ハノン
21/10/17 08:14:29.67 iZHfLY3S.net
>>287
物理なら剛体力学でしょうが力学的要素はないから今回は工学の機構学とかそんな感じ
>>279
>リンク1とリンク2が三角形の2辺
せっかく一つ余分にある自由度を、そんな縛りで消費するのはもったいないと思います、それは力学的配慮ですか?

300:デフォルトの名無しさん
21/10/17 08:34:02.73 QqhGhKAl.net
私は高校一年生の算数で解ける。

301:デフォルトの名無しさん
21/10/17 08:35:04.57 QqhGhKAl.net
高校一年生が解く方法と、大学生が解く方法は違うのだろうか?

302:デフォルトの名無しさん
21/10/17 09:18:03.49 MkgjpPUe.net
>>277
まぁ、
X=Lcosθ+Mcos(θ+φ)+Ncos(θ+φ+Ψ)
Y=Lsinθ+Msin((θ+φ)+Nsin(θ+φ+Ψ)
みたいな感じで、LMNは適当に決めるとしても、角度のパラメータが3つあるんで、
もう1条件制約をかけないと決まらないケースが多発するだろうなぁ。
アームの長さを適当に決めろというなら、N=0にでもしてしまえば、
要はLとMと(原点と(X,Y)の距離)の三角形で角を求めろっていうだけの問題だから、
余弦定理でcosθは求まるかな。
それはインチキだというなら、
原点と(X,Y)の距離に応じてLの先端部分と(X,Y)までの距離が適当・・・
たとえば、(M+N)の半分になるような位置に位置づけることにして、
あとは、余弦定理で解けそうだけど。
よりコンピュータらしい力技でいくなら、三重ループで0から360度まで適当なステップ
(たとえば、5度おき)に回して、距離が目標位置に一番近くなった時の値の前後
(5度おきにとったなら前後5度分・・10度分だね)を1度とか0.1度とかのステップで
3重ループで回して、一番目標位置に近かったものを答えにする。

303:デフォルトの名無しさん
21/10/17 10:36:29.88 31BFfd9w.net
腕の長さ自由に決めていいならひとつ捨てて残り2つ同じ長さにすればカバーできる範囲同じで計算も簡単になる
元のお題でそもそもわざわざ関節3つ使う理由がない

304:デフォルトの名無しさん
21/10/17 10:51:06.44 UoQPOfGF.net
どうでもいいことを長々と議論するなあ
無視すりゃいいだろw

305:デフォルトの名無しさん
21/10/17 10:57:44.74 QqhGhKAl.net
手先の位置というのが同定できない原因だったけど、位置と角度に変わったので大丈夫では?

306:デフォルトの名無しさん
21/10/17 11:01:26.31 QqhGhKAl.net
関節角度の並びは二つに限られ、第一腕部第二腕部が直線に並ぶ時ひとつ、それ以外は二種類の並びに制限される。

307:デフォルトの名無しさん
21/10/17 12:08:44.44 QqhGhKAl.net
URLリンク(imgur.com)
こんな感じでは?
実線と点線の二つの腕の位置が有り得る。
あとは余弦定理を使えば全て解ける。

308:デフォルトの名無しさん
21/10/17 12:15:55.19 06wimQoq.net
>>277 は、こいつに出された大学での課題。C/C++ スレで丸投げ指摘されて遁走。

309:デフォルトの名無しさん
21/10/17 15:12:12.66 atjZW8su.net
お題: 「平面3リンクマニュピュレータの逆運動学」とは何か。日本語で説明せよ。

310:デフォルトの名無しさん
21/10/17 15:21:58.09 06wimQoq.net
ロボット工学本の逆運動学の章に必ず載ってる問題。勿論解法も載ってる。
>>277のアホはその解法のプログラミング(の課題)が出来ず、ここの連中にやらせようとしてる。

311:デフォルトの名無しさん
21/10/17 15:54:50.71 31BFfd9w.net
作りゃいいと言われてもあまりにも意味わかんない
関節3つつけるのは当然手先の向きとかに制約がないと意味ない
じゃあ無視して関節2つでと言われたら面白くもなんともない

312:デフォルトの名無しさん
21/10/17 18:26:22.03 QqhGhKAl.net
結論:算数で十分でした。

313:デフォルトの名無しさん
21/10/17 18:38:41.07 W8S2Fmip.net
>>277 長さ全部1でやってみた
URLリンク(ideone.com)

314:デフォルトの名無しさん
21/10/17 18:39:49.61 QqhGhKAl.net
>>303
すごい。

315:ハノン
21/10/17 22:41:52.63 iZHfLY3S.net
>>276
>>276 1. : C
URLリンク(ideone.com)
手間取ってしまいました…

316:デフォルトの名無しさん
21/10/18 12:12:09.30 MhIWImiq.net
ときどき言ってたり、やったりするがいまだ解答不明
平面上に円をおき、その円周上の整数点がちょうどn個となる円の最小半径は?
具体的にn=47でもわからない

317:デフォルトの名無しさん
21/10/18 19:23:56.84 578ljV9d.net
nは奇数にもなり得るの?

318:デフォルトの名無しさん
21/10/18 20:05:15.05 h1g8zzDx.net
>>306
昔そんな問題見たな
このスレかも

319:デフォルトの名無しさん
21/10/18 20:08:42.56 h1g8zzDx.net
全てnに対して円が存在するかどうかはわかってるの?
n=0, n=1の時は�


320:~は存在するが最小値は存在しない n≧2の時は円が存在するなら最小値も存在する



321:デフォルトの名無しさん
21/10/18 21:27:28.14 9iPUXHWE.net
1970年から2369年までの間で
カレンダーの曜日が365(366)日同じパターンで出て来る年をグループ分けして
グループが全部で何個あるか(たぶん即答7個だけど365と366を違うものとするので7以上)と
各グループに何年が属するかを出力するプログラム

322:デフォルトの名無しさん
21/10/18 22:48:50.35 cIVwbLw+.net
400個だろ

323:デフォルトの名無しさん
21/10/18 23:32:12.79 o3blQ8kr.net
最大で14個だよね?

324:デフォルトの名無しさん
21/10/19 00:20:44.71 eZJKwUVR.net
>>276
とりあえず1だけ。
perl -ne 'print int($_ * 100000) . " / 100000\n"'

325:デフォルトの名無しさん
21/10/19 00:37:17.41 uZ+aFQr8.net
>>310 bat
@echo off &setlocal enabledelayedexpansion
for /L %%y in (1970,1,2369) do set /a "fL=^!(%%y%%4)^^^!(%%y%%100)|^!(%%y%%400), g=%%y-1, w=(%%y+g/4-g/100+g/400)%%7" &for /f %%i in ("!fL!!w!") do set "p%%i=!p%%i!,%%y"
set n=0
for %%w in (日,月,火,水,木,金,土) do set "w!n!=%%w"&set /a n+=1
set L0=平
set L1=閏
echo 閏有無 1月1日の曜日 : 西暦年
for /L %%a in (0,1,1) do for /L %%b in (0,1,6) do echo !L%%a!年 !w%%b!曜日 : !p%%a%%b:~1!
pause &exit /b

326:デフォルトの名無しさん
21/10/19 06:24:04.50 uZ+aFQr8.net
曜日判定は開始年のみで残りは閏年判定とインクリメントだけで良かったね

327:デフォルトの名無しさん
21/10/20 01:31:42.75 3o6derLl.net
>>313
勘違いしてるぞそれw

328:デフォルトの名無しさん
21/10/21 02:55:37.46 47mGjMvV.net
>>316
ぶ、ぶんすうにはなっているとおもうんだ

329:デフォルトの名無しさん
21/10/21 03:09:36.20 47mGjMvV.net
>>276
2だけ
Kotlin
URLリンク(paiza.io)

330:デフォルトの名無しさん
21/10/21 12:46:05.31 TQQGYYBP.net
>>306
ちょっとやってみたけど奇数のものは見つけにくい
47ともなると相当大きくなりそう

331:デフォルトの名無しさん
21/10/21 13:16:40.90 LMXfXe/q.net
x^4+y^4+z^4=a^4
が成り立つ値
x,y,z,a
を求めよ。

332:デフォルトの名無しさん
21/10/21 16:28:37.98 s+STdMnX.net
0

333:デフォルトの名無しさん
21/10/21 18:41:27.23 LMXfXe/q.net
>>320
値は2以上の自然数ね

334:デフォルトの名無しさん
21/10/21 18:46:20.17 1lKVQwqU.net
1も入れてあげて

335:デフォルトの名無しさん
21/10/21 20:52:10.29 I05C+tHT.net
>>310 octave
URLリンク(ideone.com)
year = @(y) cell2mat(arrayfun(@(m) {calendar(y, m)'(:)}, 1:12));
years = @(ys) cell2mat(arrayfun(@(y) {year(y)(:)'}, ys)');
ys = 1970:2369;
[c, ~, ic] = unique(years(ys), 'rows');
c, arrayfun(@(uic) {mat2str(ys(ic == uic))}, unique(ic))


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch