◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

プログラミングのお題スレ Part20 YouTube動画>3本 ->画像>5枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1624028577/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん
2021/06/19(土) 00:02:57.84ID:MQWrKSb7
プログラミングのお題スレです。

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

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

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

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

※前スレ
プログラミングのお題スレ Part19
http://2chb.net/r/tech/1606662245/
2デフォルトの名無しさん
2021/06/19(土) 00:37:51.46ID:qGn/On1S
>>1
オツ
3◆QZaw55cn4c
2021/06/19(土) 07:27:57.12ID:NotTQLCm
>>1
お疲れ様です
4デフォルトの名無しさん
2021/06/19(土) 09:51:25.47ID:bhsM+Hmb
>>1
haskell

putStrLn "乙"
5デフォルトの名無しさん
2021/06/19(土) 11:32:47.24ID:HedGQGNJ
部分解答可
1. クリップボードの内容を取得
2. 現在の日時を次のように出力する 2021/06/19/第3土曜日/10:19/
前スレ参照
#!/bin/sh
for num in "896" "967" "968" "972" "975" "977-982" "994" "996"
do
firefox $( echo '/5422666061/hcet/igc.daer/tset/ten.hc5.suivem//:sptth' | rev )$num
sleep 30
done
3. 現在の日時、キーワード、クリップボードの内容を1行にして指定のファイルに追記。キーワードはプログラム実行時にキーボード入力する。
4. 今日が第3土曜日なら指定の画像ファイルを表示
6デフォルトの名無しさん
2021/06/19(土) 11:34:07.84ID:HedGQGNJ
解答例
#!/bin/sh
# 1
clipb=$(xclip -o)
# 2
day=$(date "+%e")
num=$(( ($day + 6) / 7 ))
today=$( date "+%Y/%m/%d/"第$num"$(date +%a)"曜日"/%H:%M/" )
# 3 キーボード入力した文字列を変数ahaに入れる
read -p "キーワードを入力してください:" aha
# trコマンドを使ってクリップボードにコピペした文章から改行文字\nを削除
copipe=$( echo "$today *$aha $clipb" | tr --delete '\n' )
# >>は追記、>は上書きしてしまうので注意
echo "$copipe" >> "$HOME/Documents/memo.txt"
# backディレクトリの中にmemoディレクトリを作成
# --parentsは指定の親ディレクトリbakが存在しない場合に作成してくれるオプション引数、mkdir -pでもOK
mkdir --parents "$HOME/Documents/bak/memo/"
cp --backup "$HOME/Documents/memo.txt" "$HOME/Documents/bak/memo/"
xdg-open "$HOME/Documents/memo.txt"
# 4 xdg-openは既定のアプリを起動するコマンド
if [ $( echo $today | grep "第3土曜日" ) ] ; then
xdg-open "$HOME/Pictures/image.jpg"
sleep 10 ; exit
fi
7デフォルトの名無しさん
2021/06/19(土) 11:53:11.09ID:wmUlN/CJ
まだやってるのか
8デフォルトの名無しさん
2021/06/21(月) 21:15:15.50ID:h4Y3M1Y8
0 と "n + 1" を任意に定義して自然数を作り、
足し算と掛け算を実装せよ

なお "n + 1" は次を満たすこと
・ n + 1 == m + 1 ⇒ n == m
・ n が自然数 ⇒ n + 1 は自然数
・ n が自然数 ⇒ n + 1 != 0
9デフォルトの名無しさん
2021/06/22(火) 13:23:44.46ID:VRgeVVL3
お題
リストを受け取って、重複のないリストに分割してください

入力:[b,d,e,c,b,a,a,d,d,a]
出力:[a,b,c,d,e],[a,b,d],[a,d]
10デフォルトの名無しさん
2021/06/22(火) 14:29:49.78ID:q0OZcNy5
「すいませーん パンください」
「なんだとー!パンクはダサくねえ!」
11デフォルトの名無しさん
2021/06/22(火) 18:35:38.31ID:3KNNvFBI
>>9
Ruby
s = "b,d,e,c,b,a,a,d,d,a".split(",")
t = s.group_by{_1}.values.map{(_1 + [nil] * s.size).take(s.size)}.transpose.map{_1.compact}.reject{_1 == []}
p t

[["b", "d", "e", "c", "a"], ["b", "d", "a"], ["d", "a"]]
12デフォルトの名無しさん
2021/06/22(火) 18:38:56.74ID:3KNNvFBI
FBIだ
13デフォルトの名無しさん
2021/06/22(火) 19:37:22.20ID:KgqIpy+v
>>9 Ruby
s = '[b,d,e,c,b,a,a,d,d,a]'
a = s.gsub(/[\[\]]/,'').split(',').sort
ans = []
while (u = a.uniq).empty?.!
ans << u
u.each{|x| a.delete_at( a.index(x) ) }
end
puts "[" + ans.map{|x| x * ','} * '],[' + "]" #=> [a,b,c,d,e],[a,b,d],[a,d]
14デフォルトの名無しさん
2021/06/23(水) 00:49:21.38ID:1nP79viV
>>9

haskell

iimport Data.List

splitSet = transpose . group . sort

main = print $ splitSet $ "bdecbaadda"
----
["abcde","abd","ad"]
15デフォルトの名無しさん
2021/06/23(水) 01:16:40.91ID:P132dmNh
>>9
python

li = ["b","d","e","c","b","a","a","d","d","a"]
t = 0
while len(li) != 0:
__s = list(set(li))
__print(s)
__for x in s: li.remove(x)


前から順番に重複がないように分割した
li = ["b","d","e","c","b","a","a","d","d","a"]
t = 0
for i in range(len(li)):
__if t>i: continue
__ for j, x in enumerate(li[i:]):
____if j==0: continue
____if x in li[i:i+j]:
______print(x,li[i:i+j])
______t = i+j
______break
else: print(li[t:])
16デフォルトの名無しさん
2021/06/23(水) 03:03:47.96ID:yaBz/mVt
何分割するか指定がないんだからこれで十分だよね
s = "b,d,e,c,b,a,a,d,d,a".split(",")
puts s.map{|e| "[#{e}]" }.join(",")

出力: [b],[d],[e],[c],[b],[a],[a],[d],[d],[a]
17デフォルトの名無しさん
2021/06/23(水) 19:57:35.36ID:PDI/0UM/
>>9
Java
https://paiza.io/projects/-Ezb89g9jDEZXPSybCsgXQ
18デフォルトの名無しさん
2021/06/23(水) 19:59:10.71ID:VBbwJDrL
指定は無いがそうすると自明になりつまんなくなる、
つまり問題としてwell-definedじゃなくなるから、Ruby使ってる人は空気と行間を読む訓練をした方がいい
19デフォルトの名無しさん
2021/06/23(水) 20:41:17.73ID:N3JUxele
皮肉を理解できないのは統合失調症の症状だそうで
20デフォルトの名無しさん
2021/06/23(水) 23:35:40.56ID:gV4gb+yX
お題
正整数2つを入力として、それらの商を互いに異なる正整数の逆数の和で表せ
ただし、分母となる正整数の最大のものが極力小さくなるようにせよ


入力 37, 60
出力 37/60 = 1/4 + 1/5 + 1/6

入力 3,1
出力 3/1 = 1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/8 + 1/9 + 1/10 + 1/15 + 1/18 + 1/20 + 1/24
21デフォルトの名無しさん
2021/06/24(木) 12:40:28.82ID:QkkrxV02
お題
月最後の金曜日をプレミアムフライデーといいますが
指定した年のプレミアムフライデー一覧を出力してください

入力: 2021
出力:
2021-01-29
2021-02-26
2021-03-26
2021-04-30
2021-05-28
2021-06-25
2021-07-30
2021-08-27
2021-09-24
2021-10-29
2021-11-26
2021-12-31
22デフォルトの名無しさん
2021/06/24(木) 13:22:13.95ID:mpRYRE1b
>>20
極小ってのはかんたんに分かるモンなの?
23デフォルトの名無しさん
2021/06/24(木) 13:33:05.04ID:x/nvCroK
「極力小さく」だから
プログラマの能力でできる限り、
じゃないの?
24デフォルトの名無しさん
2021/06/24(木) 14:07:33.05ID:mpRYRE1b
要するにこれエジプト分数だろ
極小かどうかが面倒くさい話だった

エジプト式分数 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B8%E3%83%97%E3%83%88%E5%BC%8F%E5%88%86%E6%95%B0
25デフォルトの名無しさん
2021/06/24(木) 19:38:29.60ID:XMpTcDaC
>>21 Ruby
require 'date'
y = 2021
12.times{|m|
d = Date.new( y, m+1 ).next_month().prev_day()
puts d.prev_day( (d.wday-5) % 7 ).strftime( '%F' )
}
26デフォルトの名無しさん
2021/06/24(木) 19:39:02.06ID:XMpTcDaC
>>21 Ruby
y = 2021
w = Time.new( y ).wday
tbl = ( (y & 3) == 0 && (y % 100) != 0 || (y % 400) == 0 )?
[ [25,23,25,24,25,24,25,25,24,25,24,25], [2,1,5,3,0,5,2,6,4,1,6,3] ] :
[ [25,22,25,24,25,24,25,25,24,25,24,25], [2,2,6,4,1,6,3,0,5,2,0,4] ]
12.times{|m|
puts "%04d-%02d-%02d" % [ y, m+1, tbl[0][m] + ((tbl[1][m]-w) % 7) ]
}
27デフォルトの名無しさん
2021/06/24(木) 22:03:03.66ID:HCLTIuII
>>21
Kotlin
https://paiza.io/projects/mOAfjYjLJx67zhwlGiIuJw

次の月の1日の曜日を求めてそこから何日引くかを計算して引いているだけ。
java.time.LocalDate クラス使っているので Java でも似たようなプログラムは作れると思う。
28デフォルトの名無しさん
2021/06/25(金) 05:25:13.97ID:RM7Ajj8i
>>5-6
# (コマンド),"文字列",(コマンド2) | パイプラインで渡されたコマンド実行結果や文字列を連結して1行の文字列にするJoin-String |
# 連結して1行にした文字列で変数初期化(Tee-Object -Variable 変数) | memo.txtに追記(Tee-Object -Append)
(Get-Date).ToString("yyyy/MM/dd/第"),
[Math]::Floor( ( (Get-Date).Day + 6 ) / 7 ).ToString(),
(Get-Date).ToString("dddd/HH:mm/"),
" #tag#", ( Read-Host "キーワードを入力" ), " ",
( Get-Clipboard ) | Join-String | Tee-Object -Variable kopipe |
Tee-Object -FilePath "$HOME/Documents/memo.txt" -Append
# memo.txtをバックアップ
Copy-Item -Path "$HOME/Documents/memo.txt" -Destination "$HOME/Documents/bak/memo_bak.txt"
# $kopipe = 2021/06/25/第4金曜日/ ###タグ
# 今日が"第4金曜日"なら何かをする
if ( $( Write-Output $kopipe | Select-String -Pattern "第4金曜日" ) ) {
Write-Host "PowerShell"
} else {
Write-Host "Shell Script"
}
# Visual Studio Codeでファイルを開く
code "$HOME/Documents/memo.txt"
29デフォルトの名無しさん
2021/06/25(金) 05:30:47.47ID:RM7Ajj8i
using InteractiveUtils, Dates
# 1 clipboardの文字列に含まれる改行文字を半角スペースに変換
clipb = replace( clipboard(), "\n" => " " )
# 2 曜日名や月名を日本語で取得するための設定
# docs.julialang.org/en/v1/stdlib/Dates/#Query-Functions
japanese_months = [""] ; japanese_monts_abbrev = [""]
japanese_days = ["月曜日","火曜日","水曜日","木曜日","金曜日","土曜日","日曜日"]
Dates.LOCALES["nihongo"] = Dates.DateLocale(japanese_months, japanese_monts_abbrev, japanese_days, [""])
# 実行結果例:2021/06/25/第
year_month_day = Dates.format( now(), "yyyy/mm/dd/第" )
# floor( 3.9 )の実行結果は3.0でfloor( Int, 3.9 )の実行結果は3
第num = floor( Int, ( Dates.day( now() ) + 6 ) / 7 )
# 実行結果例:金/04:21/ 、locale="上で設定した名前"は曜日名を英語以外の言語で取得するためのオプション
youbi_time = Dates.format( now(), "E/HH:MM/" ; locale="nihongo" )
# 3.grepで一覧表示するときに使うハッシュタグを入力。grep ###5ch, grep ###日記, grep ###英語, grep ###エラー, grep /第2金曜日/")
print("タグを入力:") ; hashtag = readline()
from_year_to_hashtag = year_month_day * string(第num) * youbi_time * " ###" * hashtag
# Juliaで文字列連結は+ではなく*
# docs.julialang.org/en/v1/manual/faq/#Why-does-Julia-use-*-for-string-concatenation?-Why-not-or-something-else?
copipe = from_year_to_hashtag * " " * clipb * "\n"
# docs.julialang.org/en/v1/base/file/#Base.Filesystem.homedir
# docs.julialang.org/en/v1/base/io-network/#Base.open
# "a"はwrite(書き込み), create(作成), append(追記)
io = open( homedir() * "/Documents/memo.txt", "a" )
write( io, copipe )
close(io)
30デフォルトの名無しさん
2021/06/25(金) 05:33:54.12ID:RM7Ajj8i
# 4. 今日が第4金曜日なら指定の画像ファイルを表示。ゴミの日とかを登録しておくと便利。
# docs.julialang.org/en/v1/manual/control-flow/
if contains( from_year_to_hashtag, "第4金曜日" )
imagefile = homedir() * "/Pictures/image.jpg"
# docs.julialang.org/en/v1/manual/running-external-programs/
# xdg-openの部分はmspaintとかでもOK
run(`xdg-open $imagefile`)
else
println("5ch on")
end

# docs.julialang.org/en/v1/stdlib/REPL/#The-Julia-REPL
# 関数の説明と使用例は次のようにすれば見れるよ。
# julia>using Dates
# julia>?  <- Enterキーは押さなくて良い
# help?>dまで入力した後にTabキーを2回押す
# help?>からjulia>に戻すにはBackSpaceキーを押す
# その他の使い方
# julia>usingの後に半角スペースを入力した後にTabキーを2回押してモジュール一覧表示
# julia>aを入力後にTabキーを2回押す
# julia>absの後に半角スペースを入力した後にTabキーを2回押して関数を一覧表示
31デフォルトの名無しさん
2021/06/25(金) 05:50:35.99ID:RM7Ajj8i
IJulia
github.com/JuliaLang/IJulia.jl
julia> ]
(@v1.6) pkg>add IJulia
BackSpaceキーを押す

replからjupyter Labを起動
julia> using IJulia ; jupyterlab(dir="/home/xxxx/Documents/jupyterlab")
Ctrl-D
ターミナルから起動
$ jupyter lab --notebook-dir="$HOME/Documents/jupyterlab" --browser="/usr/bin/google-chrome"

Visual Studio Code拡張機能Code Runner
ファイル>ユーザー設定>設定を開き、画面右上にある三角アイコン右横の「設定(JSON)を開く」をクリック

"code-runner.executorMap": {
// Julia実行ファイルのフルパス
"julia": "$HOME/julia-1.6.1/bin/julia",
},
//コード実行結果をターミナルに表示する
"code-runner.runInTerminal": true,
3227
2021/06/25(金) 15:31:39.30ID:F/zdAmk3
>>21
C
https://paiza.io/projects/P3IhYWEdF85M3_-V0EGgAA

>>27のKotlinのやつと考え方は同じ。
33デフォルトの名無しさん
2021/06/25(金) 21:10:31.51ID:kVdfg08P
ともかく最小とか入れてしまうと途端に難しくなる
できればいいんだよ
34デフォルトの名無しさん
2021/06/26(土) 00:46:33.35ID:6gOgcdGN
>>21

haskell

import Data.Time.Calendar

premiumFridays y = let
baseDay = ( fromGregorian 2021 6 13 )
lastFriday y m = let
d = gregorianMonthLength y m
difflst = flip diffDays baseDay
$ fromGregorian y m d
lastDay = fromGregorian y m d
in addDays ( - ( mod ( difflst + 2 ) 7 ) ) lastDay
in [ lastFriday y m | m<- [ 1.. 12 ] ]

main = mapM_ print $ premiumFridays 2021
---
2021-01-29
2021-02-26
2021-03-26
2021-04-30
2021-05-28
2021-06-25
2021-07-30
2021-08-27
2021-09-24
2021-10-29
2021-11-26
2021-12-31
35デフォルトの名無しさん
2021/06/26(土) 05:00:02.78ID:m56tn/Vu
Rubyの公式リファレンスは docs.ruby-lang.org
36デフォルトの名無しさん
2021/06/30(水) 18:30:07.65ID:fCthiOXz
お題: 年、月、週の初めの曜日を表す値(0=日曜日, 1=月曜日)を入力するとその月のカレンダーを出力する。



入力: 2021 6 0
出力:
日 月 火 水 木 金 土
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

上の例はスペースの幅の都合で表示が崩れているかも知れないが、等幅(漢字は2倍)と考えて作って良い。
(なんだったら出力を画像にしても良い)
37デフォルトの名無しさん
2021/06/30(水) 23:36:42.12ID:0jpC4Abq
今年は休日変則だな
38デフォルトの名無しさん
2021/07/01(木) 03:39:10.59ID:fmzZ+/Bo
>>36
Kotlin
https://paiza.io/projects/GUCK2jPXyzPYyD_dmW-oXw
39デフォルトの名無しさん
2021/07/01(木) 08:32:02.86ID:rhoqKmqn
>>36 Ruby
str = '2021 7 0'
y, m ,s = str.scan(/\d+/).map(&:to_i)
a = '日月火水木金土'.chars.rotate(s)
a << [" "] * ((Time.new( y, m, 1 ).wday - s) % 7)
1.upto(31){|d|
break if Time.new( y, m, d ).month != m
a << '%2d' % d
}
a.flatten.each_slice(7){|w| puts w.join(' ') }
40デフォルトの名無しさん
2021/07/01(木) 15:44:48.02ID:fmzZ+/Bo
>>36
Kotlin

paiza.ioでHTML出力にして画像表示

https://paiza.io/projects/n6KxMYs4zN2MgBn2UiSAwQ
41デフォルトの名無しさん
2021/07/01(木) 15:53:06.10ID:x5n7ySmh
>>40
しゅごい
4239
2021/07/01(木) 19:49:58.87ID:rhoqKmqn
>>36 Ruby
str = '2021 7 0'
y, m, s = str.scan( /\d+/ ).map( &:to_i )
( '日月火水木金土'.chars.rotate(s) + [' '] * (( Time.new( y, m, 1 ).wday - s ) % 7) + (1 .. [31, 30, 29, 28].find{|d| Time.new( y, m, d ).month == m }).to_a.map{|d| '%2d' % d } ).flatten.each_slice(7){|w| puts w * ' ' }
43◆QZaw55cn4c
2021/07/01(木) 20:48:40.02ID:Es0JxggH
>>36
>週の初めの曜日を表す値(0=日曜日, 1=月曜日)を入力する

その条件、いるのですか?
44デフォルトの名無しさん
2021/07/01(木) 21:15:18.27ID:FSqo0WtF
>>43
お前の存在、いるのですか?
45◆QZaw55cn4c
2021/07/01(木) 21:44:00.07ID:Es0JxggH
>>44
なぜ要らないとおもったのですか?
46デフォルトの名無しさん
2021/07/01(木) 22:06:31.90ID:FSqo0WtF
>>45
誰も要らないとは言っていないのに要らないと言っているように感じられるのは
お前がお前自身のことを要らないと思っているからなのだろうな
47デフォルトの名無しさん
2021/07/02(金) 10:06:20.83ID:6rZLVHEq
>>44
要る。
48デフォルトの名無しさん
2021/07/02(金) 10:38:45.74ID:xu7tv1xS
>>43
キチ外だな

>>46
言い訳すんなアスペ
普通の人間は文脈読むだろ
49デフォルトの名無しさん
2021/07/02(金) 13:39:10.26ID:E59Amcuv
本気で知らないんだろう
月曜始まりのカレンダーを見たことないご存じないとかじゃね?
50デフォルトの名無しさん
2021/07/02(金) 16:10:17.73ID:lOCqtdeG
https://www.543life.com/campus114.html
51デフォルトの名無しさん
2021/07/02(金) 22:18:49.57ID:IHzKftMK
>>36
haskell

https://ideone.com/tiC2hC
52デフォルトの名無しさん
2021/07/02(金) 22:25:49.60ID:6PmzgaZp
>>48
お前が一番日本語理解できてなくて草
53デフォルトの名無しさん
2021/07/02(金) 22:59:04.30ID:bqpqPyM3
>>49
むしろ全てのカレンダーを月曜始まりにして欲しいぐらい
54デフォルトの名無しさん
2021/07/03(土) 02:44:37.57ID:+PW8v28+
月月火水木金金
55デフォルトの名無しさん
2021/07/03(土) 12:07:58.36ID:gq7PWL9B
オプションの話なんてどうでもいいけど
1日を左上始まりの方が合理的だと思う
56デフォルトの名無しさん
2021/07/03(土) 18:17:25.88ID:IfvioC2j
どうかな

多くの場合
月の開始日を固定するより
曜日を固定した方が有用だ


月によって
57デフォルトの名無しさん
2021/07/03(土) 18:34:34.91ID:8vTMQXC9
曜日固定の暦も提案されたけど採用されることはなかったんだよね
58デフォルトの名無しさん
2021/07/03(土) 19:07:03.68ID:uSbSUvL9
まあ大抵の人は基本的に曜日で休みが決まってたりするしな
59デフォルトの名無しさん
2021/07/03(土) 19:13:38.83ID:DPpwWmVc
28日×13月、最終月で調整、がシンプルで良かったのにな
年初の時期も夏至とか分かりやすい日にすれば良かったのに
60デフォルトの名無しさん
2021/07/03(土) 21:26:36.17ID:IfvioC2j
暦は農業をするうえで細かく日を読む必要から作られ発展してきた
農閑期には日付が定められなかったことも
ヨーロッパの言語で前半は神の名が付けられ、後ろの方がテキトーなことからもその時代における重要度が推し量れる
61デフォルトの名無しさん
2021/07/03(土) 21:35:30.23ID:TQwtnc11
そもそも古代ローマの暦では11-12月は名前がなかった
62デフォルトの名無しさん
2021/07/04(日) 00:40:14.83ID:FJOBYcj7
エチオピアではエチオピア歴が今も使われており13月があったりする。
https://www.hope.or.jp/2019/09/13/ethiopian-calendar
6339
2021/07/04(日) 08:11:39.86ID:iOGAyFs7
>>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 * ' ' }
6439
2021/07/05(月) 00:26:38.86ID:e4Vm80Jj
>>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 * ' ' }
6539
2021/07/05(月) 01:08:34.16ID:e4Vm80Jj
>>64 もバグ有り
> sw = m1.wday - s % 7
sw = (m1.wday - s) % 7
66デフォルトの名無しさん
2021/07/05(月) 17:31:47.07ID:7Yd2cijs
>>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秒。
67デフォルトの名無しさん
2021/07/06(火) 12:39:02.75ID:gfjghTPI
数学板から
お題
Σ[n:2〜∞]cos(n)/log(n)を小数第10まで求めよ

元々収束するか?で収束するなら10桁計算せよってついてたけど今のところ10桁計算してみせた人おらず
もちろん収束遅すぎて少し工夫しないと10桁出すのは難しいかなと
68デフォルトの名無しさん
2021/07/06(火) 18:27:19.16ID:ifvAZrxB
>>67
わからない。
69デフォルトの名無しさん
2021/07/07(水) 06:44:52.69ID:GHc1zSP4
>>67
チェザロ平均考えるとかかな
1万項の平均雑に計算したら-1.34までは収束してる感じ
https://ja.wikipedia.org/wiki/チェザロ平均
70デフォルトの名無しさん
2021/07/07(水) 07:00:20.59ID:GHc1zSP4
>>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桁辺りまでは収束してそう
71デフォルトの名無しさん
2021/07/07(水) 07:19:49.97ID:GHc1zSP4
8桁って小数第七位ね
72デフォルトの名無しさん
2021/07/07(水) 19:16:52.25ID:5d+e1myw
この文献
https://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1084-4.pdf
をもとに 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
73デフォルトの名無しさん
2021/07/07(水) 20:36:04.14ID:MZbePiNM
>>67 収束する。

B_k := Σ[n : 2..k] cos(n)
|B_k| = |cos((k + 1) / 2) sin(k / 2) / sin(1 / 2) - (1 + cos(1))|
 (see https://math.stackexchange.com/questions/225941/proving-sum-limits-k-0n-coskx-frac12-frac-sin-frac2n12x)
 <= 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) よりアーベルの級数判定法の条件を満たすので所与の級数は収束する。
74デフォルトの名無しさん
2021/07/07(水) 21:23:56.34ID:GHc1zSP4
>>72
すごい
あんまり読めてないけど交代級数じゃなくても使えるの?
75デフォルトの名無しさん
2021/07/07(水) 21:39:28.53ID:5d+e1myw
>>74
6節でFFTの計算とともに使ってるのでフーリエ級数全般に使えるはず
76デフォルトの名無しさん
2021/07/07(水) 22:23:37.48ID:7LucU1Ml
>>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')}/"
);
}
77デフォルトの名無しさん
2021/07/07(水) 22:51:04.45ID:GHc1zSP4
>>75
やっぱり交代級数限定の話っぽいけど何で今回上手く行ってるのか良く分からない
78デフォルトの名無しさん
2021/07/21(水) 03:52:07.59ID:s4XLTZzk
お題
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]
79デフォルトの名無しさん
2021/07/21(水) 04:00:54.83ID:s4XLTZzk
訂正
-2 → [2,-2,1,1,0]
-1 → [0,-1,0,0,0]
80デフォルトの名無しさん
2021/07/21(水) 05:27:57.77ID:qAe+ZLCy
-1と-2は自然数じゃない
81デフォルトの名無しさん
2021/07/21(水) 13:17:19.10ID:s4XLTZzk
>>80
ですな
-1,-2は抜いて
じゃ追加で
3→[1,1,1,0,0]
10→[1,2,1,0,0]
1000→[1,-3,1,4,1]
などなど
82デフォルトの名無しさん
2021/07/21(水) 16:30:29.39ID:s75CxDCd
>>81

n<=10^6 を力業で、先頭と最後の101件のみ表示

https://ideone.com/LjkJHe
83デフォルトの名無しさん
2021/07/21(水) 20:59:05.44ID:qAe+ZLCy
寧ろ定義域を整数全体にすれば?
84デフォルトの名無しさん
2021/07/21(水) 22:08:26.55ID:DfqCC9n+
>>83
元々整数のつもりだったのが筆が滑りましたw
お好きな方でという事で
自然数に限定して楽になる事もないと思うけど
85デフォルトの名無しさん
2021/07/22(木) 03:13:11.19ID:o3SPPMDQ
>>78
Kotlin
https://paiza.io/projects/ZteBpLjf11ybdKK6tORg5Q

無念無想で何も考えずにただ作った。
86デフォルトの名無しさん
2021/07/22(木) 13:52:09.29ID:mzts8Rpt
元の問題

面白い問題おしえて~な 37問目
http://2chb.net/r/math/1624644393/543

元の問題は7乗まで使って桶だったけど6乗までの解答が出た

http://2chb.net/r/math/1624644393/588

あくまでプログラムの話、数学の部分はどうでもいいという方は参考にして下さい
この方法はn-t^5-76843が6630の倍数になるような整数tが取れる事を使います(t:0〜6629の中で探す)
87デフォルトの名無しさん
2021/07/22(木) 20:25:25.04ID:giJnvKaJ
>>86
5次以下にはできない証明は?
88デフォルトの名無しさん
2021/07/22(木) 20:30:40.90ID:eIP4GB5u
>>87
それはまだ数学板では5以下でも可能も5以外では不可能もどっちも証明されてません
89デフォルトの名無しさん
2021/07/24(土) 11:44:46.01ID:uYrXTofe
お題: 端末上に地球を模した円の描画を行い、入力された緯度、経度のおおよその地点に印を付けろ
ただし描画される円の中心は常に日本の東京とし、東京が見えるようにすること
描画される円の大きさは自由とする
入力された座標が東京の裏側の半球上にあって印を描画できない場合は、印を描画しないか、あるいは円(地球)を透過させて印を描画する

地球の半径=6,371 km
東京の経度=139°41′30″
東京の緯度=35°41′22″

*出題者は自分で実装してません
90デフォルトの名無しさん
2021/07/24(土) 11:48:58.50ID:2jz91/WX
>>89
画面の上を地球上のどの方位にするとか、平行投影なのか透視投影なのか画角どうするかとか決めないといけないんでないの?
91デフォルトの名無しさん
2021/07/24(土) 11:53:24.04ID:uYrXTofe
>>89
>>90
画面の上端を北とします
投影方法と画角はよくわからないので自由とします^^;
92デフォルトの名無しさん
2021/07/24(土) 12:18:19.24ID:/U+1YhTs
地球は球体じゃないから無理じゃない?
93デフォルトの名無しさん
2021/07/25(日) 16:25:19.73ID:YgX/LOmt
地形データってどっかから取って来れるの?そこも自作しろと?それとも地形描画なしのツルツルの地球で良い?
94デフォルトの名無しさん
2021/07/26(月) 04:06:01.70ID:uFE88Z/4
いいよ
95デフォルトの名無しさん
2021/07/27(火) 08:42:26.61ID:3vSla0fp
>>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') + '/'
)
9696
2021/07/28(水) 13:12:24.23ID:D9Z9/eJz
>>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 = は時間がかかりすぎて解けない
97デフォルトの名無しさん
2021/08/08(日) 11:08:25.71ID:KegFD0tb
平面上に円をおくと、円周上に整数点ができることがあるが
それがちょうど47個の円の最小半径は?
ここで前にもあったとおもったが、答わからん
98デフォルトの名無しさん
2021/08/10(火) 04:18:36.48ID:RT5RB9Hc
解き方がわからん。
99蟻人間 ◆T6xkBnTXz7B0
2021/08/11(水) 00:16:58.90ID:yQA623uX
お題: (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はバイナリとみなしてもよい。
100デフォルトの名無しさん
2021/08/11(水) 19:57:42.99ID:lGVA2SmZ
宿題は自分でやれ
101デフォルトの名無しさん
2021/08/11(水) 23:48:46.02ID:BaITumyQ
ザリガニが見ていた...。 QuickDrawはどのように素早く円を描いていたのか?
https://zariganitosh.hatenablog.jp/entry/20100318/1269006632
102デフォルトの名無しさん
2021/08/12(木) 04:41:39.82ID:zN4hKecF
昔々グラフィックス画面に直線を描くアルゴリズム調べた時は感動したな。あれは40年ぐらい前か。月日の経つのは早いものぢゃ。
103デフォルトの名無しさん
2021/08/12(木) 09:29:17.38ID:GeyAERvY
お題
文字列を入力として受け取って
入力された文字列と、入力された文字列を逆順にした文字列を
1文字ずつ交互に結合した文字列を出力してください

入力: abcde
出力: aebdccdbea
104デフォルトの名無しさん
2021/08/12(木) 10:08:21.06ID:Lpug+0Go
>>103 Ruby

'abcde'.size.times{$><<s[_1]<<s[~_1]} # => aebdccdbea
105デフォルトの名無しさん
2021/08/13(金) 03:01:45.42ID:pLlXEN4h
>>103
Haskell

import Data.List
acbbca x = concat $ transpose [ x , reverse x ]
main = do
putStrLn $ acbbca "Hello World"
putStrLn $ acbbca "たけやぶやけた"

----
HdellrlooW WoolrlledH
たたけけややぶぶややけけたた
106デフォルトの名無しさん
2021/08/13(金) 03:35:13.90ID:hXjFUBNl
なんかこういうのはhaskellのlensが得意そうな気がするな
この前Intのリストの奇数だけソートするのを
sortArray xs = xs & partsOf (each . filtered odd) %~ sort
だけで済ましてるのを見た
107デフォルトの名無しさん
2021/08/13(金) 11:47:55.66ID:Zwr8vbQY
>>103 octave
https://ideone.com/vpOPSb
f = @(s) [s; flip(s)](:)';
f('abcde')
10896
2021/08/13(金) 12:16:45.65ID:Tqy/ucLn
>>103 Perl5

@b = reverse @a = split'', 'abcde';
use List::MoreUtils 'zip';
print zip @a, @b;

実行結果
~ $ perl 20_103.pl
aebdccdbea
109デフォルトの名無しさん
2021/08/13(金) 18:31:56.72ID:C2vgWz0X
>>103
Kotlin
https://paiza.io/projects/E21KbVl4H2KbA1kjxYhNug
110デフォルトの名無しさん
2021/08/13(金) 18:54:31.59ID:C2vgWz0X
>>103
C
https://paiza.io/projects/VF7q0iIqRNj-K-9wfd-OYg

>>109と出力が同じになるようにした。
それと、折角なので wchar で作った。
111デフォルトの名無しさん
2021/08/13(金) 20:49:58.92ID:++s/0C9b
>>103 J
f =: ,@(,. |.)

___ f 'abcde'
aebdccdbea
112sage
2021/08/13(金) 23:42:35.13ID:WxHHmkEE
>>104
Rbuy 3.0.2 だと s が未定だと怒られる
113デフォルトの名無しさん
2021/08/14(土) 12:38:10.02ID:LgiNTbaj
>>36 octave
https://ideone.com/YRTUpL
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
114デフォルトの名無しさん
2021/08/17(火) 02:41:19.70ID:5M+zf85m
お題: 菅話法作成


Kotlin
https://paiza.io/projects/ezYPpZR8VOLY5r3jCOS5qw
115デフォルトの名無しさん
2021/08/17(火) 19:49:43.89ID:skFpZz34
>>114 Ruby

$><<%W[「中止の考えはない。強い警戒感を持って に臨む」\n「バブル方式で する。感染拡大の恐れはないと認識している」]*gets.chop
11696
2021/08/17(火) 22:38:15.40ID:BrZ+lWok
>>114 Perl5

$it="うっふ~ん";
print<<EOF;
「中止の考えはない。強い警戒感を持って${it}に臨む」
「バブル方式で${it}する。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証として${it}する」
「${it}を中止することは一番簡単なこと、楽なことだ。${it}に挑戦するのが国民の役割だ」
「安心安全な${it}に向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
EOF

実行結果
$ perl 20_114_菅話法.pl
「中止の考えはない。強い警戒感を持ってうっふ~んに臨む」
「バブル方式でうっふ~んする。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証としてうっふ~んする」
「うっふ~んを中止することは一番簡単なこと、楽なことだ。うっふ~んに挑戦するのが国民の役割だ」
「安心安全なうっふ~んに向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
117デフォルトの名無しさん
2021/09/03(金) 01:55:54.93ID:d87lg/Z2
半月ぐらいお題が出ないので一つ。

お題: テトロミノ

こんなパズルを解く。
https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AD%E3%83%9F%E3%83%8E

大きさもピースも任意だが、上記ページにあるやつそのままで良い。(2つあるがどちらか一つで良い)
沢山パターンがあるかも知れないが、最初に見つかった一つを出すだけでも良い。
出力はテキストでも何でも人間が見て分かるようになってれば良い。

この問題については既にあちこちで答えが出ているような枯れた問題だと思うので、なるべく何も見ずに自分で考えて作ること。
118蟻人間 ◆T6xkBnTXz7B0
2021/09/03(金) 20:43:43.19ID:9DjO+PTi
お題:15パズルを解くプログラム。

15パズルの盤を16要素の配列で表現し、実際に解く様子を出力せよ。空白は整数のゼロで表現する。
解けないときは「No answer」を出力せよ。可能ならば画像データも出力せよ。

参考資料:
http://www.studio-boiler.com/k/kouryaku/kou.htm
119デフォルトの名無しさん
2021/09/04(土) 00:30:45.45ID:ExeocnPJ
猿真似しか出来んのか
120デフォルトの名無しさん
2021/09/04(土) 02:42:13.50ID:7+Hy81Ja
全然お題が出なかったからこれで良い
121デフォルトの名無しさん
2021/09/04(土) 15:54:45.82ID:Q1ZjOy0h
最短でも80手らしい
それくらいだと全部表示してもそこまでうるさくないんだけど簡単な探索法だと2,300超えてしまいそう
全部表示したらうるさい事この上ないんだよな
122デフォルトの名無しさん
2021/09/04(土) 16:28:17.76ID:HA1H8jBr
お題:パンくずリストを出力せよ

入力
東京,特許,許可局

出力
<ul class="pankuzu">
<li class="pankuzu_item">東京</li>
<li class="pankuzu_item">特許</li>
<li class="pankuzu_item active">許可局</li>
</ul>
123デフォルトの名無しさん
2021/09/06(月) 02:26:18.29ID:gafTCMAF
>>122
Perl5
https://paiza.io/projects/M15LdOIXcwfYWvx_hcHX1Q

よく分からんがこんなのでいいの?
124デフォルトの名無しさん
2021/09/06(月) 09:51:36.66ID:AS0MIjWb
XSSに気をつけましょう
125デフォルトの名無しさん
2021/09/06(月) 10:28:52.31ID:c9RFzrWf
>>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>
);
126デフォルトの名無しさん
2021/09/06(月) 11:28:19.10ID:DJ6jxapu
>>122 Python
https://ideone.com/j2xt8M
12796
2021/09/06(月) 12:09:28.54ID:GTV7C5SZ
>>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>
12896
2021/09/06(月) 13:04:59.11ID:moEus4wD
>>127

use HTML::TreeBuilder;

だと色々引き連れて来るので、使う

use HTML::Element;

をuseすれば良かったんだけど、結果は同じだしまいいや…
129デフォルトの名無しさん
2021/09/06(月) 13:13:49.70ID:uTG0VSHW
>>117
Ruby
https://ideone.com/X55o9J

久しぶりにやってみた
130デフォルトの名無しさん
2021/09/06(月) 19:38:11.84ID:n/A9WgFn
>>122 ocaml
https://ideone.com/lTmi19
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 ["東京"; "特許"; "許可局"]
131デフォルトの名無しさん
2021/09/07(火) 09:55:32.26ID:WSMGeNyo
>>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
132デフォルトの名無しさん
2021/09/07(火) 12:33:03.11ID:Q6Cbfir4
お題
次のように置換した文字列が入力される

ESC → ESCESC
CR → ESCcr
LF → ESClf

元の文字列を復元してください

続く・・・
133デフォルトの名無しさん
2021/09/07(火) 12:33:27.25ID:Q6Cbfir4
>>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
134デフォルトの名無しさん
2021/09/07(火) 13:04:58.96ID:YXnsp+WP
>>132 Ruby
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/, { 'ESCESC' => 'ESC', 'ESCcr' => 'CR', 'ESClf' => 'LF' } )
135134
2021/09/07(火) 13:14:10.80ID:YXnsp+WP
>>132 Ruby
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/ ){ _1[3..].upcase }
136デフォルトの名無しさん
2021/09/07(火) 22:44:48.30ID:Q6Cbfir4
>>122
Java
https://paiza.io/projects/LwpPH0iy3-lQmIZXNsvQRw
137デフォルトの名無しさん
2021/09/08(水) 01:03:27.49ID:gNm9L8yp
>>132
Perl5
https://paiza.io/projects/GuPz8h93U0uhn9iC8P8JsA
138デフォルトの名無しさん
2021/09/08(水) 01:19:37.74ID:gNm9L8yp
>>132
Kotlin
https://paiza.io/projects/N-kbMV4czxJeOPJ-kLTCqg
139デフォルトの名無しさん
2021/09/08(水) 01:55:31.54ID:gNm9L8yp
>>132
C
https://paiza.io/projects/Ov2KFf6JS8-60MTTy6rNng
14096
2021/09/10(金) 22:13:37.39ID:UuNKa3lP
>>132 Perl5

s/ESC(ESC|cr|lf)/\U$1/g;


実行結果
https://ideone.com/2dajdn
141デフォルトの名無しさん
2021/09/10(金) 22:32:25.84ID:VHKKBZ5d
そんなやり方があったとは知らなかった
142蟻人間 ◆T6xkBnTXz7B0
2021/09/10(金) 23:29:13.91ID:aesnFr7F
お題: 円柱の高さ(5~15cm)と半径(5~10cm)を指定すると、その円柱の展開図のSVGデータを出力するプログラム。

展開図には一部、0.5~1cmほどのりしろがあり、印刷・糊付けして実際に組み立てることができるものとする。SVGの用紙はA4サイズ。
143デフォルトの名無しさん
2021/09/11(土) 00:32:47.77ID:7ac2XrM2
>>142
糊代を折ることを考えたら円柱じゃなくて(円に近い)多角柱になると思うけど、それでいいの?
144蟻人間 ◆T6xkBnTXz7B0
2021/09/11(土) 10:37:25.30ID:DCkTc1oQ
>>143
いいよ。
145デフォルトの名無しさん
2021/09/12(日) 23:05:50.13ID:a0Jd4Hkz
>>132
Java
https://paiza.io/projects/H0RSztAvHumk7NcFZBWWnA

"ESCESC"を "ESC" 任意の文字 に変換して
逆の変換すればOK

下記のJSONの文字列のようなエスケープでも
同様のやりかたで復元できる、はず

\ → \\
\r → \\r
\n → \\n
146デフォルトの名無しさん
2021/09/12(日) 23:51:43.19ID:a0Jd4Hkz
訂正
\ → \\\\
\r → \\r
\n → \\n
147デフォルトの名無しさん
2021/09/12(日) 23:52:06.11ID:a0Jd4Hkz
訂正2
\\ → \\\\
\r → \\r
\n → \\n
148デフォルトの名無しさん
2021/09/13(月) 00:01:27.06ID:kzWLxl1N
お題 転調記号の数

問題
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)の最小値を求めよ

原題は数学板にあるけど長いし音楽知らないとわけわかめになるので略
知りたい人は以下より

http://2chb.net/r/math/1629715580/80
面白い問題おしえて~な 38問目

http://2chb.net/r/math/1629715580/190
面白い問題おしえて~な 38問目
149デフォルトの名無しさん
2021/09/13(月) 07:01:38.59ID:eHkY1yZB
x=[1,0,0,0,...]でf(x)は最小値0をとるけど、原題みるとf(x)の最大値を求めるのかな
150デフォルトの名無しさん
2021/09/13(月) 09:36:40.69ID:bTLuzAmV
対数とれば簡単
151デフォルトの名無しさん
2021/09/13(月) 10:04:21.34ID:kzWLxl1N
>>149
orz
その通り
最大値求めよ
です
152デフォルトの名無しさん
2021/09/13(月) 10:31:13.42ID:7dFFnUhL
黒鍵が1オクターブに5個しかないのに
調号が6個必要なのが納得出来ない
153デフォルトの名無しさん
2021/09/13(月) 10:31:55.37ID:7dFFnUhL
最大値は3かな?
154デフォルトの名無しさん
2021/09/13(月) 15:11:00.36ID:kzWLxl1N
>>152
嬰へ長調は♯6個とその異名同音調の変ト長調は♭6個でどうあがいても6個必要です
♭1個でキーは5/12上がり♯1個でキーは5/12下がりますがハ長調から見て嬰へ長調=変ト長調はどちらから回っていっても6個必要です

https://ja.m.wikipedia.org/wiki/%E5%AC%B0%E3%83%98%E9%95%B7%E8%AA%BF

>>153
もう少し大きいです
数学板で最初に出た3より大きい例は

http://2chb.net/r/math/1629715580/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です
ホントの最大値はもう少し大きくなります
155デフォルトの名無しさん
2021/09/13(月) 18:18:32.59ID:7dFFnUhL
円周率に近いな
156デフォルトの名無しさん
2021/09/13(月) 22:45:15.18ID:kzWLxl1N
答え有理数です
しかしプログラム板のお題なので近似値出れば良しでいいと思います
157デフォルトの名無しさん
2021/09/13(月) 22:51:14.71ID:7dFFnUhL
3.142857...
じゃなくて?
158デフォルトの名無しさん
2021/09/13(月) 23:14:04.32ID:kzWLxl1N
3.2は超えます
159デフォルトの名無しさん
2021/09/13(月) 23:14:24.72ID:7dFFnUhL
orz
160ハノン ◆QZaw55cn4c
2021/09/14(火) 17:29:19.22
>>148
元の出題
>変ニ長調(♭×5)→ホ長調(♯×4)→へ長調(♭×1)という曲の平均調号数は

そんな変てこな転調があり得るのか‥‥
161デフォルトの名無しさん
2021/09/14(火) 20:25:22.64ID:3yXL9VGN
そう思ったら作曲してみよう
162デフォルトの名無しさん
2021/09/14(火) 23:17:19.71ID:ugFzvtUj
サビで短3度転調、後半盛り上がって半音上げはポップス曲だとよくある
163デフォルトの名無しさん
2021/09/15(水) 02:21:25.59ID:3vtMVT28
>>148
そのお題はタイトルからして調べないと分からない単語が使われており、全体を通して何を言わんとしているのか分からない。
164デフォルトの名無しさん
2021/09/15(水) 06:01:22.11ID:uRkyJcx+
>>163
音楽知識は不要 (不要なように書き換えてる)
それ以外は簡単な数学用語 (高校レベル)
165ハノン ◆QZaw55cn4c
2021/09/15(水) 06:22:14.22
>>162
>サビで短3度転調、後半盛り上がって半音上げはポップス曲だとよくある
気がつきませんでした、なるほど

>後半盛り上がって半音上げ
最後に半音上がるアレ、主和音と同じ高さで導音系の和音を強奏するのが無理があると思っており好みじゃないのです‥‥

;t=275s
166デフォルトの名無しさん
2021/09/15(水) 06:28:49.75ID:uRkyJcx+
お前の好みとかどうで良くね?
167デフォルトの名無しさん
2021/09/15(水) 06:34:56.44ID:uRkyJcx+
https://soundquest.jp/quest/chord/chord-mv7/classic-basic-modulation/
168ハノン ◆QZaw55cn4c
2021/09/15(水) 06:45:27.54
>>152
白鍵に調号をつけるしかない場面があるのです、>>154 のいうとおり ♭ソを基本の音にした音階のときはそうなります‥‥
では 7 個が最大かというと、そうでもなくて、ダブルシャープ(シャープ2個分)、ダブルフラット(フラット2個分)を使って(一時的に)8個以上の楽譜に仕上げる人がいました‥‥
169デフォルトの名無しさん
2021/09/15(水) 08:25:52.14ID:m09hSrNp
>>165
私はあなたの存在が好みじゃないのです‥‥

170デフォルトの名無しさん
2021/09/15(水) 21:26:44.83ID:UGHCgEvY
ちなみにこの問題よくよく考えるとアルゴリズムの教科書によく出る超有名問題になってます
問題の名前だけは高校の数学の教科書にも載ってるくらい有名な問題です
171デフォルトの名無しさん
2021/09/15(水) 22:28:51.28ID:qUQwebCi
3.2222222222222ってなるのかな
3.222221で止まってるけど
172デフォルトの名無しさん
2021/09/15(水) 22:31:14.96ID:uRkyJcx+
最大=>3個とも平均が同じ=>3個の調しか使わない最大が存在する=>12C3全検索
173デフォルトの名無しさん
2021/09/15(水) 23:00:11.21ID:UGHCgEvY
>>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つやればいけます
(もちろん有理係数の線形方程式なので解は有理数)
その際線形代数の計算をやってくれるライブラリがあれはそんなに大変な作業にはならないはずです
というかこのタイプの問題“線形計画法”この問題解くためのライブラリ持ってるやつが多いのでその場合は数行で終わってしまいます
174デフォルトの名無しさん
2021/09/16(木) 00:34:05.02ID:g1b5b/gu
問題全く何も理解してない
力任せ
https://ideone.com/CuWX16
175デフォルトの名無しさん
2021/09/19(日) 19:11:20.33ID:zqOP2O5f
>>174
理詰めの解答よりこういう力技の解答の方がありがたいです
理詰めはどっかでうっかり間違ってる事も多いので

>>172さんの方針で220通り全数検索するコード組んでみました

https://ideone.com/Vyqp8r

元々用意してた解答は単体法( Simplex algorythm)というやつ使う方法だったんですけど、220個位なら全数検査した方が安全ですね
しかも全部調べるのでベスト10とか出せる
さっきのコードは原曲のままが最小になる場合のベスト10とどちらかに半音ずらした方が最小になる場合のベスト10です
176蟻人間 ◆T6xkBnTXz7B0
2021/09/23(木) 00:23:18.14ID:WyFAZLWz
お題: 中心(x, y)で半径mの円と、中心(z, w)で半径nの円の当たり判定。
177蟻人間 ◆T6xkBnTXz7B0
2021/09/23(木) 00:36:24.97ID:WyFAZLWz
お題: カオス理論で知られるローレンツ・アトラクタを描画せよ。
178蟻人間 ◆T6xkBnTXz7B0
2021/09/23(木) 00:45:13.27ID:WyFAZLWz
お題: 厚み0.5cm長さX cmのしなやかなテープを最小のうずまき状にまるめると直径は何cmになるか。X = 20, 30, 50.
179ハノン ◆QZaw55cn4c
2021/09/23(木) 12:30:22.12ID:HaJtCNmP
>>178
「しなやかな」の定義中、中心側の終端の扱いを精緻に定義しなおしてください
180デフォルトの名無しさん
2021/09/23(木) 12:40:13.64ID:fWOsjY2x
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();

});
181デフォルトの名無しさん
2021/09/23(木) 16:05:27.59ID:jg/8HMJJ
>>176
それって数学的な証明はよくわからないんだけど直感的に考えると、(x, y) から (z, w) の距離が m + n 以下なら当たりで良いのかな?
他のパターンで当たる場合はなさそうだけど、あったとしても今は思いつかないのでとりあえずプログラムはそれで作ろうかと思う。
182デフォルトの名無しさん
2021/09/23(木) 16:34:26.56ID:LOQBNAlJ
円周か円板かで答えが違う
183デフォルトの名無しさん
2021/09/23(木) 17:12:27.81ID:QUC7Fk2H
入力として整数値が与えられたらその中の立っているビットを
等確率でランダムに一つ抜き出した整数値を出力する

3が与えられたら1か2のどちらかを1/2の確率で
17179877640が与えられたら8か256か8192か17179869184のどれかを1/4で
184デフォルトの名無しさん
2021/09/23(木) 18:08:32.21ID:em+PQ8QU
>>Ruby
n = 17179877640

bits = []
while n > 0
n ^= b = n & -n
bits << b
end
puts bits.sample
185181
2021/09/24(金) 02:52:30.55ID:N3yB15M0
>>176
Kotlin
https://paiza.io/projects/LbOUfPjd6NuCyj7qhFdYqQ
186デフォルトの名無しさん
2021/09/24(金) 18:51:00.62ID:FX1uO51R
お題 繁分数
奇数個の整数がカンマで区切りで与えられる
間に'+'と'/'を順に挿入して計算する、ただし優先順位は後から優先
例) "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
187デフォルトの名無しさん
2021/09/24(金) 19:42:20.13ID:SF8pwxS9
>>186
なぜ、偶数個あるのか?
偶数個は最後に1"を入れてやってみた
(頭悪いからリヴァースして、浮動小数点でやっている)

https://wandbox.org/permlink/jzQZa53lpDSPdJo1
188デフォルトの名無しさん
2021/09/24(金) 21:54:41.68ID:uMkpdCmM
>>187
数え間違えorz
189ハノン ◆QZaw55cn4c
2021/09/25(土) 21:21:39.43ID:YrZFQiAF
>>186
https://ideone.com/pWADzs
190ハノン ◆QZaw55cn4c
2021/09/25(土) 21:23:01.64ID:YrZFQiAF
>>187
うーむ、私の >>189 よりシンプルですね
19196
2021/09/25(土) 22:19:21.21ID:qK5TmKac
>>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
192デフォルトの名無しさん
2021/09/26(日) 00:35:27.94ID:x+MOSZRz
>>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
193ハノン ◆QZaw55cn4c
2021/09/26(日) 02:32:13.09ID:fnZfkDL3
>>186 C
>>189
終端処理を間違えていたので御題にあわせて修正
https://ideone.com/4mkYde

233/151 = 1.54304635761589414855
1855077841/1311738121 = 1.41421356237309514547
1457/536 = 2.71828358208955211950
54193766400/17250408000 = 3.14159331187992751921
194デフォルトの名無しさん
2021/09/26(日) 02:51:04.12ID:edcxzAwz
>>186 J
f =: +`%/
___ f 1,2,3,4,5,6,7
1.54305
19596
2021/09/26(日) 11:06:39.50ID:ROfWiNc+
>>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
196デフォルトの名無しさん
2021/09/26(日) 13:52:29.02ID:Db797RWb
すいません
>>191は例題おかしいので数字合わないですね
気にしないでください
最後の例では最後の項の100抜くか、最後に21を追加してください

100抜いた場合は
4317632 / 1374345 = 3.14159254044654
21追加した場合は
54743776 / 17425485 = 3.1415926730303347

になると思います
>>191の例は
0+4/(1+(1/(3+...(17+81/(19+100/0)))))...)))
になってしまってるんだと思います(違うかも)
197デフォルトの名無しさん
2021/09/26(日) 15:05:57.74ID:RIy3qD4V
>>186 ocaml
https://ideone.com/VpQwAG
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
https://ideone.com/5D0lHx
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
198デフォルトの名無しさん
2021/09/26(日) 15:06:59.82ID:RIy3qD4V
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
199ハノン ◆QZaw55cn4c
2021/09/26(日) 19:57:37.78ID:KhgDxRBF
>>197
>[] -> 0, 1
>| x :: [] -> x, 1
>| x :: xs -> let n, d = h xs in x * d + n, d

>>193 を書いた私としてはなんとなくわかってしまうのが‥‥悲しいですね
200ハノン ◆QZaw55cn4c
2021/09/26(日) 19:58:46.43ID:KhgDxRBF
つまり >>193 は言語として冗長だ、という点が悲しい、という意味です、誤解を招かないように補充します
201デフォルトの名無しさん
2021/09/26(日) 21:14:48.05ID:K0n5mMQr
>>183
Java
https://paiza.io/projects/MEzZhPu6JRPceVynvuTqAw
202デフォルトの名無しさん
2021/09/26(日) 21:49:22.16ID:6LE1NaJb
お題: 与えられたUTF-8日本語文章から空白と記号を取り除いた後の文字列にNGワードがあるかどうか判定せよ。

NGワード: 「集近閉」「地獄経済」

例文1「集☆近☆閉☆は☆不☆滅」
例文2「地/獄/経/済/は/大/丈/夫」

出力例:「NGワード「集近閉」があります。」
出力例:「OKです。」
203デフォルトの名無しさん
2021/09/26(日) 21:51:41.83ID:K0n5mMQr
>>186
Java
https://paiza.io/projects/UI9ARHgZiXtVhZHIJXp7Jg?language=java
204デフォルトの名無しさん
2021/09/26(日) 21:58:42.24ID:Db797RWb
>>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の値になってました
205デフォルトの名無しさん
2021/09/27(月) 02:09:19.34ID:mB71+9h3
お題:: 文字列に対して文字列の範囲を指定すると、その範囲を角カッコで囲って出力するプログラムを作れ
文字列はASCII文字の並びでソートされている前提とする

入力フォーマット
文字列
範囲

入力
abcdefghijklmn
c-g

出力
ab[cdefg]hijklmn
206デフォルトの名無しさん
2021/09/27(月) 03:27:36.76ID:HGR3sN0a
お題: ハッシュタグをGoogle検索リンクに変換せよ。

ハッシュタグを含む日本語UTF-8文字列が与えられる。ハッシュタグをHTMLハイパーリンクに変換してHTMLテキストを出力する。

ハッシュタグは「#」か「#」か「♯」で始まるものとします。
ハッシュタグには半角の「_」以外の記号と空白は使えません。
HTMLの特殊文字「&<>」はそれぞれ「&」「&lt;」「&gt;」に変換するものとします。
検索リンクは日本語グーグルを使用します。

入力例「これは #テスト文字列です。 #家族募集中 <本日は雨天なり>」
207デフォルトの名無しさん
2021/09/27(月) 03:36:26.68ID:lACGcuZa
>>206
出力例もよろしく
208デフォルトの名無しさん
2021/09/27(月) 03:39:59.74ID:HGR3sN0a
>>206
訂正。「&」→「&amp;」
209デフォルトの名無しさん
2021/09/27(月) 04:15:57.90ID:HGR3sN0a
>>206
出力例「これは <a href="https://google.co.jp/search?hl=ja&;source=hp&q=テスト文字列です">#テスト文字列です</a>。 <a href="https://google.co.jp/search?hl=ja&;source=hp&q=家族募集中">#家族募集中</a> &lt;本日は雨天なり&gt;」
210デフォルトの名無しさん
2021/09/27(月) 10:56:06.17ID:BIqiQYZe
家族募集中
が無視されてるのは何故?
211デフォルトの名無しさん
2021/09/27(月) 11:20:24.19ID:FdLhLOZv
>>206
$ echo -e 'これは #テスト文字列です。 #家族募集 中 <本日は雨天なり>' |
sed -e 's/&/\&/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g' -e 's![##♯]\(\w*\)!<a href="https://google.co.jp/search?hl=ja\&source=hp\&q=\1">&</a>!g'

これは <a href="https://google.co.jp/search?hl=ja&;source=hp&q=テスト文字列です">#テスト文字列です</a>。 <a href="https://google.co.jp/search?hl=ja&;source=hp&q=家族募集中">#家族募集中</a> &lt;本日は雨天なり&gt;
212デフォルトの名無しさん
2021/09/27(月) 16:42:34.63ID:lACGcuZa
>>186
Kotlin
https://paiza.io/projects/HLf5ipRdYfeUkeWaJJdCAg

偶数個のやつは一つ削って奇数個にした。
213デフォルトの名無しさん
2021/09/27(月) 17:07:09.23ID:lACGcuZa
>>186
Perl5
https://paiza.io/projects/SXR1Q0vDlTYSPhY1BLUiBA

これはまあ、ふざけたやり方というかなんというか。計算はPerlにお任せ。
214デフォルトの名無しさん
2021/09/27(月) 21:40:29.82ID:lACGcuZa
>>205
Kotlin
https://paiza.io/projects/HOEEJeT5syiOJDkmB6VLlQ

正規表現使って置換しているだけ。他の言語でも正規表現使ったら大差ない感じになるかも。
215デフォルトの名無しさん
2021/09/27(月) 22:04:19.72ID:IGWq0JTX
>>205 octave
https://ideone.com/p4vSPE
f = @(s, r) regexprep(s, ['([' r ']+)'], '[$1]');
f('abcdefghijklmn', 'c-g')
216デフォルトの名無しさん
2021/09/27(月) 23:53:33.07ID:CFsFGFcT
>>214
性器を痴漢
まで読んだ
217デフォルトの名無しさん
2021/09/28(火) 00:35:44.78ID:R7FPj2K+
>>213
やはりそれきましたかw
218デフォルトの名無しさん
2021/09/28(火) 02:40:03.94ID:wFK5NO29
>>206
Kotlin
https://paiza.io/projects/X2vegPHscigvi2ILMs00Wg

正規表現使って一発でやるのではなく1文字づつ読んでやるように作った。
219デフォルトの名無しさん
2021/09/28(火) 07:20:01.83ID:OyddjX6J
>>176 Lua
function f(x, y, m, z, w, n)
return (x - z) ^ 2 + (y - w) <= (m + n) ^ 2
end
220デフォルトの名無しさん
2021/09/28(火) 07:27:57.86ID:OyddjX6J
>>219
間違えました
function f(x, y, m, z, w, n)
return (x - z) ^ 2 + (y - w) ^2<= (m + n) ^ 2
end
221デフォルトの名無しさん
2021/09/28(火) 10:29:00.43ID:wFK5NO29
あ、そーか。2乗のまま比較すればsqrt不要だったな。
222デフォルトの名無しさん
2021/09/28(火) 19:11:27.77ID:RwSKB5Xt
>>202
Kotlin
https://paiza.io/projects/qStwB_RNzaqRnbq0Klro4g

二番目のやつはOKではないな。
223デフォルトの名無しさん
2021/09/28(火) 23:13:01.41ID:R7FPj2K+
>>209
の出力例をみると“テスト文字列です”は文字列、“。”な区切り記号と認識してここで切らないとダメみたいだけど、だとするとunicodeの文字列の中にある“区切り記号”と“文字列を構成する文字”を区別しないといけなくなる
GOには“unicode”というライブラリが用意されてて簡単にできるみたいだけどオレが愛用するHaskellではその手のライブラリが見つからんorz
流石にスクラッチで一から書くのは無理だし
どっかに“コード××〜××までは記号”とか一覧になってるテーブルとかないんかな
224デフォルトの名無しさん
2021/09/29(水) 00:03:13.95ID:BLI1g7MR
POSIX character classes
225デフォルトの名無しさん
2021/09/29(水) 00:18:36.77ID:1i2b1Egj
お題: 次を真似して作れ。

「突然の死ジェネレーター」
https://totuzennosi.sacnoha.com/

ただし、等幅フォントでの表示を想定し、半角・全角の文字幅の違いを尊重すること。
226デフォルトの名無しさん
2021/09/29(水) 04:42:10.56ID:WX6C7qGJ
>>225
★や※を全角にするか半角にするかに依存。要はフォントに依存するから無理
227デフォルトの名無しさん
2021/09/29(水) 11:07:43.39ID:0XODgfdX
Unicodeで半角全角を扱う Ambiguous(曖昧さ)とUncertainty(不確実性)の恐怖
https://qiita.com/Nuits/items/71a69cf32d547c9875bb


ま、しかし、なんとなくいい加減で入力によってはおかしくなるやつならば作れるので、後で時間があったら作ろう。
228デフォルトの名無しさん
2021/09/29(水) 12:01:49.91ID:hPAWkWy2
>>227
> Unicodeで半角全角を扱う場合、まずフォントがEast Asian Widthの規定を正しく守っている必要があります。でも実際にはそうとは限りません。
>
> またそれを取り扱うプラットフォームも適切に実装されている必要がありますが、必ずしもそうとは限りません。

仕様を満たしてないものは仕様通りの挙動にならないかどで仕様を叩いているということで合ってる?
229デフォルトの名無しさん
2021/09/29(水) 12:03:25.69ID:SXvzkJ7t
Boys, be Ambiguous.
230デフォルトの名無しさん
2021/09/29(水) 12:32:11.32ID:SXvzkJ7t
お代
https://tokyochallenge.odpt.org/
231デフォルトの名無しさん
2021/09/29(水) 13:28:55.86ID:p1B8H211
>>225
Kotlin
https://paiza.io/projects/CTRi-9vO58I5nJsn9uvKFA

流石に寿限無は長すぎたようだ。
232デフォルトの名無しさん
2021/09/29(水) 13:41:53.17ID:p1B8H211
>>230
> 2020年、2021年の東京では、東京マラソンの開催、東京国際クルーズターミナルのオープン、
> 東京2020オリンピック・パラリンピック競技大会の開催など、国際的に注目を集めるイベントが
> 多数予定されています。

外国からの入国制限、及び無観客にして解決。
233デフォルトの名無しさん
2021/09/29(水) 19:41:42.38ID:p1B8H211
>>225
Kotlin
https://paiza.io/projects/1lHjOtpR8LrRV2Ggwafmyg

吹き出し部分を半角文字に変えてみたんだけどね。あまり意味ないか。
234蟻人間 ◆T6xkBnTXz7B0
2021/09/29(水) 19:46:15.13ID:1i2b1Egj
お題: 重力と慣性のないデカルト座標系に長さ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はこの順で端点が連結されており、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度」「ありません」
235デフォルトの名無しさん
2021/09/29(水) 20:45:55.00ID:ktvYkylG
>>234
頭が悪そう
出題が冗長
236蟻人間 ◆T6xkBnTXz7B0
2021/09/29(水) 21:27:25.97ID:1i2b1Egj
>>235
代わりに出題してみて
237デフォルトの名無しさん
2021/09/29(水) 21:47:32.31ID:yKvURuJk
悪"そう"では無いな。説明において要点を整理出来ない者はすべからく頭悪い
問題文はその者の理解度に等しい
238デフォルトの名無しさん
2021/09/30(木) 00:49:10.52ID:Ai6xyiAS
>>234
haskell
https://ideone.com/kZdKJf
239デフォルトの名無しさん
2021/09/30(木) 01:23:41.62ID:Ai6xyiAS
>>238
ラジアンと度の変換間違いorz
haskell
https://ideone.com/msB5Ks
240デフォルトの名無しさん
2021/09/30(木) 03:52:16.30ID:Ai6xyiAS
ちなみに代わりに出題するなら

入力(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°の範囲で与えるとする

かな
241デフォルトの名無しさん
2021/09/30(木) 20:22:48.51ID:59EqeRS1
>>202 JavaScript
https://ideone.com/VslT6D
242蟻人間 ◆T6xkBnTXz7B0
2021/09/30(木) 20:33:52.35ID:8ZMYiRqf
>>239
ここに居るほとんどの人が分かってないから、解説をお願いします。
243デフォルトの名無しさん
2021/09/30(木) 20:35:20.03ID:BaUXpZJu
>>242
素直に「僕には難しすぎてわからないから詳しく教えてください」って言えないの?
244蟻人間 ◆T6xkBnTXz7B0
2021/09/30(木) 20:45:22.12ID:8ZMYiRqf
>>243
ここは解いた人が解説しないと
245デフォルトの名無しさん
2021/09/30(木) 20:46:54.85ID:BaUXpZJu
>>244
お前とQZ以外は理解してるよ
246蟻人間 ◆T6xkBnTXz7B0
2021/09/30(木) 21:01:09.92ID:8ZMYiRqf
2つの副業と、ベルトコンベアのラインでねじ回しの仕事で疲れてるから許してくれよ。
247蟻人間 ◆T6xkBnTXz7B0
2021/09/30(木) 21:13:56.42ID:8ZMYiRqf
この技術を応用すればロボットアームを自由自在に動かせそうだね。
248蟻人間 ◆T6xkBnTXz7B0
2021/09/30(木) 21:47:22.16ID:8ZMYiRqf
イーロン・マ●クさん、見てる? イェイ!
249デフォルトの名無しさん
2021/09/30(木) 23:18:58.96ID:vWP+uHYR
>>247
誤差が積もり積もるから無理
250デフォルトの名無しさん
2021/10/01(金) 00:08:37.55ID:VIfkqI1d
群論で簡単に解けそう
251デフォルトの名無しさん
2021/10/04(月) 21:51:58.57ID:8pCgPPfH
お題: CSV形式のテキストデータを検索する grep のようなコマンド(または関数)

CSVの形式は RFC 4180 の通りで文字のエンコーディングは UTF-8、改行は CR/LF。
この辺のページを参考にすると良い。
https://datatracker.ietf.org/doc/html/rfc4180
http://www.kasai.fm/wiki/rfc4180jp
https://blog.tech-monex.com/entry/2021/03/26/160000#2-Definition-of-the-CSV-FormatCSV%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E3%81%AE%E5%AE%9A%E7%BE%A9

普通の grep コマンドを CSV ファイルに対して行うと1つのデータで改行が入っていた時に何行目の何列目のデータなのかが分からなくなって不便である。
その他、ダブルクォーテーションで括られているか否か、データとしてカンマやダブルクォーテーションを含むか否かで検索する側が正規表現を考慮して作らねばならず面倒臭い。
ということでこういった面倒くささを解消するコマンドを作るのがこのお題。
コマンドという形式ではなく正規表現と検索されるCSVテキスト(あるいはCSVファイル名や読み込みオープンしたファイルデスクリプタ)と検索する時のオプション(大文字小文字を無視など)を渡すと検索結果を返す関数を作成しても良い。
尚、1行目の項目名が入っている事がある行についてはその存在の有無をオプションで渡して指定する方式にして良い。

検索結果はパターンにマッチしたデータについて何行目、何列目だったかが分かるようにしてデータと共に出力する(関数の場合は呼び出し元に返す)。
出力する時にデータを見易くするために改行があったら \n 等にエスケープして1行にしても良い。

CSV読み込みや正規表現について既存のライブラリを使うか否かはご自由に。但し言語や環境に最初から付属していない外部のライブラリを使う場合は何を使ったかが分かるようにコメント等に入れておくこと。
252デフォルトの名無しさん
2021/10/04(月) 23:29:46.48ID:nQu0++L9
はい次
253デフォルトの名無しさん
2021/10/05(火) 01:25:35.09ID:jsFp2nZ3
難し過ぎたか・・・
254デフォルトの名無しさん
2021/10/05(火) 03:24:50.56ID:8XAhfzzR
お題として質が低いのよ。
課題だねこれじゃw
宿題や仕事は自分でやってどうぞ
255デフォルトの名無しさん
2021/10/05(火) 07:56:40.58ID:DrLIL1/r
てかちょっとガチでやったらそれなりの規模になるからこんな所でやるようなもんじゃない
256デフォルトの名無しさん
2021/10/05(火) 11:30:23.33ID:akfRupr1
せやな
どんなに長くても30分くらいて完成する程度がやってみようと思える限界やろな
所詮暇つぶしやし
257デフォルトの名無しさん
2021/10/05(火) 11:35:39.40ID:jsFp2nZ3
まあやるやらないは自由なので
258デフォルトの名無しさん
2021/10/05(火) 12:04:55.27ID:+8sevm6S
じゃあ俺がやるよO/
259デフォルトの名無しさん
2021/10/05(火) 12:39:36.95ID:mwjMS5Mk
というか正確に仕様を満たせというのは実装チャレンジであって僕の考えた最強の解決策を見せっこするためのお題にはならんだろ
260デフォルトの名無しさん
2021/10/05(火) 12:57:06.08ID:UApdMlTn
>>251
http://2chb.net/r/tech/1624934554/88

> 88 名前:デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)[] 投稿日:2021/09/28(火) 00:00:21.68 ID:qy0bUCok0
> >>81
> CSV用のgrepってあったらいいよな。
> ライブラリ使えば簡単そうだからお題スレに出しておくかな。
261デフォルトの名無しさん
2021/10/05(火) 13:17:01.07ID:+8sevm6S
>>260
262デフォルトの名無しさん
2021/10/05(火) 13:17:11.37ID:+8sevm6S
>>259
??
263デフォルトの名無しさん
2021/10/05(火) 13:17:42.69ID:+8sevm6S
解かない人は黙っててもらえないかな
264デフォルトの名無しさん
2021/10/05(火) 13:19:46.17ID:+8sevm6S
>>255
ライブラリ使えば余裕

>>256
俺は人生かけてチャレンジする
265デフォルトの名無しさん
2021/10/05(火) 13:20:57.94ID:+8sevm6S
>>251
ちょっと待ってろ俺が回答してみせる
しばらく修行の旅に出る
266デフォルトの名無しさん
2021/10/05(火) 13:54:06.13ID:8XAhfzzR
>>260
そんなことだろうと思ったよ
267デフォルトの名無しさん
2021/10/05(火) 14:03:05.86ID:+8sevm6S
>>254
ライブラリ使うのもあり
オートマトンを実装するのもあり
Bison使うのもあり
パーザジェネレータから作るのもあり

すごく面白そうじゃん
268デフォルトの名無しさん
2021/10/05(火) 14:03:59.63ID:+8sevm6S
お題に文句つけるのはお前ららしくないよ
淡々と馬車馬のように回答するのがお前らのアイデンティティだろ
初心思い出せよ
269デフォルトの名無しさん
2021/10/05(火) 15:15:20.74ID:jsFp2nZ3
>>260
そうそう。それそれ。
270デフォルトの名無しさん
2021/10/06(水) 12:59:47.28ID:xRQj077j
お題 持久戦
隔たりのない6面のサイコロがN個ありi番目のサイコロのj番目の面には整数Aijが書かれている
高橋君は一個のサイコロを選んで一回振ると言う操作を繰り返す。
ただし2回目以降の操作で、前回の操作で出た目より小さいか同じ目が出てしまったら操作を止める
各回どのサイコロを振るかは前回に出た目を見てから決めることができる
高橋君は出来るだけサイコロを多く振りたいと考えている
操作の行われる期待値が最大化されるような選択が行われたときの操作回数の期待値を求めよ

と言うのが数学板に投下されたけどどう見ても数学の問題でないので全員ガン無視

https://atcoder.jp/contests/past201912-open/tasks/past201912_o
271デフォルトの名無しさん
2021/10/06(水) 12:59:53.99ID:xRQj077j
以下自分の計算した例
間違ってるかも

入力
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 )

出力は別に小数表示でも良いとする
尚最後の例は元サイトの“全部異なる”の制約満たしてないけど検算用、無視して桶
272デフォルトの名無しさん
2021/10/07(木) 19:56:52.00ID:intYWBu8
隔たりって何
273デフォルトの名無しさん
2021/10/09(土) 14:34:36.05ID:uZ4xSJeU
>>272
偏りのないです
元ネタのホムペには他にも何問か有るんですけどコレ以外はあんまり面白いのがない
ちなみに例はN=1,3でこれくらいだと総当たりでも解ける
でも元ネタサイトの制限はN≦30000でこれだと実質総当たりだと解けない
なので元ネタは「いわゆるDPで解ける問題だけどできますか?」が題意のようです
まぁここではN=3くらいでパッパッと解ければいいかと
274デフォルトの名無しさん
2021/10/12(火) 06:03:57.89ID:e1q14myl
お題:
正整数 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
...
275デフォルトの名無しさん
2021/10/13(水) 17:28:45.55ID:igjNiW+q
>>274
 https://ideone.com/lSUULo
 c++

 アルゴは"OEIS A015614"より、本人はよくわかってない
 余談:単純にオイラーのφを200万やっても2秒くらいだった
276デフォルトの名無しさん
2021/10/15(金) 22:08:55.85ID:NqIVJaNX
じゃ簡単なお題を

1.少数(整数部MAX5桁、小数部MAX5桁)を入力し、分数に変換するプログラムを作成しなさい。

2.誕生日と日付AをそれぞれYYYYMMDDの8桁の整数で入力し、日付Aの時点で何歳かを表示するプログラムを作成しなさい。

3.西暦年YYYYを入力して閏年か否かの判定をするプログラムを作成しなさい。
277デフォルトの名無しさん
2021/10/15(金) 22:53:54.66ID:HBylJ5Wv
平面3リンクマニュピュレータの逆運動学のプログラミングを完成させなさい。
キーボードで手先の位置を入力すると、関節角が表示されるようにすること。
scanfを使うのと、アームの長さなどは適当に決めていいという条件。
278デフォルトの名無しさん
2021/10/15(金) 23:23:30.53ID:eqKsqNtm
>>277
平面3リンクマニピュレータというものを検索してみたけど、手先の位置だけ与えても各関節の角度は同定できないのでは?
279デフォルトの名無しさん
2021/10/15(金) 23:45:51.35ID:HBylJ5Wv
>>278
第1関節は原点で固定ですね。
手先の位置・姿勢が(xed, yed, φed)と与えられた(キーボード入力)時の、第3関節の位置が
x2=xed-L3×cosφed
y2=yed-L3×sinφed
と求まり、第3関節がこの場所に来るには、リンク1とリンク2が三角形の2辺になるように第1関節と第2関節の角度を決めるという感じですね。
280デフォルトの名無しさん
2021/10/16(土) 02:01:06.18ID:8sv207AJ
お題専門用語だらけでググらないと意味わからないようなお題やる気にならん
281デフォルトの名無しさん
2021/10/16(土) 04:05:29.07ID:a3RnthCp
Visual Studio Code / VSCode Part11
http://2chb.net/r/tech/1632311131/173
282◆QZaw55cn4c
2021/10/16(土) 17:58:18.20ID:EXZ4MfzZ
>>268
>初心思い出せよ
すみません……
283デフォルトの名無しさん
2021/10/16(土) 18:45:58.11ID:BO6yK2Ly
scanfってことはHaskellじゃダメなのか。
休み一日しかないから取り掛かってみるか止めとくか悩むね。
284デフォルトの名無しさん
2021/10/16(土) 18:53:52.75ID:BO6yK2Ly
>>277は算数はわかってるんだけどプログラムがわからないんだろな。
そんなあなたにHaskell!!Haskell!!
285デフォルトの名無しさん
2021/10/16(土) 19:48:39.78ID:ZzoUZQ8H
>>277
C++のスレで僕の丸投げ課題だれもやってくれないって拗ねてた奴か
こっちにまで来て人に迷惑かけるなよ
286デフォルトの名無しさん
2021/10/16(土) 21:10:27.39ID:27uehHe1
>>284
数学じゃないだろ
287デフォルトの名無しさん
2021/10/17(日) 08:07:29.47ID:QqhGhKAl
算数じゃなかったら何なんだ。
288デフォルトの名無しさん
2021/10/17(日) 08:09:34.06ID:eIKWemED
物理
289ハノン ◆QZaw55cn4c
2021/10/17(日) 08:14:29.67ID:iZHfLY3S
>>287
物理なら剛体力学でしょうが力学的要素はないから今回は工学の機構学とかそんな感じ

>>279
>リンク1とリンク2が三角形の2辺
せっかく一つ余分にある自由度を、そんな縛りで消費するのはもったいないと思います、それは力学的配慮ですか?
290デフォルトの名無しさん
2021/10/17(日) 08:34:02.73ID:QqhGhKAl
私は高校一年生の算数で解ける。
291デフォルトの名無しさん
2021/10/17(日) 08:35:04.57ID:QqhGhKAl
高校一年生が解く方法と、大学生が解く方法は違うのだろうか?
292デフォルトの名無しさん
2021/10/17(日) 09:18:03.49ID:MkgjpPUe
>>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重ループで回して、一番目標位置に近かったものを答えにする。
293デフォルトの名無しさん
2021/10/17(日) 10:36:29.88ID:31BFfd9w
腕の長さ自由に決めていいならひとつ捨てて残り2つ同じ長さにすればカバーできる範囲同じで計算も簡単になる
元のお題でそもそもわざわざ関節3つ使う理由がない
294デフォルトの名無しさん
2021/10/17(日) 10:51:06.44ID:UoQPOfGF
どうでもいいことを長々と議論するなあ
無視すりゃいいだろw
295デフォルトの名無しさん
2021/10/17(日) 10:57:44.74ID:QqhGhKAl
手先の位置というのが同定できない原因だったけど、位置と角度に変わったので大丈夫では?
296デフォルトの名無しさん
2021/10/17(日) 11:01:26.31ID:QqhGhKAl
関節角度の並びは二つに限られ、第一腕部第二腕部が直線に並ぶ時ひとつ、それ以外は二種類の並びに制限される。
297デフォルトの名無しさん
2021/10/17(日) 12:08:44.44ID:QqhGhKAl
https://imgur.com/a/Y5mxr55
こんな感じでは?
実線と点線の二つの腕の位置が有り得る。
あとは余弦定理を使えば全て解ける。
298デフォルトの名無しさん
2021/10/17(日) 12:15:55.19ID:06wimQoq
>>277 は、こいつに出された大学での課題。C/C++ スレで丸投げ指摘されて遁走。
299デフォルトの名無しさん
2021/10/17(日) 15:12:12.66ID:atjZW8su
お題: 「平面3リンクマニュピュレータの逆運動学」とは何か。日本語で説明せよ。
300デフォルトの名無しさん
2021/10/17(日) 15:21:58.09ID:06wimQoq
ロボット工学本の逆運動学の章に必ず載ってる問題。勿論解法も載ってる。

>>277のアホはその解法のプログラミング(の課題)が出来ず、ここの連中にやらせようとしてる。
301デフォルトの名無しさん
2021/10/17(日) 15:54:50.71ID:31BFfd9w
作りゃいいと言われてもあまりにも意味わかんない
関節3つつけるのは当然手先の向きとかに制約がないと意味ない
じゃあ無視して関節2つでと言われたら面白くもなんともない
302デフォルトの名無しさん
2021/10/17(日) 18:26:22.03ID:QqhGhKAl
結論:算数で十分でした。
303デフォルトの名無しさん
2021/10/17(日) 18:38:41.07ID:W8S2Fmip
>>277 長さ全部1でやってみた
https://ideone.com/QDwLSL
304デフォルトの名無しさん
2021/10/17(日) 18:39:49.61ID:QqhGhKAl
>>303
すごい。
305ハノン ◆QZaw55cn4c
2021/10/17(日) 22:41:52.63ID:iZHfLY3S
>>276
>>276 1. : C
https://ideone.com/akOA1O
手間取ってしまいました…
306デフォルトの名無しさん
2021/10/18(月) 12:12:09.30ID:MhIWImiq
ときどき言ってたり、やったりするがいまだ解答不明
平面上に円をおき、その円周上の整数点がちょうどn個となる円の最小半径は?
具体的にn=47でもわからない
307デフォルトの名無しさん
2021/10/18(月) 19:23:56.84ID:578ljV9d
nは奇数にもなり得るの?
308デフォルトの名無しさん
2021/10/18(月) 20:05:15.05ID:h1g8zzDx
>>306
昔そんな問題見たな
このスレかも
309デフォルトの名無しさん
2021/10/18(月) 20:08:42.56ID:h1g8zzDx
全てnに対して円が存在するかどうかはわかってるの?

n=0, n=1の時は円は存在するが最小値は存在しない
n≧2の時は円が存在するなら最小値も存在する
310デフォルトの名無しさん
2021/10/18(月) 21:27:28.14ID:9iPUXHWE
1970年から2369年までの間で
カレンダーの曜日が365(366)日同じパターンで出て来る年をグループ分けして
グループが全部で何個あるか(たぶん即答7個だけど365と366を違うものとするので7以上)と
各グループに何年が属するかを出力するプログラム
311デフォルトの名無しさん
2021/10/18(月) 22:48:50.35ID:cIVwbLw+
400個だろ
312デフォルトの名無しさん
2021/10/18(月) 23:32:12.79ID:o3blQ8kr
最大で14個だよね?
313デフォルトの名無しさん
2021/10/19(火) 00:20:44.71ID:eZJKwUVR
>>276
とりあえず1だけ。

perl -ne 'print int($_ * 100000) . " / 100000\n"'
314デフォルトの名無しさん
2021/10/19(火) 00:37:17.41ID:uZ+aFQr8
>>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
315デフォルトの名無しさん
2021/10/19(火) 06:24:04.50ID:uZ+aFQr8
曜日判定は開始年のみで残りは閏年判定とインクリメントだけで良かったね
316デフォルトの名無しさん
2021/10/20(水) 01:31:42.75ID:3o6derLl
>>313
勘違いしてるぞそれw
317デフォルトの名無しさん
2021/10/21(木) 02:55:37.46ID:47mGjMvV
>>316
ぶ、ぶんすうにはなっているとおもうんだ
318デフォルトの名無しさん
2021/10/21(木) 03:09:36.20ID:47mGjMvV
>>276
2だけ
Kotlin
https://paiza.io/projects/Uu2ieNBaD0aTyojbmVLWRA
319デフォルトの名無しさん
2021/10/21(木) 12:46:05.31ID:TQQGYYBP
>>306
ちょっとやってみたけど奇数のものは見つけにくい
47ともなると相当大きくなりそう
320デフォルトの名無しさん
2021/10/21(木) 13:16:40.90ID:LMXfXe/q
x^4+y^4+z^4=a^4
が成り立つ値
x,y,z,a
を求めよ。
321デフォルトの名無しさん
2021/10/21(木) 16:28:37.98ID:s+STdMnX
0
322デフォルトの名無しさん
2021/10/21(木) 18:41:27.23ID:LMXfXe/q
>>320
値は2以上の自然数ね
323デフォルトの名無しさん
2021/10/21(木) 18:46:20.17ID:1lKVQwqU
1も入れてあげて
324デフォルトの名無しさん
2021/10/21(木) 20:52:10.29ID:I05C+tHT
>>310 octave
https://ideone.com/Db3vpP
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))
325デフォルトの名無しさん
2021/10/21(木) 23:31:25.95ID:s18jC5Va
https://ja.m.wikipedia.org/wiki/%E3%82%AA%E3%82%A4%E3%83%A9%E3%83%BC%E4%BA%88%E6%83%B3
326デフォルトの名無しさん
2021/10/22(金) 01:42:42.81ID:ZLeZZO3L
>>310
Kotlin
https://paiza.io/projects/1gyc3KwD7I97S0hLahoygw

肝心な事はライブラリに任せ、自分でやってるのは振り分けだけ。
327デフォルトの名無しさん
2021/10/22(金) 02:39:08.04ID:K3be3gm5
>>306
n=2~10、とりあえず値だけ
1/2、5/(3√2)、1/√2、25/(3√2)、5/2、(25√221)/(11√2)、√(5/2)、65/(3√2)、25/2
328デフォルトの名無しさん
2021/10/22(金) 14:09:38.24ID:77+/GwrE
>>310
haskell
https://ideone.com/Djble2
329デフォルトの名無しさん
2021/10/22(金) 21:06:26.88ID:ernPiDca
>>306
最小かどうか知らんけど
いっこ見つけたよ
半径おおよそ10万
https://www.wolframalpha.com/input/?i=%28x-5%2F12%29%5E2%2B%28y-5%2F12%29%5E2%3D%28801125%5E2%29%2F72

この数を上限としてループ回したらどうか
330デフォルトの名無しさん
2021/10/22(金) 23:54:51.41ID:7DKt7uEz
"最小"である事を数学的に証明出来なければ最小であるとは言えないと思うのだが最小である証明って出来るの?
証明方法あるなら是非教えて頂きたいのだがちょっとスレチかなぁ?
331デフォルトの名無しさん
2021/10/23(土) 01:17:25.17ID:BHiRdnVn
この問題の場合は
可能性を総当たりでつぶしていく方法があるから
計算機科学的にいえば「証明可能」だと思う
現実的な時間で解が求まるかどうかはまた別の話
332デフォルトの名無しさん
2021/10/23(土) 04:37:00.63ID:gSawFHHH
いやいや連続体濃度の可能性を総当たりできるわけないじゃん
333デフォルトの名無しさん
2021/10/23(土) 05:04:07.49ID:xy2o1DGT
特定の3点を通る円は1個だから
上限があれば有限個の検索で済む
334デフォルトの名無しさん
2021/10/23(土) 09:08:29.52ID:lhX1R4Wb
[0,1)×[0,1)に中心があり半径が801125/√72=94413.486...の円に入る円の格子点の数はおよそ2.8×10^10個
そこから3つ選んでルーブ回すとループの回数は2.1×10^31回
1秒で10^10回ループ回せたとして10^20秒の桁
何兆年もかかる
335デフォルトの名無しさん
2021/10/23(土) 09:46:56.70ID:LnA0RHk6
総当たりじゃないうまい方法を考えなさい
ってのがこのスレ的な話題なんじゃない?
336デフォルトの名無しさん
2021/10/23(土) 09:55:07.00ID:HC6G+u/J
数学の人には渋い顔されるだろうけど
コンピュータだったらまずは総当たり作ってみてそこから改良してくの全然ありだと思う
337デフォルトの名無しさん
2021/10/23(土) 12:38:00.73ID:8QkqEddx
これはもしかして座標の問題ではなく円の性質では?
338デフォルトの名無しさん
2021/10/23(土) 13:51:05.91ID:lhX1R4Wb
イヤ、もしかしても何も出題者も答え持ってないやろ
339蟻人間 ◆T6xkBnTXz7B0
2021/10/23(土) 14:11:15.10ID:HSZ38wuD
お題:
(1) 数当てゲームを作成せよ。コンピュータ側は1~100の自然数をランダムに選び、ユーザ側は、当たるまで繰り返し数を選ぶ。コンピュータは当たれば「当たり!」、外れれば「それより大きいです」か「それより小さいです」を出力する。
(2) そのゲームに、ユーザー側としてAIが介入可能な入出力インターフェースを追加せよ。出力: 数、入力: コンピュータからのメッセージ。
(3) 二分探索アルゴリズムによって、数当てゲームのAIを完成せよ。
340デフォルトの名無しさん
2021/10/24(日) 00:22:45.96ID:Gedozjyx
AIとは何か?
341デフォルトの名無しさん
2021/10/24(日) 00:39:25.83ID:8hWi5KuQ
うわー難しいこと聞いてきた。
342蟻人間 ◆T6xkBnTXz7B0
2021/10/24(日) 01:17:46.48ID:LOuNpAsp
artificial intelligence
343デフォルトの名無しさん
2021/10/24(日) 05:13:25.20ID:H3SbS1d2
Application Interface
344デフォルトの名無しさん
2021/10/24(日) 08:59:19.22ID:iNEhflB6
X^2 + Y^2 = N の整数解は、Nの素因数分解からわりと簡単に求められる
X = cx +a , Y = cy + b として、拡大縮小+中心移動したとき解個数がどのように変化するのか、わかればいいのだが
N = 2^(n0)・p1^(n1 - 1)・p2^(n2 - 1)・・・・・(pi ≡1 mod 4)と素因数分解されたとすると 解個数は 4 ・ n1 ・ n2 ・・・・・
X^2 + Y^2 = (X + iY)(X - iY)と、 4k+1型素数はたとえば5 = (2+i)(2-i)のように分解できることから最初の式の解も具体的に求められる
345デフォルトの名無しさん
2021/10/24(日) 09:25:46.21ID:iNEhflB6
たとえば >>329の右辺の数 801125 = 5^3×13×17×29 なので
a=1+2i、 b=2+3i、 c=1+4i、 d=2+5iとおくと 5=a~a (~aは複素共役)等になる。
X^2 +Y^2 = 801125^2 の解個数は756=4*7*3*3*3
z=a^i (~a)^(6-i)とおくと、z~z = 5^6 等から複素数の積の計算して解も求まる
346デフォルトの名無しさん
2021/10/24(日) 09:57:22.23ID:mn+DQKnt
>>344
それで中心と半径が与えられたときのってる格子点の数が簡単に求められたとしても、“最小のR”を求めるのにそこまで役に立つわけやないやろ
中心が( -a/N, -b/N ), 半径√Rとして格子点が満たすべき方程式は

( Nx + a )^2 + ( Nx + b )^2 = N^2R

だから求める格子点の個数は方程式

u^2 + v^2 = N^2R, ‥①
u ≡ a ( mod N ), v ≡ b ( mod N )‥②

を満たす(u,v)の数になる
となると格子点の個数が例えば47とか抑えられててもN^2Rがの可能性が直ちに抑えられるわけではない、N^2Rがメチャクチャ大きくてもa,bをうまく選べば①、②を満たす整数解はさほど多くなくなる可能性が出てくる
結局
「Rは小さい(最小値求めてるので)、①,②を満たす整数解の個数は少ない(問題文で与えられてる条件)」
を科してもNの上限が直ちに決まったりはしない
347デフォルトの名無しさん
2021/10/26(火) 13:24:29.03ID:7IK8iIce
Nの上限はRで押さえられるだろ
348デフォルトの名無しさん
2021/10/26(火) 20:49:34.15ID:mZlCCyni
>>347
何故?
349デフォルトの名無しさん
2021/10/26(火) 21:57:54.63ID:YDtvu9T4
( Nx + a )^2 + ( Ny + b )^2 = R の解個数は
X^2 + Y^2 = R の解個数以下ということでは?
350デフォルトの名無しさん
2021/10/26(火) 22:04:08.64ID:YDtvu9T4
Rを十分大きくとって、X^2 + Y^2 = R の解個数が1万だとしても
( Nx + a )^2 + ( Ny + b )^2 = R  で 1万以下のすべての解個数を作りだせるかというと間違ってそうだからな
>>346はそういうことだろ?
9997の解個数を得ようとすれば、X^2 + Y^2 = R の解個数はたとえば100億でないと無理かもしれない
351デフォルトの名無しさん
2021/10/27(水) 02:27:08.98ID:zvgRqB+7
>>306
n=47の記録を更新したので載せとく
https://www.wolframalpha.com/input/?i2d=1&;i=%28x-9%2F86%29%5E2%2B%28y-19%2F86%29%5E2%3D3929086318625%2F3698
352デフォルトの名無しさん
2021/10/27(水) 12:58:14.54ID:QXFcz/ph
お題
デスクトップにフォルダーA,B,C,D,E,F,G,H,I,J,K,Lがある。
D&Dで一つのフォルダーにまとめる。それぞれのフォルダーの
パス名の組み合わせは何通りあるか数える
(デスクトップはルートフォルダーみたいに表記してよい)
例:
A,Bの場合
1./A,/A/B
2./B,/B/A
A,B,Cの場合
1./A,/A/B,/A/C
2./A,/A/B,/A/B/C
3./A,/A/C,/A/C/B
4./B/A,/B,/B/C
5./B/C/A, B,/B/C
6./B/A,/B,/B/A/C
7./C/A,/C/B,/C
8./C/A,/C/A/B,/C
9./C/B/A,/C/B,/C
できれば、SQLのみを使ったもの
353デフォルトの名無しさん
2021/10/27(水) 13:29:20.74ID:iuhktxGB
悪問
354デフォルトの名無しさん
2021/10/27(水) 14:15:39.88ID:t2iD5tO8
ハノイの塔と同値
355デフォルトの名無しさん
2021/10/27(水) 16:59:18.79ID:M8/Dvct0
>>350
違う
>>346で言ってるのは

問題 円上の格子点の数がちょうど47個である円の半径の最小値を求めよ

においてガウス整数環の因数分解の話を使って

問題 方程式

u^2 + v^2 = N^2R, ‥①
u ≡ a ( mod N ), v ≡ b ( mod N )‥②

を満たす(u,v)の数が47であるRの最小値を求めよ

という問題に還元したとして、“解の個数が47個”という条件を利用してもNの上限を決めることができないということ
なんかの理論なり勘なりでR<10万とか決まってもそれによってNの上限が決まったりはしない
N=一兆くらいで素因子を山のように持っててもa,bの選択によっては結局解の個数が47個という可能性が残るからガウス環の因数分解の理論など使っても“解の最小値”を調べるのに対して役に立たないと言ってる
大体この手の問題は
「なんでもいいから一つ構成する方法探せ」

「解の最小値求めよ」
では問題の性格がまるで違ってくる
単に解構成するだけなら色んな方面の色んな知識使って色々なアプローチが出てくるけど、「最小値求めよ」にした途端に本質的に総当たりしか無くなってしまうことが多い
まぁ計算機持ち出す場面って大概それしか方法がないときだからそれはそれでいいんだけど、このスレででかい数字で総当たりしか手がない問題で、とても個人所有のパソコンでは手が出ない領域の問題出されると途端にレス止まってドッチラケになってしまう
356デフォルトの名無しさん
2021/10/29(金) 12:54:37.67ID:6VyB6+e8
もとの問題が解けるかは別にして、
任意の自然数a,b,cdに対して
(cx+a)^2 + (cy+b)^2 =d
の解個数を高速に求めるかが大事とおもうが
357デフォルトの名無しさん
2021/10/29(金) 13:23:14.96ID:hHWRsPnj
お題: 重力加速度が1、空気抵抗が0.2、ボールの質量が1、ボールのベクトルが(x, y)=(3, 1)だったとき
高さHからボールを落とした場合のボールのバウンド回数を算出しなさい
358デフォルトの名無しさん
2021/10/29(金) 15:02:23.80ID:gWArxJUi
抗力
https://ja.m.wikipedia.org/wiki/%E6%8A%97%E5%8A%9B
359デフォルトの名無しさん
2021/10/29(金) 16:10:26.75ID:1t708P0q
バウンド回数って無限回
360デフォルトの名無しさん
2021/10/29(金) 16:10:46.78ID:1t708P0q
になるんじゃないの?(途中で書き込まれてしまった)
361ハノン ◆QZaw55cn4c
2021/10/29(金) 18:49:54.55ID:3iG6tyfE
>>360
そうそう、収束値を求めるのなら、バウンドしなくなる点の発射点からの距離にしたほうがいいのでは?
つゼノンのアキレスと亀のパラドックス
362デフォルトの名無しさん
2021/10/29(金) 18:58:39.05ID:q+AKOZXy
てか空気抵抗が0.2って>>358の公式における何が0.2なん?
床での反射は完全弾性衝突なんやろな
空気抵抗は考えるのに衝突時のロス考えんのはなんだかなぁだけど、そこはともかく“空気抵抗0.2”をどう立式すればいいのか調べてもわからんのだけど
363デフォルトの名無しさん
2021/10/29(金) 19:45:45.04ID:ZtEOqLMN
>>357
エントロピーを考えさせたいのなら粘性とかの情報が足りないし、
打ち切り誤差を考えさせたいのなら精度の情報が足りない。
364デフォルトの名無しさん
2021/10/29(金) 20:47:20.06ID:II19q38d
単位がないからどうとでも答えられるわ
365デフォルトの名無しさん
2021/10/29(金) 21:49:53.51ID:1t708P0q
単位とかの問題ではないと思う
366デフォルトの名無しさん
2021/10/30(土) 09:59:33.72ID:gRDEN/XN
バウンド回数をHとgで表せっていう意味ならそれなりの数式は出るだろうけど
Hに関わらず無限大だろうってのが答え
367デフォルトの名無しさん
2021/10/30(土) 10:52:04.30ID:jJEez0C7
終了
368デフォルトの名無しさん
2021/10/30(土) 11:45:13.50ID:a9WSKAoR
GUI造るお題もアリ?
369デフォルトの名無しさん
2021/10/30(土) 11:48:13.10ID:B9HlTkoz
ダメってことは無いんじゃない?
370デフォルトの名無しさん
2021/10/30(土) 17:28:39.70ID:0q4JizrL
GUIでも何でも良いけどGUIはこちらで試す時に面倒。というかGUIだと多分やらないでソース眺めてフーンとなるぐらいかな。
ソースをコンパイル、実行して試せるようなサイトでGUIも出来るような所があれば良いんだけどね。そういう所ある?
371デフォルトの名無しさん
2021/10/30(土) 17:30:20.58ID:Zd9OnruO
今までは実行してたのか?
暇人
372デフォルトの名無しさん
2021/10/30(土) 17:41:23.59ID:BwSV3hMk
Pythonとか汎用性の高そうなGUIにしとけばいいかと、どれが一番いいかはしらんが
373デフォルトの名無しさん
2021/10/30(土) 18:14:32.40ID:Zd9OnruO
PythonにGUIなんか無いぞ
374デフォルトの名無しさん
2021/10/30(土) 18:18:52.22ID:0SZBWJnV
「Pythonとか汎用性の高そうなGUI」ここまでで大爆笑取れるな
375デフォルトの名無しさん
2021/10/30(土) 19:19:30.18ID:H3Il6ZC9
>>374
お前面白くない
376デフォルトの名無しさん
2021/10/30(土) 19:30:41.93ID:BwSV3hMk
GUIライブラリのことだが

PythonでGUIライブラリはどれがおすすめ?
Tkinter
「Tkinter」はPythonに標準的に組み込まれているGUIライブラリです。
シンプルな文法と起動の速さが評価されており、Pythonにおけるもっとも基本的なGUIライブラリとしての立ち位置を築いています。

Kivy
近年、PythonのGUIライブラリの中でもっとも人気が高いものが「Kivy」です。
Kivyは、PythonでGUIのプログラムを作るためのオープンソースのライブラリで、Android、iOS、Linux、MacOS、Windowsなどの多くのOSで動作するため、汎用的に利用することが可能です。
KV言語というGUIのレイアウトを作成する言語が用意されており、直感的な記法で簡単にレイアウトを指定できるのが特徴です。

PyQt
「PyQt」は、Pythonを使ってGUIアプリケーションを作るためのフレームワークの1つです。
多くのソフトが作られており、比較的モダンな設計と、GUIのデザインを美しく作りやすいことが評価されています。

wxPython
「wxPython」は「wxWidgets」という「C++」と書かれたクロスプラットフォームGUIツールキットがあり、wxPythonはそのPythonバージョンです。
wxPythonは洗練されたAPIと豊富なライブラリが特徴であり、安定した動さが評価されています。
https://techplay.jp/column/552
377デフォルトの名無しさん
2021/10/30(土) 19:39:14.98ID:BwSV3hMk
こんなのがあったんだな


【Python】ttk:tkinterと比べた各ウィジェットの外観と機能面の違い
よりオシャレでモダンなGUIアプリを作成するならttkを使うのがお勧めです。
商用向けにGUIアプリの開発を進めている方や、社内向けアプリの場合でもユーザーインターフェースを良くしたい方は必ずチェックしておいてください。
https://office54.net/python/tkinter/tkinter-ttk-difference


Tkinterで使われるttkって?Tkinterとの違いを交えて徹底解説!?
今回はTkinterで使われるttkに関して、Tkinterとの違いを交えて徹底解説いたします。そもそもttkとは何か知りたい、Tkinterとttkの違いを学びたい方へおすすめです。
https://kuroro.blog/python/L9hqzwxZAx0soqSmI8zE/
378デフォルトの名無しさん
2021/10/30(土) 19:52:06.16ID:nIglmucm
お題:群論・有限群の分類

正の整数 n を与えたとき n を次数とする有限群のすべてを順次出力せよ。
ただしすでに出力された群の「準同型」は出力してはならない
n 次の有限群の要素は {k|k∈N, 1 <= k <= n} で表現せよ
この作業を「有限群の分類」と称するが、n をどこまで大きくできるか、各自の環境で試みよ

期限:2022年4月1日

準同型の定義は適切な参考書…①を参照さられたい、が、以下に概略を記述する
例えば 2 次の有限群として G1=
1 2
2 1
およびG2=
2 1
1 2
があるが、この二つは 
「G1の 1 を 2 に置き換え、G1の 2 を 1 に置き換えて新たなG を作る」
というG1→G の変換 f によって G=G2 となる、すなわち f(G1)=G2
このような変換 f が存在するとき、G1、G2 は準同型であるという

①:「ガロア理論の頂を踏む」石井俊全/ベレ出版 2013年
379デフォルトの名無しさん
2021/10/30(土) 19:55:13.98ID:Zd9OnruO
昔授業でやった
手作業で分類
380デフォルトの名無しさん
2021/10/31(日) 01:34:58.60ID:hGI7wBpw
GUI は皆が知っている、HTML, CSS, JavaScript だけ

それ以外は、ダメ
381デフォルトの名無しさん
2021/10/31(日) 11:02:55.76ID:dKAtRzTx
GUIで出題すると仕様が発散する
382デフォルトの名無しさん
2021/10/31(日) 11:39:19.72ID:2xPpBnWz
他の人の答え見ても走らせられないからおもんない
383デフォルトの名無しさん
2021/10/31(日) 13:24:46.17ID:+JknqnCD
>>380
Win32, Androidが抜けてる
384デフォルトの名無しさん
2021/11/01(月) 00:58:32.75ID:6HuVbq6K
>>371
>>1に書いてあるサイトだとブラウザで開くだけで実行されるじゃない。
385デフォルトの名無しさん
2021/11/04(木) 13:45:51.05ID:D1F18vfo
お題:GUIのカウントチャレンジを作れ
ボタンを押すとタイマーがスタート
もう一度ボタンを押すとタイマーがストップ
タイマーが10秒きっかりだったら「You win!」と表示
それ以外は「You lose!」と表示
現在のタイマーの値は表示しない
386デフォルトの名無しさん
2021/11/04(木) 13:55:48.22ID:iRkMc3Gk
387デフォルトの名無しさん
2021/11/04(木) 19:19:30.28ID:kwdxsWVQ
>>385 Ruby & MS-Windows
https://ideone.com/iVR6dY
388蟻人間 ◆T6xkBnTXz7B0
2021/11/04(木) 19:45:56.66ID:HOYEg+v3
お題: 与えられたn個の英単語群をすべて連結したクロスワードを作成できるか否かを判定せよ。クロスワードのサイズは自由とする。

入力例1: password, sword, animal, living
出力例1: すべて連結可能です。

入力例2: apple, zoo, grape
出力列2: 連結できない単語「zoo」があります。
389デフォルトの名無しさん
2021/11/04(木) 21:03:28.99ID:SLvu/urJ
はい次
390蟻人間 ◆T6xkBnTXz7B0
2021/11/04(木) 22:30:42.52ID:HOYEg+v3
>>386>>389
外野は試合の邪魔しないで
391デフォルトの名無しさん
2021/11/04(木) 22:33:47.55ID:SLvu/urJ
>>390
お 前 は 内 野 じ ゃ ね え よ
392蟻人間 ◆T6xkBnTXz7B0
2021/11/04(木) 22:35:04.55ID:HOYEg+v3
>>391
くやしいの?
393蟻人間 ◆T6xkBnTXz7B0
2021/11/04(木) 23:12:02.85ID:HOYEg+v3
現実の問題は競プロの問題よりも難しいかも知れない。教科書に書いてないような解決策を要求される。
競プロの問題が欲しいなら、ここよりも競プロへ行ってくれ。ここはそういう場所ではない。
394蟻人間 ◆T6xkBnTXz7B0
2021/11/05(金) 18:24:25.98ID:lMRXWOVz
数学の組合せの問題か。まず文字の組合せから。ある単語Xのすべての文字が他の単語にないならその単語Xは連結ではない(自明)。ひとつのセルは二重に交差点になることはできない(自明)。
ある単語Xが連結でなければ、単語X上の任意の文字位置は交差点にはならない。
395蟻人間 ◆T6xkBnTXz7B0
2021/11/05(金) 18:33:11.14ID:lMRXWOVz
次はクロスワードの組合せ。有限でサイズ変更可能な二次元配列によりクロスワードの盤を再現する。各要素はアルファベットか黒マスかハテナ(?)である。
文字の組合せにおいて最も接続数の多い単語を最初に盤の真ん中に置く。さらに単語の両端に黒マスを置く。次に接続数の多い単語と既に盤に置かれている単語の交差点を考えるわけだが、
交差点の位置により場合分けすると考えやすい。
396蟻人間 ◆T6xkBnTXz7B0
2021/11/05(金) 18:35:46.93ID:lMRXWOVz
そして配置のすべての組合せを再帰により網羅する。交差点が見つからない単語があれば失敗。というわけだ。コーディングに入ろう。
397デフォルトの名無しさん
2021/11/06(土) 03:47:56.08ID:8BMCwFko
>>385
Kotlin
https://paiza.io/projects/Hq-JXeNo2ZQgGbLORbCJpA

GUI は java.awt ライブラリを使うように書いてある。
当然の事ながら、paiza.io のサイト上では動かない。
動かしたい人は IntelliJ Idea で Kotlin のプロジェクトを作ってソースコピペして実行させるか、
またはコマンドライン環境で kotlinc コマンドでコンパイルして kotlin コマンドで実行する。
398蟻人間 ◆T6xkBnTXz7B0
2021/11/06(土) 23:49:16.09ID:xVqAQy13
交差点になり得るセルの位置を記録して可能ならばマイナス方向にもサイズを拡張すべきことがわかった。
399デフォルトの名無しさん
2021/11/07(日) 15:24:13.73ID:qfuan/oU
document.querySelectorAll('span.name').forEach(e => {
    if(e.innerText.indexOf('蟻人間') >= 0){
        e.parentElement.parentElement.style.display = 'none';
    }
});
40096
2021/11/08(月) 17:48:34.31ID:+3VBQOCX
>>378
これか…
https://math.jp/wiki/%E6%9C%89%E9%99%90%E7%BE%A4%E3%81%AE%E5%88%86%E9%A1%9E%28%E4%BD%8D%E6%95%B01~100%29
プログラム化する以前に、解法を理解・考えることが難しいお題だな
401蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 22:31:17.08ID:8X+AtsKK
エアプレイじゃなくてちゃんとやっているぜ。
https://github.com/katahiromz/crossword_generation_test
402デフォルトの名無しさん
2021/11/08(月) 22:34:01.71ID:sIrE8Ymr
>>401
クソじゃん
403蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:09:09.26ID:r2YqBk6E
>>402
どの辺が●ソか解説よろ。
404デフォルトの名無しさん
2021/11/08(月) 23:19:34.67ID:sIrE8Ymr
金を払うなら教えてやってもいい
405蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:25:16.81ID:r2YqBk6E
>>404
銀行振込3000円でいいか? メールで連絡よろ。
katayama.hirofumi.mz@gmail.com
406蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:35:25.59ID:r2YqBk6E
どうせ
printf使うなstd::cout使え、だろう?
407蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:41:38.46ID:r2YqBk6E
確かにここはstd::pairじゃない方がいい。
他には?
408蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:46:44.17ID:r2YqBk6E
ヘッダーオンリー・テンプレート使用はバイナリサイズが大きくなりがちだから避けるべき。それから?
409蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:48:18.18ID:r2YqBk6E
なるほど。ありがとう。
410デフォルトの名無しさん
2021/11/08(月) 23:49:02.87ID:sIrE8Ymr
どういたしまして。
じゃあ、振り込み宜しく
411蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:51:18.07ID:r2YqBk6E
チャリンチャリン。ガシャ。振り込み完了。
412蟻人間 ◆T6xkBnTXz7B0
2021/11/08(月) 23:57:31.64ID:r2YqBk6E
std::promiseを使うべき。だがやり方がわからん。
413蟻人間 ◆T6xkBnTXz7B0
2021/11/09(火) 00:09:04.79ID:lgtaApb2
お題: 計算時間が予測できない時間のかかる計算について、複数スレッドを立ち上げていずれかのスレッドで答えがセットできたか、キャンセル操作があれば、スレッドを終了して可能ならば答えを取得する。スレッド開始と終了、答えに対してメッセージを出力せよ。
言語: C++11以降 std::threadとstd::promise使用。
414デフォルトの名無しさん
2021/11/09(火) 00:58:40.89ID:coKFHwlH
いらっしゃいマシーンのプロミス
41596
2021/11/09(火) 03:16:48.15ID:Fkau/hlA
OpenMPやithreadじゃだめなのかよ
416デフォルトの名無しさん
2021/11/09(火) 04:39:18.77ID:qOqV7S2Y
お題で言語まで指定されんの?宿題スレに貼ってくれば
417デフォルトの名無しさん
2021/11/09(火) 16:49:52.57ID:EFAwjHPG
もうすぐポッキーの日
[お題] 人口合計で1がらみの数字遊び

URLのページに都道府県別の人口が載っている。
 URL: https://ideone.com/msZUeW
 今回使用するのは、2020/10のデータ

 同じ県は一回のみで、異なる県を 11 県選らぶ。
 (単純な選び方は全部で 47C11 = 約174億通り)
 選択した11県の人口合計を 111111 (11万1111) で割った時、
 余りが 1111 になるのは何通りあるか?
 
 また、その条件で(剰余でなく生の)のべ人口合計は何人か?

※一発正解問題、実行時間2秒程度。
※ちなみに 2015/10データだと 156561 通り(のべ 4656362060856 人) だった。
418デフォルトの名無しさん
2021/11/09(火) 21:20:25.70ID:l7cbb8DO
>>417
https://ideone.com/MusJV7
Cだけど遅い
419デフォルトの名無しさん
2021/11/10(水) 00:24:34.22ID:BKretcyA
111111×11の配列のやつやな
420デフォルトの名無しさん
2021/11/11(木) 01:43:34.66ID:rg6AJXmO
侍エンジニアリングつーサイトの講師やりませんか?というお誘いが来た。
下準備が結構必要っぽいのに時給は生徒と応対している時のみの2000円/hだそうだ。
結局時給1000円くらいやん。
ふざけとるわ。
421デフォルトの名無しさん
2021/11/11(木) 09:52:21.62ID:SpIFedoW
生徒と応対して連絡先交換
あとは中抜き回避で青天井
422417
2021/11/11(木) 15:33:20.12ID:226d0X5M
>>417

回答者(>>418)が言うところの"遅い解法"ががほぼ想定解。
 https://ideone.com/msZUeW 下部に追加記入

解法については、"部分和問題 数え上げ"でググって調べて


別解としては早い言語なら、さらに遅い"半分全列挙"でも間に合う。
(大雑把に(24*2^24)*2 <1億なので、c++で試したら1秒強だった)
423デフォルトの名無しさん
2021/11/11(木) 16:01:48.26ID:aldiYpmV
>>422見てなんで>>418が遅かったか分かった
無駄な掛算やってたからだった
配列の並び直したら4倍速くなった
https://ideone.com/vwPpAn
424デフォルトの名無しさん
2021/11/11(木) 16:02:43.51ID:aldiYpmV
掛算じゃなくてメモリの連続性かも
両方かな
425蟻人間 ◆T6xkBnTXz7B0
2021/11/11(木) 21:32:16.11ID:3Uao5x0L
お題:与えられたテキストの中のURLをすべて置き換える。

https://【...】

https://jump.5ch.net/?【...】
426デフォルトの名無しさん
2021/11/11(木) 21:50:43.06ID:PBlMMjPy
427デフォルトの名無しさん
2021/11/11(木) 21:53:39.37ID:39WaJBCl
>>425
URLとなる文字列の定義も知らねえで糞みたいな問題出すなよダニ野郎
428蟻人間 ◆T6xkBnTXz7B0
2021/11/11(木) 21:57:33.27ID:CgY0hHY1
>>427
URLにマッチする正規表現使えばええやろ、チャチャとやれよ。
429デフォルトの名無しさん
2021/11/11(木) 21:58:05.03ID:39WaJBCl
URLにマッチする正規表現(笑)
43096
2021/11/11(木) 23:57:38.62ID:JHz34AMz
>>425 Perl5、たまにはお相手して進ぜよう。5chの仕様に従うと↓こうだと思うが…

$uri = 'https://www.google.com/search?client=firefox-b-e&;q=%E8%9F%BB%E4%BA%BA%E9%96%93+%E3%83%8F%E3%82%B2';
use URI::Split qw(uri_split uri_join);
@a = uri_split($uri);
$a[1] = 'jump.5ch.net';
$a[2] = '/';
$a[3] = $uri;
print uri_join(@a), "\n";
431デフォルトの名無しさん
2021/11/12(金) 20:37:34.22ID:Y4pYQLN1
”2021”というフォルダがある
"2020"というフォルダもある
 :
"1950"というフォルダもある
そしてそれぞれに"01"~"12"のサブフォルダがあって
そしてそのそれぞれに"01"~"31"というサブフォルダがあって
更に"00"~"23"という・・・・

つまり、1時間ごとのフォルダがあって
そこには多くのファイルが詰まっている

そのファイルのタイムスタンプに変化があったら
「どこのファイルが書き換えられたぞ」と検出するプログラムを作りたい
片っ端からタイムスタンプを調べるしかないのか
これはファイルシステムの問題でしょうが
なんとか、前回調べてから変化があったか、短時間で検出できる方法はありませんか

ファイルに変化があったら、フォルダのタイムスタンプを変えてくれればいいんだけどね
432デフォルトの名無しさん
2021/11/12(金) 21:45:17.50ID:gsBkkV8P
そういう検出機能はOSかハードウェアかについてなかったか 忘れたが
433デフォルトの名無しさん
2021/11/12(金) 21:49:29.72ID:gsBkkV8P
NTFSの USN とは?
USN ジャーナルとは
NTFSのUSN機能とはNTFSボリュームに対しての変更の記録です。
Cドライブ、Dドライブ、Eドライブごとなど、ドライブごとに加えられた変更を記録したものです。

USNとはUpdate Sequence Number Journalの略称です。
主に以下の目的で使用されます。
・FRS(File Replication Service)によるファイル複製時の差分洗い出し。
・スナップショットバックアップ時の差分洗い出し。
・ウィルス対策ソフトによるファイル検査。
・インデックスサービス向け。

http://tooljp.com/qa/what-is-USN-36BE.html
434デフォルトの名無しさん
2021/11/12(金) 22:31:42.38ID:M7lyd7nj
Ruby では、文字列の中から、URL を抜き出す関数が非推奨になった。
頻繁に規格が変わるからかな?

正規表現でも多分、何万行も掛かる。
作るのに10年ぐらい掛かるので、誰も作らない

今あるものでも、正しく判定されるかどうか、分からない
435デフォルトの名無しさん
2021/11/12(金) 22:39:57.54ID:M7lyd7nj
>>430
5ch のバグで、

そのURL をプログラム板全体で見た時は、&q とつながっているのに、

個別のスレッドで見ると、&;q と、&の直後に、;が入って、
リンクが&までになってしまう
436デフォルトの名無しさん
2021/11/13(土) 02:42:42.42ID:p75HzwR9
>>433
ドライブごとに加えられた変更がログに保存されているとは知りませんでした
データドライブに分けているので、ログから探すのも速いかもしれません
ありがとうございました
437デフォルトの名無しさん
2021/11/15(月) 00:16:09.47ID:Xr7xQZWT
お題: JSON形式のテキストをXML形式のテキストに変換しなさい
438デフォルトの名無しさん
2021/11/15(月) 21:06:19.54ID:L/+dWr8R
>>437 C++
https://ideone.com/vkSCmj
439デフォルトの名無しさん
2021/11/23(火) 21:56:09.59ID:WrxNeBf5
age
440デフォルトの名無しさん
2021/11/24(水) 11:45:59.40ID:kXzWnsgO
ideone って boost は include 出来るのか
codepad はずっと落ちてるな
441ハノン ◆QZaw55cn4c
2021/11/24(水) 20:41:27.64ID:CmhCtKru
>>440
もう codepad はおしまい、codepad にアップした私のコードも永遠に失われました…
44296
2021/12/02(木) 04:03:51.64ID:EE6BdDDo
元のソースをローカルに保存しておかなかったのか
443デフォルトの名無しさん
2021/12/02(木) 12:54:02.17ID:adrEDszf
短いもんだから直接打ち込んじゃったんじゃないかな。
そして消滅。
444デフォルトの名無しさん
2021/12/02(木) 16:48:13.78ID:BMPRSKoA
>>442
デスクトップで書いたものはローカルのどこかに残っている(と思う)
ノートで書いたものはノートPCごとどこかにいってしまった…
いや、まあ、最初から書き捨てでしたけど、惜しいと思うものも多少ありますね
44596
2021/12/02(木) 21:30:16.60ID:m0u4nXXp
いま
http://codepad.org/
復活してない?

サンプルURLとして前々スレの過去の回答

プログラミングのお題スレ Part18
http://2chb.net/r/tech/1594702426/174
>174 名前:デフォルトの名無しさん[] 投稿日:2020/08/04(火) 19:24:17.96 ID:lImhU2CT
> >>173
> あーアホだったw
> タブ消去の仕様だとPythonだと分けわからんことになるなw
> ↓貼り直した
> http://codepad.org/BWRzr8fW
> ※会員未登録の為、一定期間後に自動消去

も表示されたし。

保持しておきたいcodeがあれば今のうちにsaveするか、
Internet archiveに記録しとくのも手だよ。
446デフォルトの名無しさん
2021/12/08(水) 14:07:00.92ID:Bws6ftLO
お題が出なくなったので全く実用性がないと思われる頭の体操的なやつを一つ。

お題: 与えられた数値の配列の 1 になっているビットをカウントする。

例えばC言語で unsigned char の配列とか使って、処理する関数はポインタで渡された所から何要素みたいに指定されるようにする。。

それで例えば 0xde, 0x96 (11011110, 10010110) なら答えは 10。
447デフォルトの名無しさん
2021/12/08(水) 17:14:42.64ID:vDqYU7cZ
.replace("0", "").length
448デフォルトの名無しさん
2021/12/08(水) 17:44:20.69ID:/InaUbpT
お題: 日付が与えられるので4月ならtrueを出力しなさい

< 2021/04/01
> true

< 04/01
> true

< 2021/04
> true

< 2021/05/01
> false
449デフォルトの名無しさん
2021/12/08(水) 19:09:00.93ID:nFeiLLyh
>>446
最適なコードが環境に大きく依存するからなあ
シフトの速度とか専用命令有無とか

あまり良いお題じゃないし荒れそう
450デフォルトの名無しさん
2021/12/09(木) 05:41:43.04ID:8cQ3P39Q
英式 1/4/2021
米式 4/1/2021
451デフォルトの名無しさん
2021/12/09(木) 08:53:58.33ID:FBbu4srV
日 21/04/01
米 04/01/21
欧 01/04/21
年2桁で入り乱れたら更にわけわかめ
452デフォルトの名無しさん
2021/12/09(木) 13:38:41.08ID:ZoIDn0OR
逆に、年2桁の時は、
その数値で年月日が特定できるか問題があった。

02 12 29 --> 12年02月29日 と 29年02月12日 の2通りがある
02 13 29 --> 13年02月29日はないので、29年02月13日のみ
453デフォルトの名無しさん
2021/12/09(木) 13:44:59.59ID:ZoIDn0OR
>>452
特定できるかどうかだけならいいが……
反例を間違った 02 12 29 3通りある
454デフォルトの名無しさん
2021/12/09(木) 14:42:16.44ID:b/vm8aBu
そういえば食品の賞味期限がどう読んだらいいか分からなかったことがあったなあ。

11/02/13

2013年2月11日なのか、それとも2013年11月2日なのか、まさか2011年2月13日だったりしたらどうしよう、みたいな。
普通に輸入されているものなら日本語ラベルがあるから分かるだろうけど、友達が現地のお土産屋で買ってきた
お菓子みたいなものだとそのまんまだったりする(まあ、アメリカかアメリカ以外かで考えればだいたいは大丈夫
なのかも知れないが)。
日本の元号みたいな独自年号まで使われているのが混在していたら余計に分からないよな。今の日本では
あまりないだろうけど昭和の頃はあったような気がするなあ。
455デフォルトの名無しさん
2021/12/09(木) 22:53:27.33ID:93rp7Kwc
>>446 Ruby

p [0b1110, 0b1010111].reduce(0){|s, n| s + n.digits(2).count(1)}

# => 8
456デフォルトの名無しさん
2021/12/09(木) 23:18:40.40ID:2ghuDZG2
>>446
https://ideone.com/qmIeDU
457デフォルトの名無しさん
2021/12/10(金) 00:33:54.80ID:Uh57IFJZ
>>446
C
https://paiza.io/projects/YQ8ORfELqUt1xkKqmysViQ

入力を配列に入れてからカウントさせている。(uint32_t 型の配列)
カウント部分は>>456に似てる。しかし最初に引くのは思いつかなかった。
458デフォルトの名無しさん
2021/12/10(金) 01:03:30.79ID:Uh57IFJZ
>>448
Perl
https://paiza.io/projects/o4VTdU_kK-S8T4G5HvkIRw

年月日順で年がある場合は必ず4桁でなければならない。
4だけでも4月に判定されるが、まあいいか。
459デフォルトの名無しさん
2021/12/10(金) 09:12:55.36ID:rDACCx1y
>>446

Haskell

sumCntBits = id
. length
. filter odd
. ( >>= ( takeWhile ( /= 0 ) . iterate ( flip div 2 ) ) )

main = do
print $ sumCntBits [ 0xde, 0x96 ]
print $ sumCntBits [ 0x12345, 0x6789a,0xbcdef ]

----
10
32
460デフォルトの名無しさん
2021/12/11(土) 11:47:37.10ID:kARxTGM3
>>446 rust
https://ideone.com/9yFeU3
fn main() {
let f = |a: &[u32]| a.iter().map(|n| n.count_ones()).sum::<u32>();
println!("{}", f(&[0xde, 0x96]));
}
461デフォルトの名無しさん
2021/12/11(土) 20:38:05.35ID:LF8J+dNV
>>446
Kotlin
https://paiza.io/projects/7hQyycMNf5nuV5HcBg6iQg

普通に作るのは出尽くした感があるのでちょっと変わったやり方にした。
入力から Int の List を作り、それを 1 ビットづつの Boolean のリスト(というか Iterator) にしてから true のみをカウントしている。
462デフォルトの名無しさん
2021/12/11(土) 22:30:09.92ID:LvGvT7a1
>>446 octave
https://ideone.com/BNjv3I
f = @(a) sum(dec2bin(a)(:) - '0');
f([0xde 0x96])
463デフォルトの名無しさん
2021/12/14(火) 17:40:23.45ID:kbrFI/m0
もうすぐ、2022年
[お題] 2022は"x3y1数"(造語)?

以下の二つを満たす正の整数を"x3y1数"と呼ぶ
・各桁の数値が、二種類のみの数字からなる
・上の二数の個数比は 3:1

 該当例:1112, 2212, 2022, 32222223, 999999999888
 ダメな例:2213(種類), 4444(種類), 33232(個数比), 0222(先頭ゼロ)

 整数A,Bが与えられる。A以上B以下の"x3y1数"はいくつあるか?
 制約: 0 < A <= B <= 10^18

1) 2923 3311 --> 8
  該当は [2999, 3000, 3033, 3111, 3133, 3222, 3233, 3303]
2) 2021 77977796 --> 2022
3) 3000 6666566566566555 --> ?
4) 999999999889 1000000000000110 --> ?
5) 1 1000000000000000000 --> ?

※実行時間:上の5問をクエリーとし全部を2秒程度
464デフォルトの名無しさん
2021/12/16(木) 03:59:00.84ID:p3cQ7gqk
お題:自分用double-double演算ライブラリ
最低限、通常のdoubleとの相互変換は可能であること。それに加えて、
1)加減算
2)加減算 + 乗算
3)四則演算
数字が大きいもの程上級者向けです。

演算子のオーバーロードなどは任意とします。
465デフォルトの名無しさん
2021/12/16(木) 07:13:07.04ID:iDMhxZSI
>>464
多倍長演算ライブラリ、のことですか?
466デフォルトの名無しさん
2021/12/16(木) 07:37:15.94ID:I1MQqoQo
>>465
アホ
467デフォルトの名無しさん
2021/12/16(木) 20:36:30.04ID:teZIL57B
>>463 c
https://ideone.com/SjWUYZ
・数字を数えて判定
・範囲内の全ての整数をチェック
・想像以上に遅くてダメだった

>>463 ruby
https://ideone.com/JYQPIF
468デフォルトの名無しさん
2021/12/16(木) 20:39:48.12ID:iDMhxZSI
>>466
double の演算を自分で実装するという意味ですか?
sum(double, double)
diff(double, double)
mul(double, double)
div(double, double)
を自分で実装する、という話でいいですか?
あと double のフォーマットは IEEE754 でいいですか?
469デフォルトの名無しさん
2021/12/16(木) 20:57:05.50ID:Y2CVy/MB
問題が説明不足では?
470デフォルトの名無しさん
2021/12/16(木) 21:53:18.15ID:B45/3FnD
お題: テキストを読み込みそれをクリスマスツリーにして出力しなさい
クリスマスツリーに見えれば形は自由とする

入力

本日は良いお日柄ですね

出力

___本
__日は
_良いお
日柄です
___ね
471デフォルトの名無しさん
2021/12/16(木) 22:32:14.13ID:iDMhxZSI
>>470
文字コードは何を仮定すればいいのですか?
472デフォルトの名無しさん
2021/12/16(木) 22:34:05.93ID:B45/3FnD
>>471
UTF-8
日本語の扱いが難しい言語では英語のみの対応も良しとする
473デフォルトの名無しさん
2021/12/17(金) 00:19:35.20ID:6Xap9yRK
>>470 octave
https://ideone.com/RseGCJ
474デフォルトの名無しさん
2021/12/17(金) 04:20:32.14ID:QblDDO27
二種類のみの数字からなり個数比は 3:1
引数の範囲は 1-10^18 = 1001-9999999999998888(16桁)
以下の範囲に限られる
1000-9998
1000 0001-9999 9988
1000 0000 0011-9999 9999 9888
1000 0000 0000 0111-9999 9999 9999 8888

「二種類のみの数字からなる」を計算式で判定する方法ある?
475デフォルトの名無しさん
2021/12/17(金) 05:36:58.41ID:5DT5Lvck
1([\d&&[^1]])\1{2} 最上位桁が比1
111[\d&&[^1]],11[\d&&[^1]]1,1[\d&&[^1]]11 最上位桁が比3
一般化 (\d)(?!\1)(\d)\2{2}|(\d)\1{2}(?!\1)\d|(\d)\1(?!\1)\d\1|(\d)(?!\1)\d\1{2}
4桁ならこれでもいいけど8桁以上になると複雑化するし
地道に数えるより 4の倍数桁,数字2種,比率1:3 のルールで生成する方が速そう
476463
2021/12/17(金) 16:22:06.93ID:ssQAe3ef
>>463
 https://ideone.com/xTDtME

 想定解は、事前に4,8,12,16桁の"x3y1"数を全列挙して作っておく。
 プログラミング的には、各言語の順列や組合せを使って、作れるだろう。
 (想定解例では組合せは2ベキとpopcountから作っている)

 「それは、全列挙数が小さいとわかっているからでは..?」に対して
 プログラムで出すのなら、雑に最も大きい16桁が4つあるとして計算
  10P2 * 16C4 * 4 < 70万 なので、全列挙可能
 まじめに計算すると 10P2 * (16C4 + 12C3 + 8C4 + 4C1) * 9 /10 = 167,832

 列挙済みならば、クエリー5件程度なら、16.7万*5 チェックで間に合う。
 ちゃんとやるなら、ソートして二分探索すれば、数千単位のクエリーに対応できる。
 (想定解例では後者でやっている)
477デフォルトの名無しさん
2021/12/17(金) 20:17:58.00ID:gjoWWzuf
>>468
>>466
478467
2021/12/17(金) 20:31:12.28ID:llvCqHRj
>>463 c
https://ideone.com/bmYThw
・Ruby版の移植
・組み合わせの列挙方法は丸パクリ
・Ralph William Gosper Jr. 氏に感謝
479デフォルトの名無しさん
2021/12/17(金) 23:34:29.99ID:llvCqHRj
>>463 c
https://ideone.com/oPUphG
>>478から若干の整理
・組み合わせ列挙用バッファ廃止
480デフォルトの名無しさん
2021/12/18(土) 16:20:56.22ID:b+l2srj7
>>464 C++
https://ideone.com/tkSsy4
481464
2021/12/18(土) 16:29:44.66ID:ElKfLkKB
>>465
惜しい

>>468
IEEE754の倍精度(binary64)を整数演算で実装するのではありません。
binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
double-double演算です。

Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
482デフォルトの名無しさん
2021/12/18(土) 16:50:56.06ID:XqEkP9jw
> Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
一般的な用語じゃないんだから初めからこれ書いとけよ
483465,468
2021/12/19(日) 00:01:36.35ID:eP9zS7VQ
>>481
I see.
484デフォルトの名無しさん
2021/12/19(日) 21:10:50.32ID:wQiNAkF9
>>448 octave
https://ideone.com/2NglYm
485デフォルトの名無しさん
2021/12/21(火) 19:32:25.39ID:FcpxpynD
128ビットあるのに106ビットしか使わんの?
もったいなくね?
486デフォルトの名無しさん
2021/12/21(火) 19:47:17.61ID:1JACqwUF
素人はだまってろ
487デフォルトの名無しさん
2021/12/21(火) 21:17:48.02ID:cWMYIacO
>>485
もったいなよ
ただ、既存のdouble計算リソースが使えるという利点がある
488デフォルトの名無しさん
2021/12/22(水) 04:27:38.39ID:5fCeD7fV
double-doubleはFMAがFMAとして役立つ数少ない用途だな
積和じゃなくて3個の和のfused命令も欲しくなる
489デフォルトの名無しさん
2021/12/23(木) 07:32:47.64ID:Xd/JFvMa
お題: 1つの整数から規則性のある複数の整数を生成せよ
生成される整数は再現性がなければならない
490デフォルトの名無しさん
2021/12/23(木) 07:37:01.70ID:GwakKG68
>>489

function f: Integer -> Integer{
return 0;
}
491デフォルトの名無しさん
2021/12/23(木) 09:01:28.76ID:S2rGJ6tV
>>489 Ruby
def sequence( seed, number )
srand( seed )
Array.new( number ){ rand(100) }
end

p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
492デフォルトの名無しさん
2021/12/23(木) 19:26:32.49ID:KAa76evj
>>486 ocaml
https://ideone.com/NzF5f2
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
493デフォルトの名無しさん
2021/12/23(木) 19:27:19.05ID:KAa76evj
>>489 ocaml
https://ideone.com/NzF5f2
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
494デフォルトの名無しさん
2021/12/24(金) 17:16:46.67ID:Xt+LQVaD
>>488
Juliaのhypot()でもFMA使ってますです
495デフォルトの名無しさん
2021/12/24(金) 22:51:57.83ID:Y/w+woHG
>>494
ただ積と和を1命令にして高速化しただけの積和
の効果だけじゃなくて
融合(fused)の効果が効く用途の話
496デフォルトの名無しさん
2021/12/25(土) 03:52:36.33ID:62MjaTIU
>>489
Kotlin
https://paiza.io/projects/xmMY6y8BGb8zlhn5QEmKvQ

何も考えずにただ Random 使っただけ。
497デフォルトの名無しさん
2021/12/27(月) 20:25:00.12ID:7ybeEGfH
[お題] 平均が2022な素数数列

 5000以下のあい異なる素数で、加算平均がぴったり 2022 の数列を作る。
 数列の項数(要素数)を最大化する、最大はいくつか。
 最大数と数列を表示する。
 
※解答例(もちろん4以上がある)
 4
 [1747, 2099, 2113, 2129]
※実行時間は素数生成を含めて、4秒以内
 最大な数列は複数通りあると思うので、一例のみで
498デフォルトの名無しさん
2021/12/29(水) 15:58:08.20ID:czxFIFL7
答えは595個?
計算機+理詰めで595個っぽいけど
499デフォルトの名無しさん
2021/12/29(水) 16:38:34.79ID:cOaqDcVM
「Log4j」2.17.0にもリモートコード実行の脆弱性
500497
2021/12/29(水) 20:37:12.14ID:GN7CzEgH
>>497 c++
 https://ideone.com/UBbtWd

 "素数-2022"で適当に最大化DPすれば、合計0相当の所に答えが……。
 個人的には他の復元方法を見たかった。
 pythonは遅いのであきらめた(高速化方法を知らない)

>>498
595個でした。手作業でできるレベルなら……
501デフォルトの名無しさん
2021/12/29(水) 22:36:34.62ID:d+UhR9Ru
オレがやったのは
p[n]をn番目の素数、
P[n]をn番目までの素数の集合、
s[n]をP[n]の和
a=2022として
まず素数のn元集合で平均が1番小さくなるのはP[n]でその平均値s[n]/nは単調増加だからs[n]/n>aの時元数n以上の解はない
s[596]/596>aは計算機で確認
なので595元集合で解があればそれが最大
s[595]/595<aなのでP[595]はダメ
s[596]-595a = 1205525 - 1203090 = 2435は素数ではないのでP[597]から一個消すのはダメ
s[597]-595a = 1209898 - 1203090 = 6808 はp597=4373以下の素数2459,4349の和で表すことができる
よってP[597]\{2459,4349}の和は595aとなる
完全に全自動で探索するプログラムも作れそうだけど答え出たらもういいかなと手が止まってしまった
502デフォルトの名無しさん
2021/12/30(木) 12:24:49.52ID:sGmJGaqc
何個取り除いたら平均2022にできるか考えると
確か74個だったけな?
JavaScriptで1秒もかかんなかったか
503502
2021/12/30(木) 12:30:19.06ID:sGmJGaqc
表示時間除いたら1秒かかってないな
探索はほぼ一回でボトムまで到達して
発見された
504502
2021/12/30(木) 12:38:50.05ID:sGmJGaqc
可能と不可能が極端に分かれている問題なので
事前のブランチカットだけが重要なヘンなお題w
>>352はまだ未解決
505デフォルトの名無しさん
2021/12/30(木) 20:10:02.90ID:jVgYGZiS
>>502
最大の個数を求めよやろ?
506デフォルトの名無しさん
2021/12/30(木) 20:24:56.63ID:JL7tAErK
千葉興業銀行、4月から副業解禁 県内地銀初

南都銀行、4月から行員の副業制度導入 ウェブ制作など

荘内銀、行員の副業・兼業解禁

フィデアHD、副業・兼業制度を導入

横浜銀行、10月から従業員の副業・兼業解禁

鹿児島銀、副業解禁を検討 九州FGと肥後銀は10月導入

肥後銀行が副業制度導入へ 多様な働き方認める 10月から
507デフォルトの名無しさん
2021/12/31(金) 15:04:12.13ID:bqUePCKa
>>497
haskell
https://ideone.com/GLMXRV
>>501のアルゴリズムを自動化してみた
すげー簡単なところでどハマりして半日かかった
まだ解なしの場合とかの動作チェックとかしてないけどもうどうでもいい
508デフォルトの名無しさん
2021/12/31(金) 15:09:29.33ID:bqUePCKa
ちなみに出力形式は
(最大個数、最大素数の通し番号、最大素数までの間での素数で除外する素数のリスト)

try 67%5
→(5,8,[2,3,5])
は最初の個数8個[2,3,5,7,11,13,17,19]から[2,3,5]を抜いた[7,11,13,17,19]の5個が平均が67/5になる素数のリストの一つ
長さ
6以上はない
509デフォルトの名無しさん
2022/01/08(土) 11:42:09.36ID:B5P29Cqv
お題:
xをゼロ以上の浮動小数点数として
2^floor(log2(x))
の計算。ただし、x == 0 の場合はゼロとする。
510デフォルトの名無しさん
2022/01/08(土) 18:45:49.69ID:qvdwzZse
>>481
>binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
>double-double演算です。
現在検討中ですが、binary64 中には仮数部に使用できるビット幅は 52 bits しかありません。つまりケチビット表現です
53+53 とのことですが、実際には 53 + 52 = 105 しか格納できないのではないでしょうか?
511464
2022/01/08(土) 21:07:22.52ID:Xrz2Tlot
>>510
上位の±1/2ulp相当が下位になります
512デフォルトの名無しさん
2022/01/09(日) 01:28:46.61ID:/FHAAuzb
>>509
perlでワンライナー。入力は標準入力からする。

perl -MPOSIX -ne 'chomp;$n=$_?2**floor(log($_)/log(2)):0;print "$n\n"'

でも、こんなので良いの?自分ではほとんど何も考えてないんだが。
(log2()がないからlog(n)/log(2)でやるって所ぐらいしか工夫がない)
513デフォルトの名無しさん
2022/01/09(日) 07:56:15.63ID:9G1CcY2f
>>509 C++
環境+コンパイルオプション依存 little endian, double = 64bit, long double = 128bit

double fl2( double x )
{
*( (uint64_t*) &x ) &= 0xFFF0000000000000LLU;
return x;
}

long double fl2( long double x )
{
*( (__uint128_t*) &x ) &= *( (__uint128_t*)"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF" );
return x;
}
514デフォルトの名無しさん
2022/01/09(日) 07:59:19.16ID:+WoQnCHD
2進表記した時に先頭のビット以外を0にすればいいだけだがワンライナーで書ける気がしない
515デフォルトの名無しさん
2022/01/09(日) 08:00:08.09ID:+WoQnCHD
先頭のビットというより「(存在するなら)0じゃない一番位の大きいビット」だな
516デフォルトの名無しさん
2022/01/09(日) 08:27:45.00ID:Gu7/igUi
ビットいじる方法だと、非正規化数が0に、NaNが無限大になる
そういえば、無限大やNaNはどうすればいいのだろうか
517509
2022/01/09(日) 09:16:00.82ID:42F2CcU6
Python
でかい値だとうまくいかないやつ

def foo(x):
_c = x * float(2 ** 52 + 1)
_xh = c - (c - x)
_if xh > x: return(xh * 0.5)
_return(xh)

>>516
深く考えてませんでしたw
518509
2022/01/09(日) 09:53:47.91ID:42F2CcU6
>>512
log2(n)をlog(n)/log(2)で近似した際の「誤差」
(ぴったり整数値になって欲しいのにそれよりも数ulp小さい値になったとか、
数ulp大きくて、ぎりぎりfloor()で切り捨てられる筈の値が1大きくなったとか)
を補償するコードが欲しい。
519デフォルトの名無しさん
2022/01/09(日) 15:38:39.37ID:DwVfG/qv
そこは性能とトレードオフになるしかない気はする
例えばfloor( log 32 / log2 ) = 5が使用上の動作だけど
log 32/log2 =4.9999999999978 × 10^0が返されて答えが4になってしまうのを避けるならおそらく大きすぎる場合は無視していいから
res' = floor( log x / log2 )
if (2^res'* 1.5) < x
// (1.5倍でも届かないなら不当な丸め誤差が出たと判断)
then res = res' + 1
else res = res'
とかちょっと汚い書き方するしかない希ガス
520デフォルトの名無しさん
2022/01/09(日) 21:50:51.38ID:sZC3oXej
なんか変なこと書いた

res' = floor( log x / log2 )
if 2^res' < x
then res = res' + 1
else res = res'

やな
res'の算出で丸め誤差は-1までと仮定して補正する
しかしもちろんlog(x)とか2^nハード的にFPUとかで高速にやってくれてしかも整数演算は誤差なしでやってくれる前提
この辺は高級言語プログラマレベルの話でなんとかなるもんではない
やるならアセンブリ言語レベルでやるしかない
521デフォルトの名無しさん
2022/01/10(月) 00:03:40.12ID:gj6cLR2i
>>509 C
https://ideone.com/5kDuzA
非正規化数、NaN、無限大とかはそのまま返すようにした
やり方は>>513と変わらない
522509
2022/01/10(月) 00:53:57.15ID:MGxmK4tZ
いまどきのコンパイラなら、frexp()やldexp()をいい塩梅に最適化してくれるのだろうか?

from math import frexp, ldexp
def foo(x):
_m, e = frexp(x)
_if m == 0: return 0.0
_return ldexp(0.5, e)
523512
2022/01/10(月) 01:47:47.54ID:av6tewvz
>>509
またPerlでワンライナー。

perl -ne 'chomp;if($_<=0){print"0\n"}else{for(my$i=0;;$i++){if((1<<$i)>$_){print 1<<($i-1),"\n";last}}}'

今度は計算している内容から考えて結果が同じになるようにした。浮動小数点演算をしていない。
また整数値が何ビットであるかも考慮しておらず、Perlの整数が32bitだった場合は2^32以上の値を入力されたら多分うまく動かない。
当然64bitだったら2^64以上の値の入力で多分うまく動かない。
524509
2022/01/10(月) 02:23:50.20ID:MGxmK4tZ
>>522の修正
from math import frexp, ldexp
def foo(x): return 0.0 if x == 0 else ldexp(0.5, frexp(x)[1])
525デフォルトの名無しさん
2022/01/10(月) 03:27:40.49ID:av6tewvz
>>509
またまたPerlでワンライナー。

perl -MPOSIX -ne 'chomp;if($_==0.0){print"0\n"}else{print ldexp(0.5,(frexp($_))[1]),"\n"}'

これは>>524の真似(ていうかやってること同じ)。
526デフォルトの名無しさん
2022/01/10(月) 12:43:53.01ID:SgLm6fjp
>>511
それは答えになっていないかと
質問を変えます。下位側の指数部も意味を持つようにインプリメントするべきでしょうか?
527464
2022/01/11(火) 02:38:04.94ID:i2HiBm5J
>>526
先人の実装例だと、
上位 + 下位 = double doubleの数値
という事になってますね(上位側の指数が決まると、下位側の指数も決まる)。
https://na-inet.jp/na/qd_ja.pdf

勿論、そう実装しないのもあり。
528デフォルトの名無しさん
2022/01/11(火) 03:06:24.10ID:Y9TTYX77
>>527
となると、
>>510
>binary64 中には仮数部に使用できるビット幅は 52 bits しかありません

よって下位側指数部無視なら 53bit + 52 bit = 105bit の実装となりますが?
下位側指数部有意ならば、下位側にもケチビットを適用できますが、今度は仮数部が 106 ビットとはいいきれなくなりますね(数によって変わる)
529デフォルトの名無しさん
2022/01/11(火) 03:08:13.70ID:Y9TTYX77
>>527
失礼 pdf が紹介されていることを見落としていました、精査します、紹介ありがとうございます
530デフォルトの名無しさん
2022/01/30(日) 18:02:46.10ID:Np8aVX2s
お題: 1より小さい実数を1以上2より下にせよ

< 0.123
> 1.23

< 0.0000123
> 1.23
531デフォルトの名無しさん
2022/01/30(日) 18:25:00.85ID:A8jovols
>>530

x / 10^[log10(x)]
532蟻人間 ◆T6xkBnTXz7B0
2022/01/30(日) 20:39:55.64ID:DZg7owi9
お題: 質量0.2 kgの直方体の物体が摩擦のある水平な床の上にある。
物体の初速を右向きの0.5 [m/s]とすると、物体は転倒することなく底面が床に接したまま、約x秒後に自然停止した。xより垂直抗力F[N]と動摩擦係数kを求めよ。
重力加速度を 9.8 [m/s^2]とする。
533蟻人間 ◆T6xkBnTXz7B0
2022/01/30(日) 20:58:19.92ID:DZg7owi9
お題(HTML/JavaScript): ユーザがGoogleから訪問した場合は、3秒間ブラウザを停止させるようにせよ。
534デフォルトの名無しさん
2022/02/01(火) 07:45:34.60ID:/+irRzAS
>>530
負の数や2以上の数は?
535デフォルトの名無しさん
2022/02/01(火) 16:02:38.13ID:zoPPBktH
>>534
・・・!
536デフォルトの名無しさん
2022/02/01(火) 18:02:38.08ID:zoPPBktH
お題: -1 < n < 1 の実数nを-10 < m < 10の実数m(ただし1桁目が0を除く)に桁上げせよ(>>530の改良)

< 0.123
> 1.23

< -0.00056
> -5.6
537デフォルトの名無しさん
2022/02/01(火) 20:01:29.11ID:TQ6+L4kb
負だったらabsolute取るだけのことじゃん
538デフォルトの名無しさん
2022/02/01(火) 23:48:43.79ID:/+irRzAS
>>536
perl

ワンライナー。以下はbashのコマンドラインから実行して試した。
入力は標準入力で一つづつ改行する。

perl -ne 'chomp;$n=$_;while(int(abs($n))<1){$n*=10}print "$n\n";'

やってることは見ての通り殆ど何も考えず10倍し続けるだけ。
539デフォルトの名無しさん
2022/02/21(月) 17:49:01.62ID:QCKFV9kK
もうすぐ22日、今年は "22/2/22"といつもより多め
[お題] 偶数ゾロ目

URLのページに都道府県別の人口が載っている。
 URL: https://ideone.com/2w86hj
 今回使用するのは、2020/10のデータ

 同じ県は一回のみで、異なる県を 22 県選らぶ。
 (単純な選び方は全部で NCR(47, 22) = 約14.8兆通り)
 整数A,Bが与えられる(1<=A<=B<=1億)
 選択した22県の人口合計が A以上B以下となるのは何通りか?

1) 44444444 44444444 --> 214209
2) 22222222 44444444 --> ?
3) 44444444 66666666 --> ?

※上の三問を全部で5秒程度で
 想定解はあるが、もっとスマートな方法がありそう
 「またか」と思った人、以前の問題とは想定解はかなり違う
540デフォルトの名無しさん
2022/02/23(水) 19:08:44.10ID:jKeAH0Dy
>>536
やぱしn==0は除外?
541デフォルトの名無しさん
2022/02/24(木) 00:35:12.16ID:5B3hmiET
>>540
一桁目が0は除外してね
542デフォルトの名無しさん
2022/02/24(木) 08:38:30.17ID:GiducjAN
難しい、こんなの小学生が解けるのか?

今年の中学受験の算数で一番の良問がこれらしい [976717553]
http://2chb.net/r/news/1645558073/
543539
2022/02/25(金) 17:25:00.82ID:STd/IFZD
>>539
旬だと思って出題

https://ideone.com/2w86hj 下部に追加

半分全列挙 + 尺取り法

早い言語でしかできない解答例でした
544デフォルトの名無しさん
2022/02/25(金) 19:14:08.69ID:RZ7O9d2K
>>543

時間取れなくてやれてないが季節感あるネタ好き
545デフォルトの名無しさん
2022/02/26(土) 19:41:18.44ID:4VT1Qgxn
haskellでやったらやっぱり5秒はきつかった
546デフォルトの名無しさん
2022/02/27(日) 02:34:25.32ID:VdMMR1Xg
お題: RustかGoでバイナリーサーチを実装してください
547デフォルトの名無しさん
2022/03/20(日) 12:30:16.47ID:nN0Ys+dW
お題: トライ木を使ってサジェスト機能を実装してください

$ prog
> w
world
would
will
wish

辞書は任意の大きさとする
入力は英語、または日本語とする
548デフォルトの名無しさん
2022/03/20(日) 19:32:45.03ID:Ycqbgo6j
>>545
なんかHaskellってGHCのオプションに-O2とか指定すれば結構早くなった記憶がある
あとListじゃなくVector使うとか
549デフォルトの名無しさん
2022/03/20(日) 19:41:12.56ID:sy393qRd
お題 バッタの大冒険
 a(1),a(2),⋯,a(n) を相異なる正の整数とし、M を n-1個の正の整数からなる集合と
する。また、M は s=a(1)+a(2)+⋯+a(n) を含まない。数直線の 0 の地点にいるバッタが
数直線の正の向きに n 回ジャンプする。 n 回のジャンプの距離は a(1),a(2),⋯,a(n) の並べ替えである。このとき並べ替えをうまく選べば、バッタがM の要素に対応するn-1点に一度も着地しないようにできることを証明せよ。

↑数学オリンピックの問題
もちろん証明はどうでもよろしい
お題は(ジャンプの幅のリスト、禁止点のリスト)から禁止点を交わしていく飛ぶ順を見つけるプログラムを実装せよです

入力
([3,5,8],[5,10])
出力
[8,5,3] #着地するのは8,13,16で禁止点5,10をかわしている

入力
([5,6,8,10,13,15],[2,18,24,29,45])
出力
[15,13,10,8,6,5] #着地するのは15,28,38,46,51で全ての禁止点をかわしている

入力
([3,26,30,32,36,44,53,62,68,82],[36,40,59,79,92,126,178,233,394])
出力
[82,68,62,53,44,36,32,30,26,3] #同文
550デフォルトの名無しさん
2022/03/20(日) 21:13:54.18ID:yn4DTgXG
2番目の例着地するのは
15,28,38,46,52,57
ですた
551デフォルトの名無しさん
2022/03/22(火) 20:44:30.68ID:0IfoPmot
>>549
は数学の問題としても面白いけどココはプログラムのお題スレなのでアルゴリズムそのもの考えるのは嫌な人のためにアルゴリズムひとつ紹介しておきます
以下の探索で線形オーダーで解を見つけられます
自分で考えたい人は無視してください

以下aを最大ジャンプとします
a=a(n)としておく

(A)一回目を最大ジャンプで飛んだとして最初の禁止点に届かないかギリギリ届くとき

一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
この順番でとんて行って最初に最初の禁止点をi回目に超えたとする
解のジャンプとして
b(1),b(2),...,b(i-1),a,b(i),...,b(n)
とすると全ての禁止点をかわしている

(B) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えて、しかも禁止点以外に着地できるとき

一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
解のジャンプとして
a,b(1),...,b(n-1)
とすると全ての禁止点をかわしている

(C) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えるが別の禁止点に着地してしまうとき

この状況だとa(1)〜a(n-1)のいずれかのジャンプa(i)でa(i)もa+a(i)のどちらも禁止点でないものが取れる( (∵) 全てのi:1〜n-1でa(i)かa+a(i)のどちらかが禁止点とするとこれだけでn-1個の禁止点全部尽くされてしまうけど、この中には最初の仮定である“一回目aで飛んだら禁止点”はこの中には出てこないので矛盾 )
それをa(n-1)としよう
最小の2回をa(n-1),a(n)と飛んだとしてこの時点で最初の禁止点と最初a(n)だと踏んでしまう禁止点の2点は超えているので残りの禁止点はn-3個以下しか残ってない
そこでa(1)〜a(n-2)をうまく並べ替えれば全部かわすことができる
552デフォルトの名無しさん
2022/05/03(火) 15:12:22.98ID:FP7f4hyR
問題がよくわからなくて解く以前の所で停止。そしてやる気消滅。
553デフォルトの名無しさん
2022/05/03(火) 23:10:33.84ID:JwGzWANE
説明不足で申し訳ない
問題文は数オリの紹介サイトからそのままコピペしてきたのでわかりにくかったかもしれない

1番最初の例

([3,5,8],[5,10])

だとバッタは最初x=0の地点にいて+3,+5,+8のジャンプでx=16の地点に行こうとしている
しかしx=5,x=10の地点は着地禁止地点で着地できない
飛び方は全部で6通りあるがその中から禁止地点に着地しないものを選んで下さいという問題
3回くらいなら総当たりで答え出せるけどジャンプ10回禁止地点9ヶ所だと全数検索すると10!通り必要になって実用にならない
どうしますかというテーマだけどもちろん数学オリンピックの問題なので中々自分で答え出すのは難しい
でここは数学板ではないので同じ数オリサイトにあった解答を転記して「こんなアルゴリズムが知られているけどアルゴリズムをインプリメントできますか」がお題です
554デフォルトの名無しさん
2022/05/04(水) 00:16:07.90ID:0lMETj8q
お題: C/C++でスレッドセーフなstrtok関数を作れ
設計は各自で考えること
555デフォルトの名無しさん
2022/05/04(水) 08:22:49.31ID:WTZHV9SY
政府公認のスカトロサークルだって!?じゅるり
556デフォルトの名無しさん
2022/05/05(木) 02:33:11.33ID:FeY8iOM4
高度IT人材、富士通は最大年収3500万円へ

AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ

【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材

来年度から副業解禁 人材多様化へ―大同生命次期社長

第一生命HD、副業解禁 約1万5000人対象

第一生命HD、副業解禁 1万5000人対象―大手生保初

IHI、国内8000人の副業解禁 重厚長大企業も転機

IHI、社外兼業を解禁 社内副業もルール化
557デフォルトの名無しさん
2022/05/05(木) 16:49:02.33ID:SGcHNlDo
>>554
C言語

https://paiza.io/projects/xS5GP9DAU6KzhDsM6x7M6g

strtok_r() を strtok_r2() の名前にして自分で実装した。
strsep() も paiza.io のCのライブラリには何故かなかったので strsep2() にして自分で実装した。
558デフォルトの名無しさん
2022/05/11(水) 08:28:38.45ID:zQqHPRjb
思い付きでお題考えてみた
検証してないんだけどどう?

お題: ランダムな部屋を移動する最短距離を求める

行列がある
任意の横幅Wと高さHで表現される部屋がランダムに1 <= N <= 5個生成される
この部屋を部屋内の座標からランダムに選択した別の部屋の部屋内の座標まで通路を作る
通路の要素は斜めには生成されず横と縦に生成される
通路はランダムに1つの部屋から0 <= R <= 3生成される

各部屋を各通路で繋げ任意の部屋Aと任意の部屋Bを選択する
このときAからBまでの最短経路を求めよ
559デフォルトの名無しさん
2022/05/11(水) 10:03:08.65ID:u3pPN9f9
ランダムの部分いる?
560デフォルトの名無しさん
2022/05/11(水) 19:40:13.01ID:RtJ1FIjP
日本語がよくわからんから数式で書いてくれ
561デフォルトの名無しさん
2022/05/11(水) 19:57:58.11ID:dPHs0KwZ
数式だと答えになりそうだから図で書いてくれ
562デフォルトの名無しさん
2022/05/17(火) 17:53:19.20ID:UVEhLnaE
さらに、閑古鳥をよびよせるか

[お題] 多倍長では無理!?
整数 S, T が与えられる。(1 <= S <= T <= 400万)
S以上T以下の(連続する)整数の最小公倍数(LCM)をもとめる
答えは, 1000000007(10億7)の余りで出力

1) 6 8 --> 168
6,7,8 の最小公倍数、LCM(6, 7)= 42 --> LCM(42, 8)= 168
2) 10 30 --> 89546497
剰余前は、2329089562800
3) 2567890 3456789 --> ?
4) 1 4000000 --> ?
563デフォルトの名無しさん
2022/05/19(木) 21:03:46.76ID:f4mJcXLG
>>562

Haskell

https://ideone.com/dPbmse
564デフォルトの名無しさん
2022/05/19(木) 21:16:43.90ID:bqW40Z5X
√T以下の素数列挙
各数を素因数分解して各素数の指数の最大を求める
10億7の剰余で上の乗算を行う
565デフォルトの名無しさん
2022/05/19(木) 22:51:31.74ID:vGEyxbeO
>>562 C
https://ideone.com/IWOE9a
566デフォルトの名無しさん
2022/05/20(金) 19:19:40.97ID:nM/DB7wD
>>562
https://ideone.com/O9PQbN

想定解としては、(他の人同様)
 求める最小公倍数を素因数分解した形に作るイメージ
 400万以下の"素数及び素数べき乗"は、高々28.3万件。
 S以上T以下で、素数べき乗が割り切れるかどうかチェックしている。
 (方法は T/素数べき乗 > (S-1)/素数べき乗 ならあると, O(1)判定)
 ボトルネックは素数を求める部分なので、手抜きしている。

余談)
・4)を多倍長で計算すると173万桁だった(一分程度ででた)
・10^9+7 ではなく、下9桁を出力だと、4)は 0になる(5^9が範囲にあるから)
567デフォルトの名無しさん
2022/07/01(金) 10:06:17.68ID:GRk1+wVC
age
568デフォルトの名無しさん
2022/07/01(金) 15:47:14.28ID:GJ0Vg4bO
お題: 循環リストを検出するプログラムを書け
569デフォルトの名無しさん
2022/07/01(金) 19:58:00.80ID:il671KyI
循環リスト
の定義を書いてください
570デフォルトの名無しさん
2022/07/02(土) 02:10:30.75ID:1mXsd8mZ
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ

123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
571デフォルトの名無しさん
2022/07/02(土) 04:54:46.54ID:5fwFwNtd
>>570
Kotlin

自分ではほとんど何も考えていない脱力感溢れるプログラム

https://paiza.io/projects/EK5QmNc2f4MgmmMLM3FcrQ
572デフォルトの名無しさん
2022/07/02(土) 05:51:46.20ID:y+j5RBoo
>>570 Ruby

f = -> s {
case s
when /\A(?:0|[1-9]\d*)\z|\A(?:[1-9]\d{0,2})(?:,\d{3})*\z/
:INT
when /\A(?:0?|[1-9]\d*)\.\d+\z/
:FLOAT
else
:INVALID
end
}

%w[123 1,234 1.23 a123 12abc 1.23.435 .142857 1. 0 01 1,234,567 1234,567].each{|s|
puts '%s -> %s' % [s, f[s]]
}

# =>

123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
.142857 -> FLOAT
1. -> INVALID
0 -> INT
01 -> INVALID
1,234,567 -> INT
1234,567 -> INVALID
573デフォルトの名無しさん
2022/07/02(土) 05:58:59.35ID:At3W7bIA
>>570
こう言うのは仕様をちゃんと提示してよ
123.
123.0
12,34
はどうなればいいのか
574デフォルトの名無しさん
2022/07/02(土) 08:08:58.00ID:syeRaQWQ
そんな文句みたいな言い方するほどか?
他の問題に比べたらケースちゃんと提示してる方だし
そういうのは想定してないってなんとなくわかるだろ
競プロならちゃんと定義必要だろうけど
575デフォルトの名無しさん
2022/07/02(土) 08:09:44.82ID:syeRaQWQ
123.0は確かに気になるけど
576デフォルトの名無しさん
2022/07/02(土) 09:41:42.13ID:At3W7bIA
>>574
> そういうのは想定してないってなんとなくわかるだろ
お題なんだから想定しろよ
でないとそのケースはそうじゃなくてこうすべきとか言う奴が出てきて荒れる元だし
577デフォルトの名無しさん
2022/07/02(土) 09:58:04.16ID:dKfad4Z0
はい!
578デフォルトの名無しさん
2022/07/02(土) 09:58:41.88ID:COZLaCzb
123.0はfloatだろ常考
579デフォルトの名無しさん
2022/07/02(土) 12:04:36.48ID:oDFjP9XJ
黙って実装して自分なりの仕様を提示するテストケースを追加して提出した>>572の勝利
580ハノン ◆QZaw55cn4c
2022/07/02(土) 14:55:56.14ID:w21fdpYM
>>579
激しく同意
581デフォルトの名無しさん
2022/07/02(土) 15:40:39.43ID:ZFJdClOp
>>579
クールだよな
582デフォルトの名無しさん
2022/07/02(土) 16:54:51.10ID:RqXE55Ja
>>570
こういうアホがソフト仕様を書くと悲惨
583デフォルトの名無しさん
2022/07/02(土) 17:49:49.50ID:Vxz6zO/I
久々に出題者現れたかと思ったらフルボッコでかわいそう
584デフォルトの名無しさん
2022/07/02(土) 18:03:20.65ID:+K04BJMF
もっと気楽にやれよ
普段ゴミみたいな案件で意を汲み取れず怒られ理不尽な思いしてる底辺コーダーが叩き行為で鬱憤晴らししたいんだろうけどさw
仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義
その議論を「荒れる」と捉えるのは違うでしょ
585デフォルトの名無しさん
2022/07/02(土) 20:54:40.02ID:1mXsd8mZ
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
version 1.0.1

123 -> INT
1,234 -> INT
1.23 -> FLOAT
a123 -> INVALID
12abc -> INVALID
1.23.435 -> INVALID
.142857 -> FLOAT
1. -> INVALID
0 -> INT
01 -> INVALID
1,234,567 -> INT
1234,567 -> INVALID
123.0 -> FLOAT
586デフォルトの名無しさん
2022/07/02(土) 23:37:34.43ID:12WH0HiU
>>568
https://ideone.com/WdXv5B
587デフォルトの名無しさん
2022/07/03(日) 06:43:46.91ID:/5k6Ls0P
.142857がOKで1.がNG
なんか違和感
どの言語の流儀?

具体例だけに頼らないで
定義っぽく書けない?

----
[整数部]、[整数部].[小数部]、.[小数部] のいずれかの形
[整数部] : 0123456789の列1文字以上、もしくはこれを3桁ずつ,で区切った形
2桁以上の場合は先頭は0ではない
[小数部] : 0123456789の列1文字以上
....

こんな感じ
588デフォルトの名無しさん
2022/07/03(日) 07:10:28.62ID:3/zKVKew
0.DDD を .DDD と表記するのは欧米では情報系に限らず日常よく見られること
CSSもperlも昔のrubyも対応してたんじゃなかったかな
589デフォルトの名無しさん
2022/07/03(日) 09:01:07.02ID:udoKn6Zg
1. がNGなのは?
どこの流儀?
590デフォルトの名無しさん
2022/07/03(日) 09:17:25.30ID:aLgpTdvv
>>584
> 仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義
だからその一般認識がないから揉めるって話
既に違和感と言い出す奴とか欧米ガーとか流儀ガーとか言い出してるだろ
エディタの宗教戦争と同じで正解なんてないんだからお題を作った奴が決めないと収拾つかんよ
591デフォルトの名無しさん
2022/07/03(日) 09:24:18.29ID:3/zKVKew
>>590
1から10まで教えてもらえないとなんもできないのかよ
エディタ宗教戦争を例に出してるけどあんなのにガチに捉えてるバカはお前くらいだ
592デフォルトの名無しさん
2022/07/03(日) 09:34:46.48ID:/kuq8Z/3
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする

INT: digit+
593デフォルトの名無しさん
2022/07/03(日) 09:37:29.23ID:/kuq8Z/3
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.2

int: digits
float: digits ('.' digits)?
digits: digit+
digit: [0-9]+
594デフォルトの名無しさん
2022/07/03(日) 10:08:31.69ID:JHbRyeE7
>>591
ガチに捉えるもなにも今でもやってるだろw
595デフォルトの名無しさん
2022/07/03(日) 10:15:42.92ID:JHbRyeE7
>>593
カンマとかはなくなってるけど、仕様変更ですか?
あと
digits: [0-9]+
にしてdigitをやめるか
digit: [0-9]
にした方がいいかと思いますよ
596デフォルトの名無しさん
2022/07/03(日) 12:27:53.93ID:/kuq8Z/3
>>595

お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.3

int: comma_digit
float: comma_digit '.' digit* | '.' digit*
comma_digit: digit_123 { ( ','? digit_3 ) }*
digit_3: digit digit digit
digit_123: digit digit? digit?
digit: [0-9]

どや?完璧だろこのBNF
これで文句ないな
597デフォルトの名無しさん
2022/07/03(日) 12:41:01.89ID:E32cFzvb
>>596
"1."、"01"、"1234,567" が INVALID になりませんし "." だけでも FLOAT になるのはどうかと思いますが...
598デフォルトの名無しさん
2022/07/03(日) 12:54:46.68ID:/kuq8Z/3
>>597
お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ
変換できない場合はINVALIDと出力せよ
BNFは↓とする
version 1.0.4

int: comma_digit
float: comma_digit '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ( ','? digit_3 ) }*
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]

どや?
599デフォルトの名無しさん
2022/07/03(日) 14:30:14.53ID:+vJDgzA0
勉強になる
600デフォルトの名無しさん
2022/07/03(日) 15:35:40.90ID:VBJi0e3g
>>598
指摘された箇所すら直せないとかどう見ても向いてないからやめたら?
> "1234,567" が INVALID になりませんし
601デフォルトの名無しさん
2022/07/03(日) 15:38:27.96ID:7UQlj4nA
ハズレ上司感
602デフォルトの名無しさん
2022/07/03(日) 15:41:49.46ID:yV0MWMu9
>>570 ocaml
https://ideone.com/j9z2um
603デフォルトの名無しさん
2022/07/03(日) 16:15:01.49ID:/kuq8Z/3
>>600
めんどくせ~な~
お前やれよ
604デフォルトの名無しさん
2022/07/03(日) 16:24:52.83ID:/kuq8Z/3
>>600
version 1.0.5

int: comma_digit | normal_digit
float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ',' digit_3 }*
normal_digit: digit_19 digit_09*
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]

ていうか1234,567にはならんはずだぞ
605デフォルトの名無しさん
2022/07/03(日) 16:30:18.21ID:/kuq8Z/3
>>600
version 1.0.6

int: comma_digit | normal_digit
float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ',' digit_3 }*
normal_digit: ( digit_19 digit_09+ ) | digit_09
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]

おら!完璧だろ!
606デフォルトの名無しさん
2022/07/03(日) 17:25:11.12ID:bGSSCSEx
>>604
> ていうか1234,567にはならんはずだぞ
しれっと変えといてさすがにそれは恥ずかしいな
>>598> comma_digit: digit_123 { ( ','? digit_3 ) }*
>> 604 > comma_digit: digit_123 { ',' digit_3 }*

>>605
まあ、よしとしてやろう
607デフォルトの名無しさん
2022/07/03(日) 20:20:25.60ID:H80x+Ni5
問題を解かずに出題の形式美に必死になるなんて、このスレ的にどうなのよ?
608蟻人間 ◆T6xkBnTXz7B0
2022/07/03(日) 21:46:41.57ID:wwKaul6r
char buf[64];
fgets(buf, 64, stdin);
char *endptr;
strtol(buf, &endptr, 10);
if (*endptr == 0) {
puts("INT");
return;
}
strtod(buf, &endptr);
if (*endptr == 0) {
puts("FLOAT");
return;
}
puts("INVALID");
609デフォルトの名無しさん
2022/07/04(月) 22:09:22.65ID:hLP3lYAM
>>570 dart
https://ideone.com/hT8xrN
610デフォルトの名無しさん
2022/07/08(金) 20:02:47.21ID:N6PR1KyM
お題
非負整数xが16進数表記で与えられる。xのビットu~lの範囲を逆順にした値を出力せよ。

[入力]
x u l

[例]
0x80 7 0
=> 0x1 (8bit全体をreverse)

0xABCD 11 4
=> 0xA3DD (真ん中8bitをreverse, 0xBC=0b10111100 -> 0b00111101=0x3D)

0x2 99 1
=> 0x8000000000000000000000000 (2の99乗)
611デフォルトの名無しさん
2022/07/08(金) 22:06:04.39ID:ju1TxHLl
>>610 Ruby

f = -> (*a) {_, e, s = a.map(&:to_i); '0x%X' % a[0].hex.digits(2).concat(Array.new(e, 0)).tap{_1[s..e] = _1[s..e].reverse}.reverse.reduce{|s, i| 2 * s + i}}

['0x80 7 0', '0xABCD 11 4', '0x2 99 1'].each{puts '%s -> %s' % [_1, f[*_1.split]]}

# =>
0x80 7 0 -> 0x1
0xABCD 11 4 -> 0xA3DD
0x2 99 1 -> 0x8000000000000000000000000
612デフォルトの名無しさん
2022/07/09(土) 09:28:21.31ID:72Wr/ML/
>>610 octave
https://ideone.com/4MacE3
613デフォルトの名無しさん
2022/07/09(土) 21:45:11.70ID:A5P06KhI
>>610
Kotlin
https://paiza.io/projects/hUR6DylxGsrJBWKI-gmaKg

BigInteger 使ったので、ビット数がかなり多くても大丈夫。
614デフォルトの名無しさん
2022/07/24(日) 20:03:09.74ID:RqwYivmm
あげ
615デフォルトの名無しさん
2022/07/26(火) 20:19:27.06ID:wEdk200U
お題:数字をミラーリングせよ

入力 < 123
出力 > 123321

reverse系メソッドを使わなかったら加点とする
616デフォルトの名無しさん
2022/07/26(火) 20:33:23.78ID:gSFNKY8C
>>615 Ruby
$><<(a=gets.scan /./)*'';$><<$a while$a=a.pop

-*- input -*-
123

-*- output -*-
123321
617デフォルトの名無しさん
2022/07/26(火) 22:30:32.74ID:LilaKoZu
>>615
Java

static String mirror(String src) {
 var dest = new char[src.length() * 2];
 var a = src.toCharArray();
 for (var i = 0; i < a.length; i++) {
  dest[i] = a[i];
  dest[dest.length - 1 - i] = a[i];
 }
 return new String(dest);
}
618アリ人間 ◆T6xkBnTXz7B0
2022/07/26(火) 22:36:21.87ID:SFGiBpCo
>>615
派生お題: 文字列処理を使わずに与えられた整数を回文にせよ。
619デフォルトの名無しさん
2022/07/26(火) 23:38:05.85ID:ceC8PDvA
>>615 octave
https://ideone.com/Aa9KII
f = @(a) a([1:end end:-1:1]);
f('123')
620デフォルトの名無しさん
2022/07/26(火) 23:41:29.56ID:DU0tXUgh
魔法の計算式とか無いん?
621デフォルトの名無しさん
2022/07/27(水) 00:03:13.42ID:MKIa5t3g
俺も考えてみたけど調べても回分数のシグマ使わない一般式は無いみたいだな
622デフォルトの名無しさん
2022/07/27(水) 00:09:31.00ID:C/59UMec
>>615 JavaScript
const mirror = (n, c, ...args) => c === null ? (answer => 0 <= n && answer <= Number.MAX_SAFE_INTEGER ? answer : RangeError(`${n} is invalid.`))(args.reduce((s, d) => s * 10 + d, n)) : c == undefined ? mirror(Number.parseInt(n), Number.parseInt(n), ...args) : mirror(n, c < 10 ? null : Math.floor(c / 10), ...args, c % 10);

// test
for (const [n] of [[-1, 'x'], [0, 'o'], [1, 'o'], [12345678, 'o'], [123456789, 'x'], [123.456, 'o (123321)']]) {
const answer = mirror(n);
console[answer instanceof RangeError ? 'error' : 'log'](answer);
}
623デフォルトの名無しさん
2022/07/27(水) 01:46:36.04ID:7bF+Pf0F
octave綺麗
62496
2022/08/02(火) 01:11:31.65ID:6KqVNIq0
>>615 Perl5

use feature qw{say signatures}; no warnings 'experimental';

sub f($i, @a) { $i and @a ? (f(@a), $i) : $i }

@a = split'',123;
say @a, f(@a);



実行結果
~ $ perl 20_615_mirror.pl
123321
62596
2022/08/02(火) 01:20:34.60ID:6KqVNIq0
>>615 Perl5 (リスト処理版)

@a = split '', 123;
print @a, map{@a[$#a - $_]} 0..$#a;


実行結果
~ $ perl 20_615_mirror_list.pl
123321
626デフォルトの名無しさん
2022/08/02(火) 22:22:16.97ID:9ppQHDnA
>>615 ocaml
https://ideone.com/FFhxw9
let f s =
let csc c s = Char.escaped c ^ s ^ Char.escaped c in
let rec aux t = function 0 -> t | n -> aux (csc s.[n - 1] t) (n - 1)
in aux "" @@ String.length s
let () = print_endline @@ f "123"
627デフォルトの名無しさん
2022/08/02(火) 23:32:00.13ID:49BZsXJW
>>615
Kotlin

https://paiza.io/projects/2Pe625DoTzToywf3zB2lvA

わざわざ Iterator を実装して実現。
628デフォルトの名無しさん
2022/08/03(水) 00:34:26.60ID:xChmGTXr
>>615 ocaml
https://ideone.com/6YqGis
let f s = s ^ String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let () = print_endline @@ f "123"
629デフォルトの名無しさん
2022/08/05(金) 11:38:46.19ID:1Af6TgAi
>>615
おもしれーことやってんじゃん
じゃあperlの再帰する正規表現で行くかな
https://paiza.io/projects/dxhWJaJSrcZdAFpJKe9uvQ
630デフォルトの名無しさん
2022/08/05(金) 13:16:58.45ID:6eafuacR
gnuWin32を基本使っています。
で行のソートなのですが、各行の末尾から逆向きの文字でソートって出来ませんか
たとえば
aaaaCB
bbbBA
cccccDB
とかあったとき、これを
bbbBA
aaaaCB
cccccDB
としたいのです。
もし難しそうであれば、各行を反転、つまり
abcde

edcba
とする方法でもいいです。
631デフォルトの名無しさん
2022/08/05(金) 13:43:08.90ID:Vk8oFh91
>>630
Java
Arrays.sort(a, (left, right) -> {
 var l = left.length() - 1;
 var r = right.length() - 1;

 while (l > -1 && r > -1) {
  var c = Character.compare(left.charAt(l), right.charAt(r));

  if (c != 0) {
   return c;
  }

  l--;
  r--;
 }

 if (l > -1) {
  return 1;
 }

 if (r > -1) {
  return -1;
 }

 return 0;
});
63296
2022/08/05(金) 19:36:20.73ID:Rv34IsoP
>>630 Perl5が使える環境であれば…

~ $ cat 20_630_isort.pl
chomp (@a = <>);
sub f {join '', reverse split'', $_[0]}
print "$_\n" for sort{f($a) cmp f($b)} @a;

~ $ cat input.txt
aaaaCB
bbbBA
cccccDB

~ $ perl 20_630_isort.pl < input.txt > output.txt

~ $ cat output.txt
bbbBA
aaaaCB
cccccDB
633デフォルトの名無しさん
2022/08/05(金) 20:52:38.21ID:C4r7F682
>>630 ruby
https://ideone.com/lQz0m2
f = ->(a) {a.sort_by &:reverse}
p f.(%w(aaaaCB bbbBA cccccDB))

>>630 octave
https://ideone.com/AUCxr3
function i = sorti(varargin), [~, i] = sort(varargin{:}); end
f = @(a) a(sorti(cellfun(@(s) {flip(s)}, a)));
f({'aaaaCB' 'bbbBA' 'cccccDB'})
63496
2022/08/05(金) 22:43:00.57ID:Rv34IsoP
>>632
しまった、これだとsortの計算量 N・log N に応じた回数、比較のための文字列逆転 sub f の呼出しが起き、
データの行数が多いと遅いな
63596
2022/08/06(土) 00:54:37.07ID:pYJx8bVL
>>630 Perl5、計算量の抑制に配慮したバージョンと実行例

$ cat 20_630_isort2.pl
print $_->[0] for sort{$a->[1] cmp $b->[1]} map{[$_, scalar reverse $_]} <>;

$ cat input.txt
aaaaCB
bbbBA
cccccDB

$ perl 20_630_isort2.pl input.txt > output.txt

$ cat output.txt
bbbBA
aaaaCB
cccccDB
63696
2022/08/06(土) 01:06:37.87ID:pYJx8bVL
>>635
これ各行の行末の改行まで含めてreverseしてsortキーとするので、
もし入力ファイルの最後の行に改行が欠けていて無かったらsort結果がおかしくなる。
そのような万が一の場合に対してもrubstさも持たすならこうか

chomp(@a = <>);
print "$$_[0]\n" for sort{$$a[1] cmp $$b[1]} map{[$_, scalar reverse]} @a;
637デフォルトの名無しさん
2022/08/06(土) 05:59:59.26ID:UcInr7RU
>>630
Kotlin
https://paiza.io/projects/bK5T2CQgxXwvVlcjKvw-dA

ただ処理を連結しただけだな。コマンドラインでパイプ使ったみたいな感じ。
638デフォルトの名無しさん
2022/08/06(土) 06:11:51.22ID:UcInr7RU
>>630
Linux 等の UNIX 系 OS で rev コマンドと sort コマンドが使える環境ならシェルのコマンドラインからこう入力するとできる。
(入力文字列は input.txt に入っているとして)。

rev input.txt | sort | rev

Windows の環境でやる場合は互換性のあるコマンドを利用するか、または Cygwin や WSL や WSL2 等の UNIX 互換環境の中でコマンドラインから実行できる。
63996
2022/08/06(土) 08:20:40.77ID:pYJx8bVL
>>610 Perl5

use Bit::Vector;
$v = Bit::Vector->new(101);
for (<DATA>) {
 ($h, $s, $e) = /0x(\S+) (\S+) (\S+)/;
 $v->from_Hex("$h");
 $v->Interval_Reverse($e, $s);
 ($r) = $v->to_Hex() =~ /0+(\w+)/;
 print "$_ => 0x$r\n";
}
__DATA__
0x80 7 0
0xABCD 11 4
0x2 99 1

※インデントを見易くするため全角スペースに置換しています


実行結果

$ perl 20_610_rebitfld.pl
0x80 7 0
=> 0x1
0xABCD 11 4
=> 0xA3DD
0x2 99 1
=> 0x8000000000000000000000000
640デフォルトの名無しさん
2022/08/06(土) 10:15:53.94ID:8a3zeEyr
>>638
Linux環境ではrevというのがあるのですね
gnuWin32は全部揃ってないのですね。なんだかなあ
rev以外でもLinuxにあってgnuWin32にはないのがあるのかな
rev、自分で作ろうかな
641デフォルトの名無しさん
2022/08/06(土) 11:17:00.60ID:y9e1BfKB
>>630 ocaml
https://ideone.com/zdWLHX
let rev s = String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let (<<) f g x = f (g x)
let f = List.map (fun (r, s) -> s) << List.sort compare << List.map (fun s -> (rev s, s))
let () = List.iter print_endline @@ f ["aaaaCB"; "bbbBA"; "cccccDB"];
64296
2022/08/06(土) 15:02:55.35ID:ddLJv/Kp
>>640
gnuWin32 用の rev.exe が欲しいなら、書き起こさなくともutil-linux-ng パッケージに入っていると思うが…

util-linux-ng for Windows
http://gnuwin32.sourceforge.net/packages/util-linux-ng.htm

Util-Linux contains miscellaneous utilities:
col: filter reverse line feeds from input
colcrt: filter nroff output for CRT previewing
colrm: remove columns from a file
ddate: converts Gregorian dates to Discordian dates
getopt: parse command options (enhanced)
hexdump: ascii, decimal, hexadecimal, octal dump
line: read one line
rename: rename files
rev: reverse lines of a file or files ←
tailf: follow the growth of a log file
whereis: locate the binary, source, and manual page files for a command

作りたいというなら類似のsampleソースはゴマンと転がっとるし

C reverse string rev.c strrev - Google 検索
https://www.google.com/search?q=C+reverse+string+rev.c+strrev

C program to reverse a string | Programming Simplified
https://www.programmingsimplified.com/c-program-reverse-string

C_69 C Program to Reverse a String | with strrev() and without strrev() function - YouTube



… 好きにしんしゃい
64396
2022/08/06(土) 15:16:53.43ID:ddLJv/Kp
Cygwin などに使われている util-linux パッケージのオリジナルな現行のソースは

GitHub - util-linux/util-linux
https://github.com/util-linux/util-linux

かな。そのうち rev.c のソースは

util-linux/rev.c at master ・ util-linux/util-linux ・ GitHub
https://github.com/util-linux/util-linux/blob/master/text-utils/rev.c

ちな util-linux パッケージは2006年に fork したとき名前に -ng をつけて util-linux-ng になったが
2010年に util-linux に名前を戻している。
cf.)
util-linux - Wikipedia
https://en.wikipedia.org/wiki/Util-linux

ついつい、調べ物をしてしまった…orz
644デフォルトの名無しさん
2022/08/06(土) 17:24:05.41ID:8a3zeEyr
>>642
ありがとう。そんなとこにあったのか
645デフォルトの名無しさん
2022/08/07(日) 09:51:45.46ID:UY2OKMya
>>642
linuxのrevでやってみました。ところが、全角日本語はやはりダメですね
なので、AHK
646デフォルトの名無しさん
2022/08/07(日) 09:52:47.25ID:UY2OKMya
>>642
linuxのrevでやってみました。ところが、全角日本語はやはりダメですね
なので、AHKで自作で作ってみました
rev input.txt | sort | rev
で問題なく動きました
647デフォルトの名無しさん
2022/08/07(日) 16:26:03.27ID:BSSIjy3s
>>645
環境変数 LANG の設定の問題とか?
こっちでは日本語での rev できたよ。
CentOS 7 で bash で LANG=ja_JP.UTF-8 の状態。そこに Windows から TeraTerm で ssh ログインして試したらできた。

$ echo $LANG
ja_JP.UTF-8
$ ( echo 見城徹 ; echo 箕輪厚介 ; echo ガーシー ; echo 木原誠二官房副長官 ) | rev
徹城見
介厚輪箕
ーシーガ
官長副房官二誠原木
$
648デフォルトの名無しさん
2022/08/07(日) 18:30:22.20ID:C65TbvUb
お題
0~2がランダムに8個入力されます
8個の数字を:で結合して出力してください
0が連続する場合は連続する0を::に置換してください
0の連続を::に置換できるのは1回のみです
0の連続が複数存在する場合は長い方を置換してください
長さが同じ場合は先頭の方を置換してください
1個の0は置換してはいけません


0, 0, 0, 1, 2, 1, 2, 2 → ::1:2:1:2:2
2, 1, 2, 0, 0, 0, 1, 1 → 2:1:2::1:1
1, 1, 2, 2, 1, 0, 0, 0 → 1:1:2:2:1::
2, 0, 0, 2, 0, 0, 0, 2 → 2:0:0:2::2
1, 0, 0, 1, 2, 0, 0, 2 → 1::1:2:0:0:2
0, 1, 2, 0, 1, 1, 0, 2 → 0:1:2:0:1:1:0:2
649デフォルトの名無しさん
2022/08/07(日) 19:28:27.32ID:MpscsJR5
>>648 Ruby

f = -> s { x = s.gsub(', ', ?:); y = x.scan(/0(?::0)+/).max&.count(?0) || 0; x.sub(/:?0(:0){#{y - 1}}+:?/, '::') }


[

'0, 0, 0, 1, 2, 1, 2, 2',

'2, 1, 2, 0, 0, 0, 1, 1',

'1, 1, 2, 2, 1, 0, 0, 0',

'2, 0, 0, 2, 0, 0, 0, 2',

'1, 0, 0, 1, 2, 0, 0, 2',

'0, 1, 2, 0, 1, 1, 0, 2'

].each{ |s| puts '%s -> %s' % [s, f[s]] }


# =>
0, 0, 0, 1, 2, 1, 2, 2 -> ::1:2:1:2:2
2, 1, 2, 0, 0, 0, 1, 1 -> 2:1:2::1:1
1, 1, 2, 2, 1, 0, 0, 0 -> 1:1:2:2:1::
2, 0, 0, 2, 0, 0, 0, 2 -> 2:0:0:2::2
1, 0, 0, 1, 2, 0, 0, 2 -> 1::1:2:0:0:2
0, 1, 2, 0, 1, 1, 0, 2 -> 0:1:2:0:1:1:0:2
650デフォルトの名無しさん
2022/08/07(日) 19:57:31.19ID:xO94aiKw
>>648
perl5
https://paiza.io/projects/5qVZ3qjP3YDPyVVywRVEEQ
651デフォルトの名無しさん
2022/08/07(日) 20:01:42.93ID:H+tq1Ypt
正規表現のreplace一個で行けそうと思ったけど最長マッチみたいなの無理なのか
652デフォルトの名無しさん
2022/08/07(日) 20:16:36.94ID:MpscsJR5
拡張正規表現の中にはチューリング完全なものもあるけどね
653デフォルトの名無しさん
2022/08/07(日) 20:17:47.43ID:xO94aiKw
そうか
単純に s/0{$n}/::/;
を連射して増やしていくだけでいいんだな
最後に成功したのを返す感じで
654デフォルトの名無しさん
2022/08/07(日) 20:58:47.87ID:xO94aiKw
>>648
perl5 # sub squash0 を>653 で書き替えた
https://paiza.io/projects/pNwwe9yNB_dczFaRbV3ZeA
655デフォルトの名無しさん
2022/08/07(日) 22:19:54.37ID:UmcKtz1r
>>648 octave
https://ideone.com/3Udpgi
function s = f(a)
c = diff(find([1 diff(a) 1]));
e = cumsum(c);
b = e - c + 1;
n = arrayfun(@(i) a(i), e);
[~, i] = max(c.*(n == 0));
s = arrayfun(@(n) {int2str(n)}, a);
if (1 < c(i))
s(b(i):e(i)) = ':';
end
s = regexprep(strjoin(s, ':'), ':::+', '::');
end
656655
2022/08/07(日) 23:28:54.94ID:UmcKtz1r
結果同じだけど若干の整理可能だった

n = arrayfun(@(i) a(i), e);
[~, i] = max(c.*(n == 0));

[~, i] = max(c.*(a(e) == 0));
65796
2022/08/08(月) 01:54:39.48ID:Fkng8CYp
>>648 Perl5

use List::Util 'max';
for (<DATA>) {
 %h = map{length($_) => $_} /(,?0(?:,0)+,?)/g;
 $n = max keys %h;
 chomp($i = $_);
 s/$h{$n}/::/ if $n;
 s/,/:/g;
 print "$i => $_";
}
__DATA__
0,0,0,1,2,1,2,2
2,1,2,0,0,0,1,1
1,1,2,2,1,0,0,0
2,0,0,2,0,0,0,2
1,0,0,1,2,0,0,2
0,1,2,0,1,1,0,2

※見易くするためインデントを全角スペースに置換してあります。


実行結果
$ perl 20_648.pl
0,0,0,1,2,1,2,2 => ::1:2:1:2:2
2,1,2,0,0,0,1,1 => 2:1:2::1:1
1,1,2,2,1,0,0,0 => 1:1:2:2:1::
2,0,0,2,0,0,0,2 => 2:0:0:2::2
1,0,0,1,2,0,0,2 => 1::1:2:0:0:2
0,1,2,0,1,1,0,2 => 0:1:2:0:1:1:0:2
658デフォルトの名無しさん
2022/08/08(月) 18:20:49.05ID:911TGIju
>>648
Common Lisp https://ideone.com/p9qSmC
JavaScript https://ideone.com/2pXZdF
659デフォルトの名無しさん
2022/08/10(水) 20:35:58.72ID:xa8ST9bT
>>648 ocaml
https://ideone.com/j7yye2
660デフォルトの名無しさん
2022/08/10(水) 21:08:31.81ID:xa8ST9bT
>>648 octave
https://ideone.com/Uyr9cV
・[1, 1, 1, 1, 1, 1, 1, 1]のとき正しくなかったのを修正
661デフォルトの名無しさん
2022/08/11(木) 15:24:25.24ID:/k5aJ7yS
>>648
Kotlin
https://paiza.io/projects/NFrxhMlgOO7dQdW20u_-kw

できたことはできたが、なんかもっと良いやり方がありそうな気もする。
662デフォルトの名無しさん
2022/08/11(木) 15:46:46.10ID:wxhIEZ4F
>>648
敢えて正規表現使わずKotlinで。ややこしかったわ
https://ideone.com/JZcPdU
663デフォルトの名無しさん
2022/08/11(木) 15:51:37.48ID:wxhIEZ4F
>>661
別の解き方が見れておもろい
664デフォルトの名無しさん
2022/08/11(木) 22:42:32.18ID:lr7eXs7b
>>648 java
https://ideone.com/f5yjN8
665661
2022/08/12(金) 00:33:44.04ID:DNG+vRxr
全部0の時に :: にならなかったので>>661はちょっと修正した。
666デフォルトの名無しさん
2022/08/13(土) 14:28:26.51ID:JbrEzaSr
お題
1~37からランダムに重複なく7つの数を選び出して小さい順にソートしてください
それを5つ出力してください


[2, 4, 9, 13, 20, 29, 36]
[1, 4, 12, 13, 15, 20, 33]
[1, 3, 5, 7, 11, 20, 24]
[3, 7, 8, 21, 27, 33, 34]
[1, 2, 14, 23, 26, 35, 36]
667デフォルトの名無しさん
2022/08/13(土) 14:31:07.91ID:JPhXlbrB
>>666 Ruby
[*1..37].sample(7).sort

# => [4, 8, 15, 20, 24, 26, 37]
668デフォルトの名無しさん
2022/08/13(土) 18:53:16.03ID:jyB6kjuE
>>666 Common Lisp
https://ideone.com/NMCh3O
669デフォルトの名無しさん
2022/08/13(土) 19:08:33.35ID:jyB6kjuE
>>668
投稿後一部訂正、n の範囲チェックを追加

負数は弾く
(check-type n (integer 0 *))

上限はシーケンスの長さ
(loop repeat n

(loop (min n (length sequence))
670デフォルトの名無しさん
2022/08/13(土) 19:54:15.55ID:JW3gpbYe
>>666 octave
https://ideone.com/Iml4xq
f = @() sort(randperm(37, 7));
cell2mat(arrayfun(@(~) {f()}, (1:5)'))
671デフォルトの名無しさん
2022/08/14(日) 00:39:46.54ID:YzvfyuVN
>>666
Kotlin script

repeat(5) { println((1..37).toList().shuffled().slice(0..6).sorted()) }


実行例

[6, 7, 9, 10, 16, 22, 27]
[2, 8, 9, 11, 16, 32, 33]
[11, 13, 18, 25, 26, 30, 34]
[2, 3, 12, 14, 20, 27, 37]
[7, 13, 14, 19, 27, 30, 35]
672671
2022/08/14(日) 00:41:50.08ID:YzvfyuVN
>>671はこれでも同じだった (toList() 抜き)。

repeat(5) { println((1..37).shuffled().slice(0..6).sorted()) }
67396
2022/08/14(日) 01:45:55.09ID:jl8HjsTF
>>666 Perl5

use List::Util 'shuffle';
@a = 1..37;
$" = ', ';
print "@{[(shuffle@a)[0..6]]}\n"
 for 1..5;


実行結果

$ perl 20_666_shuffle1-37x5.pl
3, 2, 10, 25, 9, 23, 27
35, 6, 30, 8, 37, 29, 36
20, 29, 19, 18, 37, 21, 23
12, 30, 29, 7, 3, 31, 26
34, 12, 1, 14, 28, 2, 21
674デフォルトの名無しさん
2022/08/14(日) 01:54:16.92ID:v+rcxIed
>>673
ソートされてないじゃん
67596
2022/08/14(日) 01:59:26.66ID:jl8HjsTF
>>666 Perl5、>>673 は sort するの忘れてた…orz


use List::Util 'shuffle';
@a = 1..37;
$" = ', ';
print "@{[sort{$a <=> $b} ((shuffle @a)[0..6])]}\n" for 1..5;


実行結果

$ perl 20_666_shuffle1-37x5.pl
5, 9, 22, 28, 30, 32, 36
1, 2, 7, 21, 23, 26, 36
6, 14, 15, 16, 19, 26, 28
13, 14, 15, 16, 30, 35, 37
1, 3, 10, 20, 27, 29, 30
676デフォルトの名無しさん
2022/08/14(日) 12:35:56.93ID:JoIEy2rI
>>666 ocaml
https://ideone.com/3UpGQV
let seq b e =
let rec aux acc n =
if n < b then acc else aux (n :: acc) (pred n)
in aux [] e
let (<<) f g x = f (g x)
let take n =
let rec aux acc n = function [] -> acc | x :: xs ->
if n <= 0 then acc else aux (x :: acc) (pred n) xs
in List.rev << aux [] n
let shuffle =
List.map snd << List.sort compare << List.map (fun x -> (Random.bits (), x))
let string_of_ints =
Printf.sprintf "[%s]" << String.concat "; " << List.map string_of_int
let f () = string_of_ints @@ List.sort compare @@ take 7 @@ shuffle @@ seq 1 37
let () = Random.self_init ();
List.iter (print_endline << f << ignore) @@ seq 1 5
677デフォルトの名無しさん
2022/08/14(日) 18:02:28.90ID:JoIEy2rI
>>666 c
https://ideone.com/EHr86S
678デフォルトの名無しさん
2022/08/14(日) 21:45:18.38ID:b/j10zkL
(1) aとbからなる文字列があるときその中で部分文字列bbaが最初に完成する文字数を求める
ab -> 0
aaa -> 0
bba -> 3
bbba -> 4
babbab -> 5
bbabbaa -> 3

(2) ちょうど50文字のaとbからなる全ての並びの文字列の内
50文字目(最後)にbbaが完成するのは何通りあるか?

長さ3文字で3文字目に完成するのはbbaのひとつだけ
長さ4文字で4文字目に完成するのはabbaとbbbaの二通り
679デフォルトの名無しさん
2022/08/14(日) 22:24:05.74ID:gf0q/4T2
>>678 Ruby
(1)
%w[ab aaa bba bbba babbab bbabbaa].each do |s|
i = s =~ /bba\K/
puts '%s -> %d' % [s, i ? i + 3 : 0]
end

# =>
ab -> 0
aaa -> 0
bba -> 3
bbba -> 4
babbab -> 5
bbabbaa -> 3

(2)
f = -> (n, a=[0, 0, 1]) {return a[n] if n<a.size; a<<f[n-1,a]+f[n-2,a]+1;a.last}

p f[49] # => 12586269024
680デフォルトの名無しさん
2022/08/14(日) 22:30:32.35ID:z6QFcjeU
行列の掛け算を実装せよ
二次正方行列 A=((1 -2) (2 3)), B = ((-2 1)(3 -1)) について
AB, BA を求めよ
可能であれば二次正方行列以外の行列についても対応せよ
実装の細かい点については出題者は指定しないので良きに計らって結構。

<お願い>
行列の積において結合則成立の証明を教えてください
681デフォルトの名無しさん
2022/08/14(日) 22:43:04.52ID:0XTzAkvO
>>678 c
https://ideone.com/hlf3c3
・(1)(2)ともに自信なし(たぶんお題の意味わかってない)
682デフォルトの名無しさん
2022/08/14(日) 22:49:01.35ID:gf0q/4T2
>>680 Ruby Matrixクラス不使用
def product(a, b)
[
[a[0][0] * b[0][0] + a[0][1] * b[1][0], a[0][0] * b[0][1] + a[0][1] * b[1][1]],
[a[1][0] * b[0][0] + a[1][1] * b[1][0], a[1][0] * b[0][1] + a[1][1] * b[1][1]],
]
end

p product([[1, -2], [2, 3]], [[-2, 1], [3, -1]])

# => [[-8, 3], [5, -1]]

# 夏休みの宿題は自分でやりましょう
683デフォルトの名無しさん
2022/08/14(日) 22:51:54.64ID:7JC7m3TJ
>>682
>二次正方行列以外の行列についても対応せよ
684デフォルトの名無しさん
2022/08/14(日) 23:05:21.92ID:gf0q/4T2
>>680 >>683
def product(a, b)
m = a.first.size
c = Array.new(a.size){[]}
a.size.times do |i|
b.first.size.times do |j|
c[j][i] = m.times.map{|k| a[k][i] * b[j][k]}.sum
end
end
c
end

p product([[1, -2], [2, 3]], [[-2, 1], [3, -1]])
# => [[0, 7], [1, -9]]

p product([[-2, 1], [3, -1]], [[1, -2], [2, 3]])
# => [[-8, 3], [5, -1]]
685デフォルトの名無しさん
2022/08/14(日) 23:09:42.44ID:ct8M+Uij
NxMのデータをどう定義するか だけの問題だな
毎回悩む 下は後悔してるタイプ
(defparameter *position-IO*
(loop
for input in '(7 8 9
4 5 6
1 2 3)
for pos below 9
collect (cons input pos)))
686デフォルトの名無しさん
2022/08/15(月) 00:42:19.42ID:PTEGgn5Q
>>679
どういう頭してたらその法則性に気づくん???
687デフォルトの名無しさん
2022/08/15(月) 01:31:39.90ID:b/MTJSvV
>>678
Kotlin script

(1)
listOf("ab","aaa","bba","bbba","babbab","bbabbaa").forEach { print("$it ->"); it.indexOf("bba").let { if (it >= 0) println(it + 3) else println(0) } }

実行時の出力

ab ->0
aaa ->0
bba ->3
bbba ->4
babbab ->5
bbabbaa ->3

(2)
println(1L shl (50 - 3))

実行時の出力

140737488355328
688デフォルトの名無しさん
2022/08/15(月) 01:56:11.12ID:RG8mAl+Q
(2)
出題の仕方が間違ってた
最後に唯一のbbaが現れるパターンと書くべきだった
自分の中ではこのことしか考えてなかったから
>>679さんは汲んでくれたようで、早さにも驚いたけど
689デフォルトの名無しさん
2022/08/15(月) 09:19:59.19ID:jWRkxbjN
なるほど, 再帰的に構成すればいいのか
aから始まる時: a + x[n-1]
baから始まる時: ba + x[n-2]
bbから始まる時: bb...bba
690デフォルトの名無しさん
2022/08/15(月) 09:43:22.06ID:90U51paY
>>686
そういう漸化式は普通に受験で良くでてくる
691デフォルトの名無しさん
2022/08/15(月) 17:00:11.92ID:ioAOBwsA
>>680
https://ideone.com/umJbre
https://ja.wikibooks.org/wiki/%E7%B7%9A%E5%9E%8B%E4%BB%A3%E6%95%B0%E5%AD%A6/%E8%A1%8C%E5%88%97%E3%81%A8%E8%A1%8C%E5%88%97%E5%BC%8F/%E7%AC%AC%E4%B8%89%E9%A1%9E/%E8%A1%8C%E5%88%97%E3%81%AE%E7%A9%8D#matrix's-associativity
692デフォルトの名無しさん
2022/08/15(月) 17:16:58.66ID:RVV7PTHo
>>691 c
https://ideone.com/47VxwF
・二次元でintのみ
693デフォルトの名無しさん
2022/08/15(月) 17:19:53.25ID:RVV7PTHo
>>680
https://ideone.com/47VxwF
・二次元でintのみ
694693
2022/08/16(火) 16:05:44.79ID:y+iYdbLW
>>680 c
https://ideone.com/lWljpL
>>693から若干の整理
・インデントも修正
695デフォルトの名無しさん
2022/08/16(火) 19:29:50.25ID:6LZk+vGC
>>688
え?言ってる意味がわからない。どういうこと?
696デフォルトの名無しさん
2022/08/16(火) 20:01:21.15ID:xodQRDI1
bba+gge=momo
697デフォルトの名無しさん
2022/08/16(火) 20:30:31.72ID:E3OXZYXp
>>695
末尾以外にbbaが現れる文字列を除外するってことじゃろう
698デフォルトの名無しさん
2022/08/16(火) 21:15:34.85ID:dhC56AkH
bbaが最後に達成されるんじゃなければ2^47計算するだけのなんの面白みもない問題になるからそこで気付く人は気づくよね
699デフォルトの名無しさん
2022/08/16(火) 23:04:49.04ID:mbmTGUKF
ついでに50文字で今度は最後がbbaじゃなくて
bbbのときとbabのときのそれぞれのパターン数を求めるって問題
700デフォルトの名無しさん
2022/08/17(水) 01:28:19.97ID:0f27vmNE
>>697
なるほど。やっと意味がわかった。
701デフォルトの名無しさん
2022/08/17(水) 14:04:15.12ID:UFtMHmKs
お題:分割されている顔文字を結合して表示してください
1つの顔文字は半角4字で構成。左右対称。2字ずつ半分に分割されてシャッフルされている
出力する顔文字の順番は自由とする

入力 < ^)(^
出力 > (^^)

入力 < ^)(-(^-)(vv)
出力 > (^^)(--)(vv)
702デフォルトの名無しさん
2022/08/17(水) 14:59:27.47ID:2ZT38iyw
お題:ナンプレ(数独)における「縦9マス(列)」「横9マス(行)」「3x3マス」をそれぞれ表示する方法を示してください
便宜的に、ナンプレのマスには左上から右へ、右下に向かい0~80までの数値を入れます。
0 1 2 3 4 5 6 7 8
...
...............80
左から1列目の9マスは
703デフォルトの名無しさん
2022/08/17(水) 15:10:22.08ID:2ZT38iyw
途中送信してしまった

お題:ナンプレ(数独)における「縦9マス(列)」「横9マス(行)」「3x3マス」のマスをそれぞれ表示する方法を示してください
※便宜的に、ナンプレのマスには左上から右へ、右下に向かい0~80までの数値を入れます。

0 1 2 3 4 5 6 7 8
...
...............80

例えば左から1列目の9マスは
[0 9 18 27 36 45 54 63 72]
となります。
等差を利用して数字だけを表示するものは不可です。
マスに何の値が入っていても表示できるようにしてください。
704デフォルトの名無しさん
2022/08/17(水) 21:47:42.92ID:GkJOOerG
>>703 c
https://ideone.com/lBKsc9
705デフォルトの名無しさん
2022/08/17(水) 23:34:27.13ID:yTY/OYLu
>>701
(><)
706デフォルトの名無しさん
2022/08/18(木) 02:15:12.90ID:KCyiWPRI
>>703
perl5
https://paiza.io/projects/amKhSF3cnp1Ny5-2yWLO4g
707デフォルトの名無しさん
2022/08/18(木) 03:07:13.35ID:dBOjwuYR
>>701 JavaScript
> ['^)(^', '^)(-(^-)(vv)', '<)(>'].map((R => input => Array.from(input.matchAll(/\((.)/g)).reduce((output, [l, r]) => output + l + R(r) + ')', ''))(r => r == '>' ? '<' : r))
[ '(^^)', '(--)(^^)(vv)', '(><)' ]
708デフォルトの名無しさん
2022/08/18(木) 10:19:41.72ID:KriVCD9m
>>701 Ruby
f = -> str do
loop do
str.sub!(/(.)\)(.*)\(\1/, '(\1\1)\2') ||
str.sub!(/\((.)(.+)\1\)/, '(\1\1)\2') ||
(break str)
end
end

%w[ ^)(^ ^)(-(^-)(vv) (-(^-)^)].each do |s|
puts '%s -> %s' % [s, f[s.b]]
end

# =>
^)(^ -> (^^)
^)(-(^-)(vv) -> (^^)(--)(vv)
(-(^-)^) -> (--)(^^)
709デフォルトの名無しさん
2022/08/18(木) 10:20:40.39ID:KriVCD9m
>>703 Ruby
PLACEHOLDER = [*0..80]

field = 9.times.reduce([]) do |s, y|
s << 9.times.map do |x|
PLACEHOLDER[9 * y + x]
end
end

puts field.map{|r| r.map{'%02d' % _1}.join}

# =>
000102030405060708
091011121314151617
181920212223242526
272829303132333435
363738394041424344
454647484950515253
545556575859606162
636465666768697071
727374757677787980
710デフォルトの名無しさん
2022/08/18(木) 10:42:28.41ID:KriVCD9m
>>703 お題をよく読んでいなかった >>709の続き
row = -> (n, field) {field[n]}
column = -> (n, field) {field.map{_1[n]}}
block = -> (n, field) {9.times.map{n * 3 + n / 3 * 18 + _1 + _1 / 3 * 6}.map{field.flatten[_1]}}

puts row[7, field].join(?,)
# => 63,64,65,66,67,68,69,70,71

puts column[7, field].join($/)
# =>
7
16
25
34
43
52
61
70
79

puts block[7, field].each_slice(3).map{_1.join(?,)}.join($/)
# =>
57,58,59
66,67,68
75,76,77
711704
2022/08/18(木) 23:38:15.48ID:YBxy/c4L
>>703 c
https://ideone.com/0yXRih
>>704から若干の整理
712デフォルトの名無しさん
2022/08/19(金) 23:42:01.44ID:GkIv/1vJ
お題
<user>:<group>の数
<user>:<group>
<user>:<point>の数
<user>:<point>
が入力されます

<group>ごとに<point>を集計して<group>順に
<group>:<point>を出力してください

例)
// 入力
6
UserE:GroupC
UserD:GroupA
UserB:GroupC
UserA:GroupC
UserC:GroupB
UserF:GroupB
6
UserB:3
UserF:2
UserD:5
UserC:13
UserE:11
UserA:7

// 出力
GroupA:5
GroupB:15
GroupC:21
713デフォルトの名無しさん
2022/08/19(金) 23:58:05.14ID:zRvvDV0W
なんで数を入力してるんだ?
後の情報であきらかではないか
まさかグループ名が整数でも良いと考えている?
714デフォルトの名無しさん
2022/08/20(土) 00:02:54.24ID:xIohwuBb
>>712 Ruby
g, p = str.split(/^\d+$/)[1, 2].map{_1.strip.each_line.map{|s| s.chomp.split(?:)}.to_h}
puts g.reduce(Hash.new(0)){|h, (k, v)| h[v] += p[k].to_i; h}.sort.map{_1.join(?:)}

# =>
GroupA:5
GroupB:15
GroupC:21
715デフォルトの名無しさん
2022/08/20(土) 07:49:15.49ID:/HXUcxOA
// >>712 Node.js
import readline from 'node:readline';
const rl = readline.createInterface({input: process.stdin, output: process.stdout});
const all = [/* {user, group, point}, ... */];
let usergroup = false;
rl.on('line', line => {
line = line.trim();
if (line) {
if (/^\d+$/.test(line)) {
usergroup = !usergroup;
} else if (usergroup) {
const {groups} = line.match(/^(?<user>[^:]+):(?<group>[^:]+)$/);
all.push(groups);
} else {
const {groups: {user, point}} = line.match(/^(?<user>[^:]+):(?<point>\d+)$/);
Object.defineProperty(all.find(_ => _.user == user), 'point', {value: Number(point), enumerable: true});
}
} else {
rl.close();
}
});
rl.on('close', () => {
for (const [group, point] of Object.entries(all.reduce((gp, {group, point}) => {gp[group] = (gp[group] ?? 0) + point; return gp;}, {})).sort(([a], [b]) => a < b ? -1 : 1)) {
console.log(`${group}:${point}`);
}
});
716デフォルトの名無しさん
2022/08/20(土) 17:09:35.31ID:tvd+mgyM
>>712 c
https://ideone.com/Edol3U
717デフォルトの名無しさん
2022/08/20(土) 21:26:59.76ID:myFbjTal
>>712
C#
https://paiza.io/projects/IAgPLTHFbJ-HmDcLHFrNYA
718デフォルトの名無しさん
2022/08/20(土) 22:24:09.90ID:5JSGWnVi
>>703ってこれじゃだめなのかな
7行で書ける
https://ideone.com/eKTMZr
71996
2022/08/21(日) 02:42:00.00ID:P6BPpVvp
>>712 Perl5

use feature qw{say signatures}; no warnings "experimental::signatures";
sub ($n, @a) {
 $h{$$_[0]} = $$_[1] for map{[/(\w+)/g]} @_[1..$n];
 sub ($m, @) {
  $g{$h{$$_[0]}} += $$_[1] for map{[/(\w+)/g]} @_[1..$m];
 }->(@a[$n..$#a]);
 say "$_:$g{$_}" for sort keys %g;
}->(<>);

※見易くするためインデントを全角スペースに置換してあります。


実行結果:
https://ideone.com/GxsRSY
720デフォルトの名無しさん
2022/08/21(日) 06:03:07.44ID:V5T4kdVo
>>712
<group>順にって、何を元にして group の順序を決めるの?
入力された順?それだと例の入力のように GroupC, GroupA, GroupC の順で来ている場合はどうするの?
721デフォルトの名無しさん
2022/08/21(日) 07:03:57.35ID:3JIuIXQv
<group>毎という事だと思う
サンプル見るとgroup名か集計したpointの昇順かも知れないけどそこはどうとでもなりそうだし
722デフォルトの名無しさん
2022/08/21(日) 08:49:24.60ID:0ZMA3aWJ
>>713
実際にここでも数字を使っている例が出て来てるからわかると思うけど
競プロなんかではよくあるフォーマットだよ
723デフォルトの名無しさん
2022/08/21(日) 18:07:19.66ID:ecIOs+Jg
>>666
C#
https://paiza.io/projects/sT_SLT3n0NNab0a-ZD7IHQ
724デフォルトの名無しさん
2022/08/21(日) 18:28:38.88ID:Y2TZP89X
お題:Hello, World!を出力中にプログラムを強制終了せよ
Hello, World!が完全に出力されたらGAME OVERとする
725デフォルトの名無しさん
2022/08/21(日) 18:45:13.28ID:ui07Fbeq
>>724 Ruby
Thread.new{'Hello, World!'.each_char{|c| print c; sleep 0.01}; raise 'GAME OVER'}
Thread.new{exit}

# =>
Hello, World!
726デフォルトの名無しさん
2022/08/21(日) 18:49:48.17ID:ecIOs+Jg
>>701
C#
https://paiza.io/projects/D1PZTVPBn2qnksCQnwYQmw?language=csharp
727デフォルトの名無しさん
2022/08/21(日) 18:51:27.42ID:ui07Fbeq
>>725 訂正
Thread.new{'Hello, World!'.each_char{|c| print c; sleep 0.01}; raise 'GAME OVER'}

Thread.new{exit!}


# => H
728デフォルトの名無しさん
2022/08/21(日) 19:50:47.18ID:ecIOs+Jg
>>703
C#
https://paiza.io/projects/HzrEP1l1vX4Z3JUqmHSUwg
729デフォルトの名無しさん
2022/08/21(日) 20:19:09.38ID:/7u80ZfN
>>724 c
https://ideone.com/xaMOR7
730デフォルトの名無しさん
2022/08/21(日) 21:11:05.94ID:ecIOs+Jg
>>648
C#
https://paiza.io/projects/2cxaJzBNbukA4-EolW07Cw
731729
2022/08/22(月) 19:20:01.17ID:7CA3B9Dd
>>724 c
https://ideone.com/k8R7TU
>>729 どう見ても正常終了です。本当にありがとうございました。
・子プロセスの強制終了を見届けてから自分自身も強制終了
732デフォルトの名無しさん
2022/08/25(木) 15:38:14.81ID:bJn+zm7R
>>724
その強制終了って人間が Ctrl + C を押すなどしてやるという意味?
間に合わずに全部出力し切った場合は GAME OVER 出すということ?
733デフォルトの名無しさん
2022/08/25(木) 15:52:23.73ID:BfuXla1W
>>732
強制終了→exit(0)などでプログラム的に終了させる
GAME OVER→お題の達成失敗
734デフォルトの名無しさん
2022/08/25(木) 16:09:53.36ID:6j74uL6b
54.144.0.0/12といったどこかで見たことあるような形式の文字列を入力すると
^(?!(54.144.|54.145.|54.146.|54.147.|54.148.|54.149.|54.150.|54.151.|54.152.|54.153.|54.154.|54.155.|54.156.|54.157.|54.158.|54.159.))
といったいい感じの文字列が標準出力に出力されるやつ、誰か作れますか?
例の他にも54.208.0.0/13 54.216.0.0/14 54.192.0.0/12 54.160.0.0/11 54.220.0.0/15といった似た感じの文字列が入力され
やはりいい感じに処理された別の文字列が出力されます

できればライセンスはゼロ条項BSDライセンスでお願いします
735デフォルトの名無しさん
2022/08/25(木) 16:22:36.77ID:0z7AphVM
ま、まあ、作れなくはないかな…
736デフォルトの名無しさん
2022/08/25(木) 18:48:07.98ID:0xws5w3m
フワっとした頭の中にしか定義されてない案件なんて誰もこなせないぞ
本人以外は
737デフォルトの名無しさん
2022/08/25(木) 20:40:48.98ID:0z7AphVM
>>734
Java
https://paiza.io/projects/Fot4E7hZfbJ95P_hSbI3NQ
738デフォルトの名無しさん
2022/08/25(木) 21:10:16.35ID:/BGaqBqg
>>734 JavaScript
function _734(ip_range) {
const result = [];
const as = ip_range.split(/\D/).map(_ => Number(_));
const m = as.at(-1);
const q = Math.floor(m / 8);
const r = m % 8;
const e = 8 - r;
const l = as[q].toString(2).padStart(8, '0').slice(0, r);
for (let i = 0, sup = 2 ** e; i < sup; i++) {
as.splice(q, 1, Number.parseInt(l + i.toString(2).padStart(e, '0'), 2));
result.push(as.slice(0, q + 1));
}
return '^(?!(' + result.map(_ => `${_.join('\\.')}${q < 3 ? '\\.' : ''}`).join('|') + '))';
}
739デフォルトの名無しさん
2022/08/25(木) 22:00:47.00ID:JPPVgQ9Y
beer licenseでよければ書くが
740デフォルトの名無しさん
2022/08/26(金) 04:09:37.08ID:NIKxWs5c
割とすぐに出来るもんなんですね
どちらも実用上問題なさそうな、いい感じの実行結果です

>738は最新の実行環境に心当たりがなかったので確認に手間どりましたが
Chromeのコンソールから実行して確認できました
(cscriptで実行しようとしたらat()に対応してなかったので)

いやー勉強になります、ありがとう
741デフォルトの名無しさん
2022/08/26(金) 04:49:22.52ID:0rX9u4fb
>>740
スレタイも読めないアホは消えろ
74296
2022/08/26(金) 05:19:52.33ID:GgZblxs6
>>740
人をタダで利用してない?
743デフォルトの名無しさん
2022/08/26(金) 11:51:47.61ID:d54FvNjc
>>733
マルチスレッドかマルチタスクで "Hello, world!" を出力する処理と、ランダムなタイミングでそれを強制終了させる処理が動くということで良いのか?
そして出力中に停止できなかったら "GAME OVER" が最後に出ると。
744デフォルトの名無しさん
2022/08/26(金) 14:32:15.45ID:71YXfdUw
>>743
その実装でもいいよ
題意はいかにHello, World!出力中にプログラムを終了させるかだから
sleep挟んでもいい
745デフォルトの名無しさん
2022/08/26(金) 18:44:07.03ID:NQ4mbOjq
>>733
#!/usr/bin/env sh
cat <<"EOL" | perl -ne '/(Hello, World)(?:[!])/ ? die " $1 got failed." : print'
> foo
> bar
> baz
> Hello, World
> Hello, World
> Hello, World!
> you can't see me, right?
> EOL
foo
bar
baz
Hello, World
Hello, World
Hello, World got failed. at -e line 1, <> line 6.
746デフォルトの名無しさん
2022/08/26(金) 21:28:18.28ID:NIKxWs5c
はて?プログラミングのお題を投げて、競技的な興味をもって答えたくなった人が答え
その回答に興味があれば参照して「普段は扱ってないこの言語だとそういうやりかたなのか」
「自分とは違うスマートなやり方があったのか」と思ったりするスレ、という理解でしたが

もしかして投げたときに”お題”という文字が抜けてたのが問題ありましたか?
概ね正解とするに足る実行結果を、実用上問題なさそうと表現したことが拙かったですか?
もしそうなら申し訳ない、次からは気をつけます
747デフォルトの名無しさん
2022/08/26(金) 21:31:39.94ID:NIKxWs5c
ついでというかなんというか>734の自分のお題に対する自己回答です(色々と手抜きしてありますが)
#!/usr/bin/ksh
function proc {
typeset A B C D E F N M L I
IFS='.','/' read A B C D E <<XYZ
$1
XYZ
let N="(${E}+8)/8" let M="8-(${E}%8)"
if [ $N -eq 5 ]; then echo -n "${A}.${B}.${C}.${D}"; return; fi
set -A BASE dummy "" "${A}." "${A}.${B}." "${A}.${B}.${C}."
set dummy $A $B $C $D; shift $N; F=$1; let L="$F-1+(1<<$M)"
for I in `seq $F $L`; do echo -n "|${BASE[$N]}${I}."; done; }
if [ $# -eq 0 ]; then echo "need CIDR/s"; exit 65; fi
set -A CIDR dummy $@;
echo -n "^(?!dummy"; for I in `seq 1 $#`; do proc ${CIDR[$I]}; done; echo ")"
exit 0
74896
2022/08/29(月) 02:30:43.54ID:QAZMtAov
>>734 Perl5

for (<>) {
 print;
 @a = /(\d+)/g;
 $w = pop @a;

 $o = ($w - 1) >> 3;
 $m = $w - $o * 8;
 $n = 2**(8 - $m);

 $l = join '.', @a[0..$o-1];
 $l .= '.' if '' ne $l;

 $h = $a[$o] & (255 << (8 - $m));

 $r = $o < 3 ? '.' : '';
 @b = map{$l . ($h + $_) . $r} 0..($n - 1);

 print '^(?!(' . join('|', @b) . "))\n";
 print "\n";
}

※見易くするためインデントを全角スペースに置換しています。


実行例:
https://ideone.com/VBJMMo
74996
2022/08/29(月) 02:55:16.14ID:QAZMtAov
>>748
128.0.0.0/1 の結果が変
バグ入りだ、ゴメンチャイ
75096
2022/08/29(月) 03:01:45.22ID:QAZMtAov
あれ?いいのかな?
仕様を推測して作ったけどちょっと混乱したかも…
寝るわ
751デフォルトの名無しさん
2022/09/09(金) 22:29:09.28ID:zwPgoVui
お題
長方形の1辺の長さのリストと正方形の面積のリストが入力されます

それぞれの正方形の面積について
長方形の1辺の長さのリストから2つを選んで掛け合わせ長方形の面積を計算します
長方形の面積が正方形の面積以上でかつ最小の面積となる組み合わせを探して出力してください
見つからなかった場合はerrorを出力してください

(例)
// 1辺の長さのリスト
[17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]

// 正方形の面積のリスト
[390, 240, 37, 396, 198, 99, 242, 53, 329, 202]

// 出力
390:error
240:16,17
37:3,13
396:error
198:11,18
99:6,17
242:16,17
53:3,18
329:error
202:13,16
752デフォルトの名無しさん
2022/09/09(金) 23:02:00.41ID:Un8DgV3E
>>751
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
c = a.group_by(&:itself).values.map{_1.size > 2 ? _1[0, 2] : _1}.flatten.permutation(2).map{[_1 * _2, [_1, _2].sort]}.uniq.sort.to_h
b.each{|s| puts '%d: %s' % [s, c.find{_1[0] >= s}&.[](1)&.join(?,) || :error]}

# =>
390: error
240: 16,17
37: 3,13
396: error
198: 11,18
99: 6,17
242: 16,17
53: 3,18
329: error
202: 13,16
753デフォルトの名無しさん
2022/09/09(金) 23:46:43.88ID:3788iROh
>>751 ruby
https://ideone.com/hBHe51
def f(as, bs)
c = as.combination(2).map(&:sort).to_a.uniq.map {|x, y| [x * y, x, y]}.sort_by(&:first).each_cons(2)
bs.map do |b|
d = c.find {|e, f| e[0] < b && b <= f[0]}
"#{b}:#{d ? d[1][1..2].join(',') : 'error'}"
end
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
puts f(a, b)
754753
2022/09/10(土) 00:24:11.29ID:4GiNoMjQ
>>751
https://ideone.com/2UDrLT
>>753を若干の整理
>>752さんのを見て&.を勉強
def f(a, b)
c = a.combination(2).map(&:sort).to_a.uniq.map {|x, y| [x * y, x, y]}.sort
b.map {|b| "#{b}:#{c.find {|e| b <= e[0]}&.[](1..2)&.join(',') || 'error'}"}
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
puts f(a, b)
755デフォルトの名無しさん
2022/09/10(土) 00:34:04.51ID:sDbT/M8A
みんな解くのはえーなぁ
75696
2022/09/10(土) 02:29:07.85ID:7pWsuKpo
>>751 Perl5

$ls = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1];
$ss = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202];
sub f {2 < @_ ? (f(@_[1..$#_]), map{[$_[0] * $_, $_[0], $_]} @_[1..$#_]) : ()}
@rs = sort{$$a[0] <=> $$b[0]} f @$ls;
for $aa (@$ss) {
 @b = grep{$aa <= $$_[0]} @rs;
 print @b ? "$aa:$b[0][1],$b[0][2]\n" : "$aa:error\n";
}


実行結果
$ perl 20_751.pl
390:error
240:17,16
37:3,13
396:error
198:18,11
99:17,6
242:17,16
53:3,18
329:error
202:13,16
757デフォルトの名無しさん
2022/09/10(土) 11:29:46.54ID:q8enYz1J
>>751 octave
https://ideone.com/WGkm27
function c = f(a, b)
u = unique(sort(nchoosek(a, 2), 2), 'rows');
p = prod(u, 2);
c = cell(size(b));
for i = 1:numel(b)
d = min(p(b(i) <= p));
if isempty(d)
c{i} = sprintf('%d:error', b(i));
else
s = strjoin(arrayfun(@(n) {num2str(n)}, u(p == d, :)), ',');
c{i} = sprintf('%d:%s', b(i), s);
end
end
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1];
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202];
cellfun(@disp, f(a, b))
758デフォルトの名無しさん
2022/09/10(土) 13:32:08.25ID:q8enYz1J
>>751 c
https://ideone.com/Cqx8M3
#include <stdio.h>
void f(int *a, int *b, int na, int nb) {
int i, j, k, found, min, x, y;
for (i = 0; i < nb; i++) {
found = 0;
for (j = 0; j < na; j++)
for (k = 0; k < na; k++)
if (j != k && b[i] <= a[j] * a[k] && (!found || a[j] * a[k] < min))
found = 1, min = a[j] * a[k], x = a[j], y = a[k];
if (!found) printf("%d:error\n", b[i]);
else printf("%d:%d,%d\n", b[i], x, y);
}
}
int main() {
int a[] = {17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1};
int b[] = {390, 240, 37, 396, 198, 99, 242, 53, 329, 202};
f(a, b, sizeof a / sizeof *a, sizeof b / sizeof *b);
return 0;
}
759デフォルトの名無しさん
2022/09/10(土) 19:18:11.93ID:PLqR4TKQ
>>751
Kotlin

可能な限り漢字を使ったプログラムにしてみたが、余計にゴチャゴチャしてしまったかな?

https://paiza.io/projects/ay4L7Wchnt6lGUvkh6h21A

240 が 16, 17 ではなく 17, 16 のように出るが、まあよかろう。
(リストの順番で覚えているのでこうなる)。
760デフォルトの名無しさん
2022/09/10(土) 22:25:19.23ID:7X0yi8nW
お題

>>751の問題について

長方形の1辺の長さをソートして縦方向と横方向に並べて交差するところに長方形の面積を入れて表にします

プログラミングのお題スレ Part20 YouTube動画>3本 ->画像>5枚
この図は50を探すところを描いています

青色の斜めの値の中から正方形の面積以上かつ最小の値を見つけその場所を出発点とします
長方形の面積が正方形の面積よりも大きい場合は表を上にたどり、長方形の面積が正方形の面積よりも小さい場合は表を右にたどります
右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます

しゃくとり虫が動いてるように見えるのでこれをしゃくとり法と呼ぶことにします

>>751の問題をしゃくとり法で解いてください
761デフォルトの名無しさん
2022/09/10(土) 22:51:25.27ID:7X0yi8nW
> 右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます

これは間違いかも、これだと55を見つけられない
各自で考えていただければありがたく
762デフォルトの名無しさん
2022/09/10(土) 22:52:41.16ID:7X0yi8nW
いや、いいのか!? ダメだ混乱してきたもうパニックですわ
763デフォルトの名無しさん
2022/09/10(土) 22:57:53.10ID:sDbT/M8A
おちつけ
764デフォルトの名無しさん
2022/09/10(土) 23:12:42.56ID:7X0yi8nW
>>760
> 右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます

これは間違いでした、上方向から右方向に変わる直前の値が回答候補ですね

50を探す場合、56,55,51が候補です
プログラミングのお題スレ Part20 YouTube動画>3本 ->画像>5枚
765素数を数えるんだ
2022/09/10(土) 23:25:22.59ID:22kPJ9rf
2, 3, 5, 7, 11, 13, 17, 19......
766デフォルトの名無しさん
2022/09/11(日) 01:04:25.98ID:/LH0BDzE
お題
2~19までの素数を生成し掛け算の表を出力してください
767デフォルトの名無しさん
2022/09/12(月) 01:50:52.46ID:xawmAmgS
>>751
Java
https://paiza.io/projects/9bNWiYGC-KndYn1QmRsYIA
768デフォルトの名無しさん
2022/09/12(月) 10:44:10.79ID:VxR6iqOp
>>764
Kotlin
https://paiza.io/projects/caNg1GtDFhBF9Rk6AwC52Q

出力をHTMLにするとそれっぽく表示できた。
50は正方形の面積リストの最初に入れたが例の画像と同じような見た目になった。
769デフォルトの名無しさん
2022/09/12(月) 18:32:56.65ID:eGlSQ2pk
>>751
https://ideone.com/mFYcmC

>>764
https://ideone.com/vwjQvN
770デフォルトの名無しさん
2022/09/13(火) 22:22:38.95ID:B0VHMNYc
>>766
C#
https://paiza.io/projects/mR6tnluHgitHnC0VJWc6Wg
771デフォルトの名無しさん
2022/09/13(火) 22:25:19.07ID:V4Kz63G0
お題:OpenGLで四角形を3つ描画せよ
一番下の四角形が1番大きく赤色
その上にのってる四角形は2番目に大きく緑色
さらにその上にのってる四角形は3番目に大きく青色
772デフォルトの名無しさん
2022/09/14(水) 12:47:57.36ID:LkrioAg+
お題

フェアフィールドの公式は、西暦1年1月1日から指定した日付までの日数を求めるもので次の式です
日数 = (365 * Y) + (Y / 4) - (Y / 100) + (Y / 400) + (306 * (M + 1) / 10) + D - 428

UNIX時間は、西暦1970年1月1日午前0時0分0秒からの経過秒数です

フェアフィールドの公式を用いてUNIX時間から年月日を求めて出力してください

(例)
1000000000 → 2001-09-09T01:46:40
1234567890 → 2009-02-13T23:31:30
773デフォルトの名無しさん
2022/09/14(水) 15:20:59.73ID:s+3MjQLV
>>772 bat
@echo off &setlocal
call :Conv_uTime2iso 1000000000
call :Conv_uTime2iso 1234567890
pause&exit /b
:Conv_uTime2iso
set /a "GD=(UT=%~1)/86400+719468, h=100+(R=UT%%86400)/3600, n=100+(R%%=3600)/60, s=100+R%%60, y=400*(GD/146097), y+=100*(i=(R=GD%%146097)/36524), y+=(R%%=36524)/1461*4, y+=j=(R%%=1461)/365, R=R%%365+365*(L=(i|j)/4), f=(k=(R*5+2)/153)/10, d=R+101-(306*k+4)/10, m=k+103-f*12, y+=f-L"
echo %y%-%m:~-2%-%d:~-2%T%h:~-2%:%n:~-2%:%s:~-2%
774デフォルトの名無しさん
2022/09/15(木) 05:31:46.38ID:LgD4XKTt
//>>772 JavaScript
function _772(epoch) {
/**/epoch = BigInt(epoch);if (epoch < 0n) {throw new RangeError('');}
/**/const lastDateOfMonth = (_ => Object.fromEntries(Array.from([, , , ..._.slice(2), _[0], _[1]].entries()).filter(([, v]) => v)))(Array.from(new Array(12).keys()).map(m => BigInt(new Date(2_022, m + 1, 0, 0, 0 - new Date().getTimezoneOffset()).getDate())));
/**/const FAIRFIELD = fairfield(1_969n, 12n, 31n) + epoch / 86_400n + 1n;
/**/let [Y, M, D] = [1_969n, 13n, 1n];
/**/for (; D <= 58n; D++) {if (FAIRFIELD == fairfield(Y, M, D)) {return {Y: 1_970n, M: 1n + D / 31n, D: D % 31n};}}
/**/for (Y = 1_970n; Y <= Number.MAX_SAFE_INTEGER; Y++) {
/**//**/for (M = 3n, D = 1n; D <= 366n; D++) {
/**//**//**/if (FAIRFIELD == fairfield(Y, M, D)) {
/**//**//**//**/if (D == 366n) {
/**//**//**//**//**/if (isLeapFullYear(Y + 1n)) {
/**//**//**//**//**//**/return {Y: Y + 1n, M: 2n, D: 29n};
/**//**//**//**//**/} else {
/**//**//**//**//**//**/return {Y: Y + 1n, M: 3n, D: 1n};
/**//**//**//**//**/}
/**//**//**//**/} else {
/**//**//**//**//**/for (; lastDateOfMonth[M] <= D; D -= lastDateOfMonth[M++]);
/**//**//**//**//**/if (M <=12n) {
/**//**//**//**//**//**/return {Y, M, D};
/**//**//**//**//**/} else {
/**//**//**//**//**//**/return {Y: Y + 1n, M: M % 12n, D};
/**/}}}}}
/**/function isLeapFullYear(Y) {return Y % 4n == 0n && Y % 100n != 0n || Y % 400n == 0;}
/**/function fairfield(Y, M, D) {return Y * 365n + Y / 4n - Y / 100n + Y / 400n + 306n * (M + 1n) / 10n + D - 428n;}
}
775デフォルトの名無しさん
2022/09/15(木) 22:07:10.52ID:AaudQZzp
うるう秒のテーブルがないと求められなくない?
776デフォルトの名無しさん
2022/09/16(金) 00:34:31.77ID:ETiYX3D6
400年で146097日増えるみたいだから適当にバイアス付けて146097で割る予感
777デフォルトの名無しさん
2022/09/16(金) 00:35:51.49ID:ETiYX3D6
違う
適当にバイアス付けて÷365.2425だ
778デフォルトの名無しさん
2022/09/16(金) 01:05:26.42ID:/mniU0r8
フェアフィールドの公式てwikipediaに書かれている出自不明な公式でも何でも無いでっち上げの記事でしょ
式の解説文がこれまた頭悪くて、なのに誰も修正しないという
779デフォルトの名無しさん
2022/09/16(金) 01:13:35.77ID:mMDmJ4/Z
グレゴリオ歴のとこに解説載ってるよ
https://ja.m.wikipedia.org/wiki/%E3%82%B0%E3%83%AC%E3%82%B4%E3%83%AA%E3%82%AA%E6%9A%A6
780デフォルトの名無しさん
2022/09/16(金) 21:18:24.66ID:k/2PI65L
>>772
Java
https://paiza.io/projects/GkxKdFMCsjdM1lSoxk8mhQ
781デフォルトの名無しさん
2022/09/17(土) 17:48:30.91ID:fw6a0lZo
お題
2*2の整数行列がいくつか与えられる。
これらを適当な順番で掛け合わせる(行列積)ことで零行列を作ることが可能かどうか判定せよ。
ただし、同じ行列を2回以上使用してもよい。


[[1, 0], [0, 0]], [[0, -1], [1, 0]] =>可能(行列1*行列2*行列1==0)
[[1, 2], [3, 4]], [[0, -3], [2, 4]] =>不可能(正則行列だから)
782デフォルトの名無しさん
2022/09/17(土) 18:42:03.76ID:ZMguHADz
>>781
零因子の発掘ですか、濃ゆいお題ですね…
783デフォルトの名無しさん
2022/09/18(日) 11:34:42.07ID:qZaavGGf
お題:循環参照を開放せよ。

java
https://ideone.com/xe64l4
・ガベコレの対象になったのを確認まででヨシとす

c++
https://ideone.com/1gXTAX
784デフォルトの名無しさん
2022/09/18(日) 12:52:34.73ID:BMeW7wRv
>>783
Java
https://paiza.io/projects/KPlcyOa7-yBMKlBes0ImXg
785デフォルトの名無しさん
2022/09/18(日) 16:37:27.93ID:BMeW7wRv
>>783
Python
https://paiza.io/projects/xCNkUNUSXbwUSWTf8OEA-Q
786デフォルトの名無しさん
2022/09/19(月) 02:47:41.37ID:/08McGz8
>>783
Kotlin
https://paiza.io/projects/dZhh0NhaeEwnxD45W6V7Ng

Java VM 上で動くから Java と同じで参照している変数を null にして System.gc() するだけ。
787デフォルトの名無しさん
2022/09/24(土) 01:13:05.90ID:uYRJl5GL
>>772
亀レスHaskell
https://ideone.com/y7jYXr
色々考えて結局テーブル作って処理という最後の手段
わざわざ公開するほどのもんでもないけど一区切りつけるため
暦の勉強になった
なんで大の月と小の月の配置はこんなみっともないことになってるんだろ?
歴史家が調べでよくわからんみたいだけど
788デフォルトの名無しさん
2022/09/24(土) 04:40:38.82ID:6vPOYH6k
>>772
だめ。その式に当てはめると必ずずれる。
789デフォルトの名無しさん
2022/09/24(土) 07:42:29.88ID:aunrhsr3
うるう秒を考慮しないとずれる
790デフォルトの名無しさん
2022/09/24(土) 09:42:29.34ID:v3rIJe0P
>>788
問題には書かれていないけれどその式は条件によって前処理が必要
・1-2月は前年として扱う。 1年を3-14月として計算
m=1 or 2 の時 y=y-1, m=m+12

>>789
UNIXTIMEにうるう秒なんて無い
791デフォルトの名無しさん
2022/09/24(土) 11:33:11.17ID:aunrhsr3
>>790
日付に変換する過程でうるう秒考慮しないとずれるでしょう
792デフォルトの名無しさん
2022/09/24(土) 12:13:55.28ID:v3rIJe0P
>>791
UNIXTIMEは「epocからの実時間の秒数」では無い
実時間から、うるう秒は加減され含まれず、1日は86400秒換算
だからそれを日時に変換しても「うるう秒の時刻を表せない」だけでズレなど発生しない
793デフォルトの名無しさん
2022/09/24(土) 12:34:24.41ID:aunrhsr3
>>792
レスありがとう。不勉強だったわ。
794デフォルトの名無しさん
2022/09/24(土) 16:57:05.53ID:6vPOYH6k
>>790
出題ミスか。
これまでに作られたプログラムはその辺のことを考慮したプログラムになっていたのかな?
だったら分かってたんだからその辺の事を書いておいて欲しかったな。
795デフォルトの名無しさん
2022/09/24(土) 22:38:52.94ID:Fvr5cAu6
wikiにはそこまで詳しい解説はなかったけど式みたらわかったけどな
⌊(m+1)/30.6⌋
という項
⌊x/30.6⌋という関数は0,1,2,3,4となる値が
31,30,31,30,31,31,(繰り返し)‥①
と変化してコレを周期153で繰り返す
月の長さは3月から見ると
31,30,31,30,31,31,30,31,30,31,31,28(29)
となってるから①を一月分左に平行移動すれば良いとわかる
からの⌊(m+1)/30.6⌋
796デフォルトの名無しさん
2022/09/24(土) 22:45:27.51ID:Fvr5cAu6
>>795

間違えた
⌊m×30.6⌋という関数は0,1,2,3,4,‥の時の値が
31,31,30,31,30
の繰り返し
件の公式のmの項はコレを一月分ずらしてる
797デフォルトの名無しさん
2022/09/28(水) 02:17:31.98ID:UDkh+W3M
お題:4回呼び出したらその内の1回が失敗する関数を書け
失敗した場合は「failed」と表示、成功した場合は「ok」と表示せよ
798デフォルトの名無しさん
2022/09/28(水) 09:47:46.29ID:+QlM3L0o
seed変数はパラメータ渡しで良いですか
799デフォルトの名無しさん
2022/09/28(水) 19:05:59.31ID:WptV1D3q
>>797 c
https://ideone.com/PIpRmD
void f() {
static int i = 0, j, k = 4;
if (i == 0) j = rand() % k;
puts(i == j ? "failed" : "ok");
i = (i + 1) % k;
}
800デフォルトの名無しさん
2022/09/28(水) 22:51:23.95ID:7XofIB3A
>>797 Ruby
def f
$f_cnt||=0
puts$f_cnt==3||(rand(4)==~-$f_cnt+=1)?:failed: :ok
end
801デフォルトの名無しさん
2022/09/30(金) 04:16:06.13ID:F2zw9Wj+
>>797
Kotlin

https://paiza.io/projects/QipeLOxxfW3_GNBarDA-8w

Int型1つ分のワークエリアを呼ぶ側から与えてそこでカウントして必ず4回の内1回が失敗になる。
乱数を使うと4回の内1回失敗ではなくなる可能性があるので使っていない。

引数としてInt型の参照を渡しても中身を変えられないのでIntArray(Java なら int[] に相当)で1要素作ってIntArrayの参照を渡している。
クラスでやっても良かったが、わざわざクラス作るほどのことでもないと思ったのでこの方式にした。
802デフォルトの名無しさん
2022/10/01(土) 01:23:09.73ID:I5nFps2z
>>797
Java
https://paiza.io/projects/AOePb_OJDX44jb_jRddrsw?language=java
803デフォルトの名無しさん
2022/10/09(日) 17:49:59.08ID:tsulmG4c
お題: あみだ プログラミングのお題スレ Part20 YouTube動画>3本 ->画像>5枚
画像のようなマス目の上に直線を引いたあみだを次のように表現することにします。
N: 縦線の本数(列数)
M: 橋が架けられている行数
B: M行N-1列の二次元配列で、橋が架けられていたら1、そうでない場合は0が格納されています。
あらかじめ、あみだの入力には左から0~N-1までの整数が割り振られていることにします。また、同じ行に橋が二つ連続で隣り合うことは禁止されています。
一応の制約: 2 <= N <= 100, 1 <= M <= 100
あみだに橋が1つも存在しない場合、M=1となり、Bは1行N-1列の大きさで、すべての要素が0の2次元配列になることにします。

お題1: N, M, Bが与えられるので、あみだの出力を求めてください。(入出力のフォーマットは各自で適宜変更してもいいです。)
入力例(画像のもの):
4
4
1 0 1
0 1 0
1 0 0
0 1 0
出力例:
3 0 1 2

お題2: Nとあみだの出力が与えられるので、Mをできるだけ小さくしたあみだを求め、Mと Bの一例 を表示してください。
入力例:
5
2 4 0 1 3
出力例:
3
0 1 0 1
1 0 1 0
0 1 0 0
あみだ関連のお題は過去スレで何回か見かけたがろくに相手にされていなかったのであげてみる。
804デフォルトの名無しさん
2022/10/10(月) 00:03:47.74ID:Em47unOv
reduced expressionのまとめられる積を出来るだけまとめたものが必ず最短になるなら簡単なんだけどな
805デフォルトの名無しさん
2022/10/10(月) 12:25:25.51ID:CId/Nblu
Gapとか使えばいいんじゃね
806デフォルトの名無しさん
2022/10/10(月) 15:00:17.69ID:AiOpkeUk
reduced expression の長さ自体の計算は簡単だけどこの問題は"reduced expressionの長さを求めよ"ではないからそこまで数学的に単純じゃないよ
807デフォルトの名無しさん
2022/10/10(月) 20:53:48.73ID:uiS3Rjx/
>>803
お題1
https://paiza.io/projects/tUaZay_JvtZRkIaUhjYF7Q

お題2
https://paiza.io/projects/1yDZy-Vx-C9Q9Z_Oc03Mtw

お題1とお題2でそれぞれ入力と出力をあわせるようにした
Mをできるだけ小さくって難しいな
これでいいのかわからん
808デフォルトの名無しさん
2022/10/10(月) 21:09:44.88ID:TC3V9vEZ
アルゴリズムが存在するのは明らかだしひとつ答え見つけるアルゴリズムも簡単
でもreduced expression見つけるアルゴリズムと同程度のアルゴリズムとなると途端に難しくなる

reduced expressionの場合には置換σのreduced expressionを見つけるには
(1) σ = idであるか否か判定する、σ=idなら空列を返して終了
(2) そうでない場合σ(i) > σ(i+1)であるiを見つける、見つけたiに対してτ=σ(i i+1)とおいてτほreduced expression sを求める
(3)
809デフォルトの名無しさん
2022/10/10(月) 21:16:09.04ID:TC3V9vEZ
(3) s ( i i+1 )を返して終了
でもとまる
ここでミソはreduced expressionの1番右は( i i+1 )と決め打ち出来ること、コレがあるから多項式時間で終わる
しかしアミダの場合1番右の初手をそんなに簡単に決定出来るかが分からん
初手の可能性は転置全部の可換な集合のうち極大であるもの全体のいずれかに最短が入る事は簡単に示せるけど、そのような極大な可換集合をどれとっても必ずうまくいくことの証明がむずかしい
多分出来るんだとは思うけど正直数学板で話題にするような話でプロ板で出すような問題じゃない気がする
810441
2022/10/11(火) 10:43:04.37ID:Q+yx5xdI
>>803
最近やっとpythonを学び始めたレベルだから合ってるかわからん
コメントとかもちゃんと書いたほうがいいのだろうか
暇な人添削してくれると嬉しい

お題1
https://ideone.com/uQ0lEu
お題2
https://ideone.com/IvtRj2
811デフォルトの名無しさん
2022/10/11(火) 12:04:38.77ID:xv8Y5zzF
しゃぶれよ
81296
2022/10/13(木) 07:01:45.31ID:JNehkz2R
>>773
自分でやれ
813デフォルトの名無しさん
2022/10/22(土) 02:49:22.02ID:ql0xnxKt
やってるやん
814デフォルトの名無しさん
2022/10/24(月) 10:24:26.56ID:sCRx2Xsd
お題
プリンタAは1分間に1ページ印刷できます
プリンタBは3分間に1ページ印刷できます
プリンタCは5分間に1ページ印刷できます

プリンタを3台同時に動かして100ページを印刷します
100ページを印刷し終わるのに何分掛かるか求めてください
815デフォルトの名無しさん
2022/10/24(月) 12:38:35.85ID:PxuF7JuF
>>814
perl5
https://paiza.io/projects/6hPV0H0VMJ6oloujnOVF8w
816デフォルトの名無しさん
2022/10/24(月) 13:32:21.38ID:LLDppSf/
>>815
バグってるぞ
65分だと99枚しか印刷されない
817デフォルトの名無しさん
2022/10/24(月) 14:17:54.79ID:l9s5dDsa
>>814 cmd
set /a "p=100, n=15*p/23+!!(15*p%23)"
818デフォルトの名無しさん
2022/10/24(月) 15:31:07.39ID:FSEywfH4
haskell

pages n = sum $ map ( div n ) [ 1,3,5 ]
main = print $ head [ n | n <- [1..], pages n >= 100 ]
819デフォルトの名無しさん
2022/10/24(月) 20:20:16.51ID:112hix5y
>>814
aow = 100
power = (1 + 1r/3 + 1r/5)
printf(aow / power) // => 65.21739130434783
820デフォルトの名無しさん
2022/10/24(月) 22:40:57.89ID:SGYFZ2pJ
>>814 octave
https://ideone.com/BOXjxs
f = @(n) ceil(n * 15 / 23);
821デフォルトの名無しさん
2022/10/25(火) 01:46:09.54ID:m3snEfri
>>814
Kotlin

何も考えずただカウントして求めるように書いた。

https://paiza.io/projects/8SWBhDQ_Bfr2ICXJpLmxhQ
822デフォルトの名無しさん
2022/10/25(火) 06:54:39.16ID:LZqPXT/2
>>817,820
逆算はページ数によってはダメ
例えば3ページの時、3分4ページが正解だけど
(B=2/3)+(C=2/5) で1繰り上がって2分が出て来る
823デフォルトの名無しさん
2022/10/25(火) 07:50:54.84ID:V4E25MPr
A, B, Cでそれぞれ45/23, 15/23, 9/23ページ印刷すれば45/23分で3ページ印刷し終わるよ
824デフォルトの名無しさん
2022/10/25(火) 08:18:47.97ID:5cB2OctB
100ページだからセーフ
825デフォルトの名無しさん
2022/10/25(火) 13:35:12.41ID:xp4U3IJL
>>814
JavaScript
https://paiza.io/projects/I8_n6kEMrNGxbh-vwbTkqQ
826デフォルトの名無しさん
2022/10/25(火) 20:38:44.30ID:Er29dtqL
甘えんな
印刷周期を一定と仮定した上で解として取りうる離散値のどれになるかを小数単位で求めるプログラムも書こうよ
827デフォルトの名無しさん
2022/10/25(火) 21:08:38.15ID:idE58GAF
すまん、1分に3枚じゃなくて3分に1枚かorz
828デフォルトの名無しさん
2022/10/25(火) 22:03:54.71ID:b0dw4lqu
>>814
Java
https://paiza.io/projects/3CptMd1jsIwuiYqU1IQYyg?language=java
829デフォルトの名無しさん
2022/10/25(火) 22:28:13.40ID:F6XUw+z/
じゃあ1分に1枚、3枚、5枚のプリンターでの印刷というお題も出すか。
830デフォルトの名無しさん
2022/10/25(火) 22:38:49.46ID:d0t/LHiA
>>814 octave
https://ideone.com/0V6LlD
function m = f(n, m)
if nargin == 1
m = f(n, 0);
elseif sum(idivide(m, [1 3 5])) < n
m = f(n, m + 1);
end
end

>>814 ocaml
https://ideone.com/4iPTJS
let f n =
let rec aux m =
if n <= (m + m / 3 + m / 5) then m else aux (m + 1)
in aux 0
831デフォルトの名無しさん
2022/10/25(火) 23:47:11.01ID:b0dw4lqu
>>829
Java

public static void main(String[] args)
{
 var pages = 100;
 var s = IntStream.of(1, 3, 5).sum();
 System.out.println((pages + s - 1) / s);
}
832デフォルトの名無しさん
2022/10/26(水) 13:26:51.44ID:FciA0hc1
お題
オークA「ぐっふっふ…… 俺は媚薬を盛ってないぜ……」
オークB「ぐふっ…… 媚薬を盛ったやつはAかCのどちらかだぜ…」
オークC「オークBかDは嘘をついているぜ…ぐっふっふっふっ……」
オークD「ぐふふ…媚薬を盛った奴はB,Eの中にはいないぜ……ぐひっ…」
オークE「げひひっ……媚薬を盛ったやつは本当の事を言っているぞ…」
オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」
女騎士「くうぅ…誰が嘘をついて誰が私に媚薬を盛ったんだ……!」
オーク達「ぐっふっふ……」

論理演算を用いて答えを求めてください
833デフォルトの名無しさん
2022/10/26(水) 13:33:52.83ID:FciA0hc1
オークCとオークEがめんどくさいな
834デフォルトの名無しさん
2022/10/26(水) 15:30:35.63ID:DM8ZU7Du
全てが媚薬を盛って全員が嘘をついている

これで全員の発言と矛盾がないと思う
835デフォルトの名無しさん
2022/10/26(水) 16:28:02.83ID:xzd5i3vP
さすがに
> オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」
は正しいと仮定しないとなんでもありありになっちゃうだろ
836デフォルトの名無しさん
2022/10/26(水) 18:06:43.51ID:VWCwwszG
さすがに
> オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」

コレウソついてるのは一匹“だけ”つて意味だよね?
“少なくとも一匹はウソついてる”
じゃないよね?
837デフォルトの名無しさん
2022/10/26(水) 18:20:40.38ID:S3XzLK/s
このタイプの論理問題ってよく見かけるな
初出ってどこなんだろうな
838デフォルトの名無しさん
2022/10/26(水) 19:23:29.30ID:gD5qQ1ZG
>>836
> “少なくとも一匹はウソついてる”
だと、全員嘘つきでもいいからなんでもありになっちゃう気がする
839デフォルトの名無しさん
2022/10/26(水) 20:30:42.10ID:dmTYCGjA
>>832
Haskell
まだ自信なし

https://ideone.com/7p50VK
840デフォルトの名無しさん
2022/10/26(水) 21:23:18.21ID:OrdcPqRc
オーク達「」が真であることは、
この世界の神である出題者が保証してるわけだな?
841デフォルトの名無しさん
2022/10/26(水) 21:38:57.12ID:Bjop1AC4
出題者が嘘をついていて、オークがそのような発言をしていない可能性もある
842デフォルトの名無しさん
2022/10/27(木) 01:22:34.18ID:s7i1htqL
>>832
Haskell

一ヶ所間違ってたので訂正
あとウソつきはちょうど1人という条件つけたら解一個になった

https://ideone.com/vAXrzD
843デフォルトの名無しさん
2022/10/27(木) 09:19:06.82ID:Uf+5HE/G
Haskell

ウソつき1人としてループを5×5に
5人しかいないので大して変わらないけど

https://ideone.com/zxaBcf
844デフォルトの名無しさん
2022/10/27(木) 14:26:07.23ID:QRorZadJ
>>832
Java
https://paiza.io/projects/VlDcOv5HhoHc1rQjRbF3dA?language=java
845デフォルトの名無しさん
2022/10/29(土) 19:11:19.58ID:O3TXZpYa
お題
Kの倍数の桁の和
自然数nに対してf(n)をnの10進表示の各桁の和とします
(例 f(1024) = 1+2+4 = 7)
自然数kに対してg(k)を
g(k) = { f(n) | nはkの倍数である自然数 }
とします
入力kに対してg(k)を出力するコードを書いて下さい
846デフォルトの名無しさん
2022/10/29(土) 19:33:57.73ID:uuZ1gbyy
>>845
g(k)って必ずしも有限集合にならなくない?
847デフォルトの名無しさん
2022/10/29(土) 19:39:30.16ID:O3TXZpYa
>>946
orz
訂正
g(k) = min{ f(n) | nはkの倍数である自然数 }
848デフォルトの名無しさん
2022/10/30(日) 00:28:15.63ID:BQOGiCuF
お題
プレーヤーの前に閉じた3つのドアがあります
1つのドアの後ろには景品の新車があります
2つのドアの後ろにははずれを意味するヤギがいます
プレーヤーは新車のドアを当てると新車がもらえます
プレーヤーが1つのドアを選択したあとに司会のモンティが残りのドアのうちヤギがいるドアを開けてヤギを見せます
ここでプレーヤーは「最初に選んだドアを残っている開けられていないドアに変更してもよい」と言われます
ここでプレーヤーはドアを変更すべきだろうか?

乱数を使ったシミュレーションで答えを求めてください
849デフォルトの名無しさん
2022/10/30(日) 03:55:05.76ID:KHak5nKt
>>848
モンティ・ホール問題だな。

Kotlin
https://paiza.io/projects/8jlKawdSqlrp5JHr0uWC4w
850デフォルトの名無しさん
2022/10/30(日) 08:09:55.23ID:oF72FRjI
ドアを変更するかどうかのところはランダムにする必要無くない?
二択なので一方に決めていれば残りが逆側の確率
851デフォルトの名無しさん
2022/10/30(日) 10:05:48.56ID:Rpnmj8SE
まぁ
交換戦略「必ず交換する」
非交換戦略「決して交換しない」
確率交換戦略「ある分布に従って確率的に交換するかしないか決める」
で答えが変わる事を確認せよだからな
ある意味最初2つの戦略も最後の戦略の特別な場合
852デフォルトの名無しさん
2022/10/30(日) 11:47:05.86ID:0KuBg4yb
お題N x Nのルービックキューブのパターン数を求めよ
853デフォルトの名無しさん
2022/10/30(日) 18:39:10.46ID:KHak5nKt
>>850
なるほど。
854デフォルトの名無しさん
2022/10/30(日) 18:54:42.34ID:Sqe0pI7B
モンティ・ホール問題のシミュレートのように見えて実はちょっと違う
モンキーホール問題だったのだ
855デフォルトの名無しさん
2022/10/30(日) 20:02:07.15ID:4vBwn6CZ
>>848 octave
https://ideone.com/LGCuAh
856デフォルトの名無しさん
2022/10/31(月) 00:39:33.45ID:MKojko7I
お題 ジュールトムソン効果っぽいものをシミュレーションで再現せよ
857デフォルトの名無しさん
2022/11/04(金) 07:13:30.92ID:jLlmakBU
お題:1~10までの合計を求めよ
*ただしライブラリ、ループ文を使わないこと
858デフォルトの名無しさん
2022/11/04(金) 07:18:56.49ID:yh54R4RT
>>857 PHP
55
859デフォルトの名無しさん
2022/11/04(金) 08:24:04.42ID:TDQ1gw2t
(1+10)*5
860デフォルトの名無しさん
2022/11/04(金) 12:00:50.88ID:ryvUUS8Q
>>857 cmd
set /a "A=1, B=10, (B-A+1)/2*(A+B)+(B-A+1)%2*(A+B)/2" &rem A≦B
861デフォルトの名無しさん
2022/11/04(金) 15:50:39.28ID:q0UsXtCi
1+2+3+4+5+6+7+8+9+10
862デフォルトの名無しさん
2022/11/04(金) 15:52:05.99ID:TBUnPbqZ
>>857
$ dc -e'1 10+5*p'
55
$
863デフォルトの名無しさん
2022/11/04(金) 16:28:57.36ID:q0UsXtCi
整数とは書いてないな
三角数とか実数とか何か別のものを想定してるかもしれない
864デフォルトの名無しさん
2022/11/04(金) 16:32:28.85ID:q0UsXtCi
高級言語なら大抵暗黙のうちにライブラリは使ってるだろうし内部的にループも使ってるかもしれない

ループの定義も問題になるかと
gotoは?再帰は?列挙は?...
865デフォルトの名無しさん
2022/11/04(金) 16:36:48.58ID:BHFqhq9y
>>863
その場合は
> 1~10までの合計
の定義を書かないとね
866デフォルトの名無しさん
2022/11/04(金) 16:55:47.69ID:q0UsXtCi
「その場合」に限定する理由は無いよね?
867デフォルトの名無しさん
2022/11/04(金) 17:35:42.12ID:u3TD418O
>>866
整数なら
> 1~10までの合計
についてほぼ合意できる定義があると思うけど?
868デフォルトの名無しさん
2022/11/04(金) 18:32:31.67ID:iggZ7AM6
そう思ってない人もいる
869デフォルトの名無しさん
2022/11/04(金) 18:59:46.26ID:u3TD418O
思ってない人は具体的にどう言う定義があるのか書けばいいんじゃね?
870デフォルトの名無しさん
2022/11/04(金) 19:06:50.77ID:iggZ7AM6
ちょっと前のレスくらい読め
871デフォルトの名無しさん
2022/11/04(金) 19:18:35.30ID:u3TD418O
ん?
ならなにを言いたいのかわからんわ
872デフォルトの名無しさん
2022/11/04(金) 19:20:02.13ID:iggZ7AM6
わからないなら無理に書き込まなくていいよ
873デフォルトの名無しさん
2022/11/04(金) 19:54:59.56ID:u3TD418O
ごめん、説明できないならいいや
874デフォルトの名無しさん
2022/11/05(土) 14:37:23.18ID:wb4h3pkZ
>>857 octave
https://ideone.com/1JUukk
f = @(a, b) (a + b) * (b - a + 1) / 2;
875デフォルトの名無しさん
2022/11/05(土) 22:37:38.99ID:ik3uUvNv
>>857
Java
https://paiza.io/projects/qlqEQa2EzsIMTABY1ujOcg?language=java
876デフォルトの名無しさん
2022/11/05(土) 23:35:33.60ID:WGyFluMA
10*11/2
877デフォルトの名無しさん
2022/11/06(日) 03:33:15.03ID:V4pkDxVq
>>857
Kotlin

https://paiza.io/projects/uWXy93c98CoNzF0o2H_wgQ

ループ文は使わず再帰でなんとかした。

(1..10).sum() や (1..10).reduce { a, n -> a + n } でも結果は出るが sum() や reduce() がライブラリにある拡張関数なので没。
10 * 11 / 2 とか 55 を直接出すのはプログラム作る意味がほとんどないような感じがするので止めた。
878デフォルトの名無しさん
2022/11/06(日) 04:47:10.33ID:p1AlQ8ne
お題が、正方形や三角形の面積を求めるのと
同程度に簡単な式だしなあ
879デフォルトの名無しさん
2022/11/06(日) 08:11:23.79ID:l6ScHNeb
Haskell
sum [1..10]
880デフォルトの名無しさん
2022/11/06(日) 08:35:41.45ID:5UCgIOa9
>>861で終了じゃん
最適化して55でも良いけど

中途半端に和の公式使ってるヤツってアホなの?
881デフォルトの名無しさん
2022/11/06(日) 09:08:00.03ID:aYMPlSSq
一垓にそうは言えないのでは
ループを使わないの意味が多くの数でもすぐ答えがでそうな処理を見たいのかもしれない
882デフォルトの名無しさん
2022/11/06(日) 09:25:21.24ID:p1AlQ8ne
掛け算割り算だと中途半端でアホで
足し算だと利口だとおっしゃる
883デフォルトの名無しさん
2022/11/06(日) 09:33:05.99ID:5UCgIOa9
和の公式を使うくらいなら55の方が良い
って話

なんで中途半端な最適化をするの?
884デフォルトの名無しさん
2022/11/06(日) 09:38:06.42ID:gK09y9Q8
1^n + 2^n +・・・+(10^25)^n
n=10、 n=-17
の手段選ばすとかは?
25条はぎりふつうループでは困難かとおもえる数値を適当にいまおもいついた
885デフォルトの名無しさん
2022/11/06(日) 10:54:00.31ID:Zb5xxfES
= 10+(9+1)+(8+2)+(7+3)+(4+6)+5
= 10+10+ 10+ 10+ 10+ 5
= 10 + (10 * ((10/2)-1))+5
= (10 * ((10/2)-1))+10+5
= x(0.5x-1)+1.5x
886デフォルトの名無しさん
2022/11/06(日) 12:06:08.03ID:5iQhHwnm
こうどなじょうほうせん を愉しむための問題でしょ
887デフォルトの名無しさん
2022/11/06(日) 15:29:02.07ID:RIYDMAGE
と思って>>863を書いたんだけど
888デフォルトの名無しさん
2022/11/06(日) 15:33:43.73ID:RIYDMAGE
1~10の合計
1から10までの合計
じゃなくて
1~10までの合計
っていうのも気になった
889デフォルトの名無しさん
2022/11/06(日) 17:04:56.12ID:PNCv3I6p
1~10までの実数の合計って言ってる奴は有限の値に収束するとでも思っているか
890デフォルトの名無しさん
2022/11/06(日) 18:24:36.01ID:S6zCBHE1
するだろ
プログラミングのお題スレ Part20 YouTube動画>3本 ->画像>5枚
891デフォルトの名無しさん
2022/11/06(日) 18:35:07.31ID:mzFwuoQr
>>890
合計にはdx関係ないぞ...
892デフォルトの名無しさん
2022/11/06(日) 18:37:14.41ID:PNCv3I6p
低レベルすぎて草
1以上10以下の実数全体の集合をAとすると
#A = ?_1 ゆえに Σ_{λ∈A}λ は有限の値を取らない
893デフォルトの名無しさん
2022/11/06(日) 18:38:48.30ID:PNCv3I6p
文字化けしたか
「#A = 連続体濃度」
894デフォルトの名無しさん
2022/11/06(日) 18:48:29.30ID:qhQ571Br
なんか足すと一見無限になりそうだけど
ある区間a<bの間にa<c<bとなるcが取れなくなることはありえないよね?
895デフォルトの名無しさん
2022/11/06(日) 19:07:23.07ID:9PA1hevU
>>889
和が存在しないとうならそれが答え
3を含むが3.5を含まないという説得力のある説明が出来るならよろしく
896デフォルトの名無しさん
2022/11/06(日) 19:12:17.73ID:PNCv3I6p
>>895
和が発散する説明はすでにしてあるんだが何を言いたいの
897デフォルトの名無しさん
2022/11/06(日) 19:14:51.13ID:9PA1hevU
Q:和を求めよ
A:和は存在しない
898デフォルトの名無しさん
2022/11/06(日) 19:15:52.52ID:9PA1hevU
発散とか収束とか
意味をわかって使わないと恥ずかしいぞ
899デフォルトの名無しさん
2022/11/06(日) 19:17:22.08ID:PNCv3I6p
>>895みたいなこと言う奴が解析の基礎すら理解できてるとすら思えないが
900デフォルトの名無しさん
2022/11/06(日) 19:17:36.32ID:9PA1hevU
>>892が最高に恥ずかしい
901デフォルトの名無しさん
2022/11/06(日) 19:19:08.56ID:9PA1hevU
>>899
最高に笑える書き込みありがとう
902デフォルトの名無しさん
2022/11/06(日) 19:19:25.97ID:PNCv3I6p
数学的に具体的な反論が一切ないじゃん
バカなの
903デフォルトの名無しさん
2022/11/06(日) 19:21:59.86ID:aYMPlSSq
ぽまえら
餅付いて >>857 を嫁
904デフォルトの名無しさん
2022/11/06(日) 19:23:24.47ID:9PA1hevU
>>892を見ただけでアホだとわかる
905デフォルトの名無しさん
2022/11/06(日) 19:24:24.94ID:PNCv3I6p
>>904
暴言は結構なんで、数学的に反論してくれませんか?
まあ頭が悪くてできないんでしょうけど
906デフォルトの名無しさん
2022/11/06(日) 19:28:25.36ID:9PA1hevU
>>905
何に反論してほしいの?

多分視野が狭くて何を主張されてるのかわかってないと思うんで
一回落ち着いた方がいいぞ

その上で
君が主張を明確にして
それに対して反対意見があれば反論してあげる
907デフォルトの名無しさん
2022/11/06(日) 19:30:41.70ID:9PA1hevU
1以上10以下の実数の総和が存在しないことなんて
誰でもわかる
和が存在するなんて主張はしてないから勘違いしないように
908デフォルトの名無しさん
2022/11/06(日) 19:31:28.37ID:PNCv3I6p
>>906
>1~10までの実数の合計って言ってる奴は有限の値に収束するとでも思っているか
に対してお前は>>895みたいなクソ発言してるわけだがこのクソ発言の妥当性を説明して見ろよ
909デフォルトの名無しさん
2022/11/06(日) 19:35:38.89ID:9PA1hevU
和が存在しないというならそれが答え
の意味がわからなかったかな?

その次の文は和の存在とは関係ない
君への宿題
910デフォルトの名無しさん
2022/11/06(日) 19:37:43.37ID:PNCv3I6p
>>909
任意のRの開区間に対してその元の和が有限の値になる場合何てないんだから
「和が存在しないというならそれが答え」なんて発言は問題の本質を理解していないバカの発言だろ
人に宿題出す前に算数からやり直せよ
911デフォルトの名無しさん
2022/11/06(日) 19:40:06.40ID:eRXytuty
【悲報】アスペ君、今日も元気。。。
912デフォルトの名無しさん
2022/11/06(日) 19:46:26.35ID:Zb5xxfES
プログラミングのお題なんだから1+2+に決まってるだろ。
少数を含めた1から10までに考えられる数値を足すとかできるわけねえだろ。
913デフォルトの名無しさん
2022/11/06(日) 19:47:59.95ID:9PA1hevU
>>910
問題の本質というなら
解釈の多様性が本質

和の存在は解釈とは無関係
存在しないなら「存在しない」が答えとなるだけの話
914デフォルトの名無しさん
2022/11/06(日) 19:48:45.29ID:9PA1hevU
>>912
floatやdoubleなら有限だね
915デフォルトの名無しさん
2022/11/06(日) 19:49:37.79ID:PNCv3I6p
>>913
お気持ちで数学を語るのやめてくれませんかね
はなはだ不愉快です
「任意のRの開区間に対してその元の和」に対して有限の値を取らないという以外にどんな有意味なモデルが取り得るんですかね
バカすぎて日本語の意味すら理解できてなさそうだけど
916デフォルトの名無しさん
2022/11/06(日) 19:49:56.13ID:9PA1hevU
決まってるといくら主張しても
お題に書いてないんだから
どう解釈されても出題者が悪い
917デフォルトの名無しさん
2022/11/06(日) 19:51:41.99ID:9PA1hevU
>>915
お前が数学の話を語りたがってるだけで
私はただ解釈の多様性の話をしてるだけ
918デフォルトの名無しさん
2022/11/06(日) 19:52:43.83ID:9PA1hevU
>>863に数学っぽい話あったか?
919デフォルトの名無しさん
2022/11/06(日) 19:52:59.97ID:PNCv3I6p
>>917
実数の開区間の和が有限じゃないことにいちゃもん付けてきたのはオタクでしょ?
有限の値を取らない意外にどんな有意義な解釈が成り立つんですか?
きちんと説明しなさい
920デフォルトの名無しさん
2022/11/06(日) 19:53:54.13ID:9PA1hevU
>>919
それ別の人
921デフォルトの名無しさん
2022/11/06(日) 19:55:00.86ID:9PA1hevU
>>890と同一人物だと思って
トンチンカンな書き込みを繰り返してたのたね
恥ずかしい
922デフォルトの名無しさん
2022/11/06(日) 19:55:05.02ID:PNCv3I6p
>>920
>和が存在しないとうならそれが答え
って和が存在する有意義なモデルがあるって言う前提で話してますよね?
もしそうじゃないならこれはどういう意図で行ったんですか?
ちなみに続く3.5云々の意味もよく分かってません
923デフォルトの名無しさん
2022/11/06(日) 19:56:03.75ID:aYMPlSSq
もうこりゃ発散とか収束とか言う前に就職の心配したほうがいいな
924デフォルトの名無しさん
2022/11/06(日) 19:57:33.13ID:9PA1hevU
>>922
落ち着いてから書き込んでね
925デフォルトの名無しさん
2022/11/06(日) 19:59:09.36ID:PNCv3I6p
>>924
敗北宣言ですか
これにこりたら今後二度とお気持ちで数学を語るのはやめてください
研究者やエンジニアが迷惑するので
926デフォルトの名無しさん
2022/11/06(日) 20:01:35.14ID:9PA1hevU
数学を語りたがってるのはお前と>>890だけだって
だから落ち着け
927デフォルトの名無しさん
2022/11/06(日) 20:06:58.14ID:9PA1hevU
おれの主張は>>863だから
もちろん本気で出題者がそう思っているという主張ではなくて
解釈の余地があるという問題提起
928デフォルトの名無しさん
2022/11/06(日) 20:07:53.80ID:Zb5xxfES
問題は出題者の意図を読み取ることが重要
1~10までの整数の和の事だろうなと考えるのが低レベルとは思えない。
常識で考えればそうなる

できればその高レベルのプログラムとやらを説明してほしいものだな。
929デフォルトの名無しさん
2022/11/06(日) 20:12:04.95ID:9PA1hevU
一応プログラム板なんだからさ
解釈の多様性を多少は意識しようよ
プログラミング言語だったら「動作未定義」

曖昧な仕様書で中国人に発注したら
一番都合の良い解釈をされてとんでもないソフトになるぞ
930デフォルトの名無しさん
2022/11/06(日) 20:17:19.25ID:Zb5xxfES
プログラムのお題なんだから、
プログラムで実現できないってのは答えにはならんよ。

国語の問題じゃねえんだから、
プログラムとして成立する答えを出せよ
931デフォルトの名無しさん
2022/11/06(日) 20:24:40.28ID:9PA1hevU
国語の問題じゃねえんだから
出題者の意図を好意的に汲み取る必要はないんだよ
932デフォルトの名無しさん
2022/11/06(日) 20:26:21.60ID:mzFwuoQr
>>930
だからちゃんと仕様出せやってことだろ
>>863は半分ネタだと思うけど、実数だと言うなら実数について「1~10までの合計」を定義しないとお題にならんよ
933デフォルトの名無しさん
2022/11/06(日) 20:32:00.92ID:9PA1hevU
>>932
私は出題者じゃないし実数だなんて主張もしてない

いろんな解釈があるならお題にならん
解釈の余地は可能な限り減らせ
934デフォルトの名無しさん
2022/11/06(日) 20:38:00.65ID:mzFwuoQr
>>933
お前にアンカーしてるわけでもないのに絡んでくるとかあたおかすぎる
935デフォルトの名無しさん
2022/11/06(日) 20:59:57.69ID:Zb5xxfES
1から10までの整数の和では無い可能性があるから、
その場合はプログラムでは実現できないって言いたいだけだろ

整数の和として答えてるプログラムを低レベルってどういことやねん。
素直に受け取ればいいものを曲解して不可能に持って行ってるだけだろ
936デフォルトの名無しさん
2022/11/06(日) 21:02:11.02ID:9PA1hevU
「整数の和として答えてるプログラムを低レベルってどういことやねん。」
だれがそんなことかいた?
937デフォルトの名無しさん
2022/11/06(日) 21:04:22.43ID:9PA1hevU
>>935
>>931
938デフォルトの名無しさん
2022/11/06(日) 21:07:02.93ID:tOVlE3Vc
>>857
python: https://ideone.com/mJmWy7
やさしいお題、助かります!
939デフォルトの名無しさん
2022/11/07(月) 06:42:16.97ID:C4s2+P7f
仕事では御免だが
解釈の余地を残すことが娯楽では大切だって良く分かる例
940デフォルトの名無しさん
2022/11/07(月) 15:08:59.94ID:4okW5BTf
お題:1/1+1/2+...+1/nの合計を求め、分母と分子を整数で出力せよ。
*ただしライブラリを使わないこと
941デフォルトの名無しさん
2022/11/07(月) 15:35:37.09ID:Sowq9nFL
>>940 Ruby

(1..n).map{ 1r/_1 }.sum
942デフォルトの名無しさん
2022/11/07(月) 15:48:12.36ID:wln8XcGb
>>940
haskell
https://ideone.com/DtEB7R
943デフォルトの名無しさん
2022/11/07(月) 17:42:49.96ID:dFD6FGsc
gcdとかsumとかprintはライブラリじゃないの?
944デフォルトの名無しさん
2022/11/07(月) 18:21:56.48ID:UfWjgfnM
1+・・・+1/n の小数点n桁目はいくらか
945デフォルトの名無しさん
2022/11/07(月) 18:47:35.11ID:Fdh4LiCB
>>944
こっちの方がおもしろいかも
小数第○位って昔は言ったけど今は言わない?
946デフォルトの名無しさん
2022/11/07(月) 20:48:13.34ID:OXo72DE3
>>940
Java
https://paiza.io/projects/cuy0WENv4Ghi-7jq9eTIbw
947デフォルトの名無しさん
2022/11/07(月) 20:49:01.52ID:FonngYyy
>>943
Pythonではprintは組み込み関数だな
他は知らんけど
948デフォルトの名無しさん
2022/11/07(月) 21:06:30.94ID:Fdh4LiCB
組み込み関数はライブラリじゃないと
ライブラリと呼ばない言語なら何でもありか
949デフォルトの名無しさん
2022/11/07(月) 21:08:54.69ID:Fdh4LiCB
C言語上のただのintの乗算でもライブラリが必要な環境もあるわけだけど
950デフォルトの名無しさん
2022/11/07(月) 21:34:22.19ID:q2YPtCXX
アルゴリズムが見たいのでしょうね
951デフォルトの名無しさん
2022/11/07(月) 21:35:14.79ID:kmERiYaX
まあ今時組込とかでもなきゃintの乗算でライブラリ呼び出す環境もあまりないけどそもそも入出力はライブラリ任せだからねぇ
952デフォルトの名無しさん
2022/11/07(月) 23:30:13.24ID:3GzmFPX6
>>943
Haskell ?
だとsumやgcdはpreludeで標準関数扱い
基本import~が必要ない奴は標準扱い
953デフォルトの名無しさん
2022/11/08(火) 01:53:36.92ID:s644Ul/+
>>940
Kotlin

https://paiza.io/projects/93xp9A_EpkG2QbWBuOvAoQ

分子と分母を別々に保持して足し続けただけ。約分はしていない。
954デフォルトの名無しさん
2022/11/08(火) 21:45:51.73ID:dCnZkmaL
>>940
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
955デフォルトの名無しさん
2022/11/08(火) 21:46:18.88ID:dCnZkmaL
>>940 octave
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
956デフォルトの名無しさん
2022/11/09(水) 00:46:04.53ID:oWTDq5DR
>>940 octave
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
957デフォルトの名無しさん
2022/11/09(水) 00:46:10.95ID:oWTDq5DR
>>940 octave
https://ideone.com/zNHUB9
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
958デフォルトの名無しさん
2022/11/09(水) 01:55:16.87ID:QvIAsso6
なぜ同じ書き込みが4つもある?
959デフォルトの名無しさん
2022/11/09(水) 02:02:28.03ID:Ewgu9c/a
お題スレの7不思議に加えよう
960デフォルトの名無しさん
2022/11/09(水) 12:49:26.26ID:AHjhHUHj
お題
入力した文字列を以下の4種類に分けた文字列を作成する関数を作成してください
・アルファベット大文字
・アルファベット小文字
・数字
・それ以外の文字
961デフォルトの名無しさん
2022/11/09(水) 18:55:40.68ID:dDwxEUkd
Array.from(input).filter(c=>c.match(/[A-Z]/)).join("")
+ Array.from(input).filter(c=>c.match(/[a-z]/)).join("")
+ Array.from(input).filter(c=>c.match(/[0-9]/)).join("")
+ Array.from(input).filter(c=>c.match(/[^A-Za-z0-9]/)).join("")
962デフォルトの名無しさん
2022/11/09(水) 20:05:26.68ID:1g3d+RJJ
>>960 octave
https://ideone.com/SHPVub
function c = f(s)
u = isstrprop(s, 'upper');
l = isstrprop(s, 'lower');
d = isstrprop(s, 'digit');
c = {s(u) s(l) s(d) s(~(u | l | d))};
end
963デフォルトの名無しさん
2022/11/10(木) 01:00:36.16ID:UXFdZVAF
>>960
Haskell
https://ideone.com/jMHNnq

isUpper = flip elem [ 'A' .. 'Z' ]
isLower = flip elem [ 'a' .. 'z' ]
isNum = flip elem [ '0' .. '9' ]
isOthers = id
. all not
. zipWith ( $ ) [ isUpper, isLower, isNum ]
. repeat

sieve str = [ filter cond str |
cond <- [ isUpper, isLower, isNum, isOthers ] ]

testStr = "foldl1 :: Foldable t => (a -> a -> a) -> t a -> a"

main = mapM_ print $ sieve testStr
964デフォルトの名無しさん
2022/11/10(木) 01:50:38.82ID:j8kXq8l6
>>547
Java
https://paiza.io/projects/Dxe5e0qmmy73WWNdzTvCbg
965デフォルトの名無しさん
2022/11/10(木) 02:29:28.73ID:kjI8mJgQ
>>961
俺も正規表現でやりたいけどこっちのほうが5倍速かった…
コンパイル言語に比べたら目くそ鼻くそだがこんだけ違うと考えちゃうな
const str = 'aA0!bB1@cC2#dD3$eE4%'.repeat(500);
let oomoji = [], komoji = [], suuji = [], sonota = [];
for (const c of str) {
let cp;
switch (true) {
case 65 <= cp && cp <= 90:
oomoji.push(c);
break;
case 97 <= cp && cp <= 122:
komoji.push(c);
break;
case 48 <= cp && cp <= 57:
suuji.push(c);
break;
default:
sonota.push(c);
}
}
[oomoji, komoji, suuji, sonota] = [oomoji, komoji, suuji, sonota]
.map(a => a.join``);
// console.table({oomoji, komoji, suuji, sonota});
966デフォルトの名無しさん
2022/11/10(木) 02:37:16.98ID:kjI8mJgQ
>>965
5倍じゃなくて3倍だったわ
perf.linkで測ったコード、
let cp = c.codePointAt();

let cp;
になってたわ寝ぼけてた
967デフォルトの名無しさん
2022/11/10(木) 07:33:44.51ID:oQpocXYl
>>960
ASCII のみで良い?
それとも Unicode?
968デフォルトの名無しさん
2022/11/10(木) 07:56:41.06ID:3FlvzqxM
>>960 Ruby

-> s { s.scan(/[A-Z]+|[a-z]+|\d+|[\W_]+/) }
969デフォルトの名無しさん
2022/11/10(木) 14:11:20.86ID:oQpocXYl
>>960
Kotlin

https://paiza.io/projects/Qfx9ljGCsICVDui8fcn-0A

Unicodeで作った。サロゲートペアの文字もちゃんと扱える。
判別には Java の Character クラスのメソッドを利用している。
これだといわゆる全角の数字は数字扱いになるが漢数字は数字と分類してくれない。
ローマ数字はアルファベット大文字扱い。
日本語の「あ」とかもアルファベットとして扱われるが大文字でも小文字でもないのでそれ以外の文字に追加されるようにした。
コントロールコードは \uXXXX 形式になるようにした。
970デフォルトの名無しさん
2022/11/10(木) 18:57:30.40ID:3zaWz6R+
>>960
PowerShell

function StrClassify($s)
{
  "\P{Lu}", "\P{Ll}", "\P{N}", "[\p{Lu}\p{Ll}\p{N}]" |% {$s -creplace $_}
}

StrClassify "Κωνσταντινούπολιςは1453年にİstanbulと改称された。`n"
StrClassify "塩化銅(Ⅱ)は水中で CuCl₂ ⇄ Cu²⁺ + 2Cl⁻ のように電離する。"

[実行結果]
Κİ
ωνσταντινούπολιςstanbul
1453
は年にと改称された。

CCCC
ulul
Ⅱ₂²2
塩化銅()は水中で ⇄ ⁺ + ⁻ のように電離する。
971デフォルトの名無しさん
2022/11/10(木) 20:35:16.34ID:V5vZiHvW
>>944をやってみたらPythonで300くらいでオーバーフローになった
分子と分母をべつべつに計算してp/qだったとすると
int(10^n * p / q ) % 10 が求める答えのはずだが、この計算ができなかった
972デフォルトの名無しさん
2022/11/10(木) 20:44:38.28ID:V5vZiHvW
ここで問題変更でp/qの小数点n桁目を求める問題にすればいいか
オーバーフローしないように×10ずつして整数部分は無視していけば整数演算の範囲内にできるか
忘れたがユークリッド互除法みたいな?
973デフォルトの名無しさん
2022/11/10(木) 20:50:26.16ID:m98zu82a
input.replace(/[^A-Z]/g,"")
+ input.replace(/[^a-z]/g,"")
+ input.replace(/[^0-9]/g,"")
+ input.replace(/[A-Za-z0-9]/g,"")
974デフォルトの名無しさん
2022/11/10(木) 20:51:12.57ID:m98zu82a
[/[^A-Z]/g, /[^a-z]/g, /[^0-9]/g, /[A-Za-z0-9]/g]
.map(r => input.replace(r,"")).join("")
975971
2022/11/10(木) 21:10:50.60ID:V5vZiHvW
>>944オーバーフローせずにできた

https://ideone.com/EzCu8k
976デフォルトの名無しさん
2022/11/10(木) 21:27:26.89ID:p27a51fr
>>944
Haskell

https://ideone.com/2tUIFo

import Data.Ratio

hnn n = flip mod 10 $ truncate $ (* ( 10^n)) $ sum $ map recip [ 1%1..n%1 ]

main = print $ hnn 300
977デフォルトの名無しさん
2022/11/10(木) 21:45:52.91ID:KPTSzoDK
お題 小数点第n位を求めるプログラムを作成せよ
978デフォルトの名無しさん
2022/11/10(木) 21:58:11.94ID:JknzoKCK
>>977
何の?
979デフォルトの名無しさん
2022/11/11(金) 12:27:18.79ID:eQP0gwqb
ルート4の
980デフォルトの名無しさん
2022/11/11(金) 13:33:07.98ID:XogJxnoW
そんなむず過ぎるお題は過疎るのだ却下
981デフォルトの名無しさん
2022/11/11(金) 18:36:58.77ID:Jm4DMnci
>>978
入力された実数
982デフォルトの名無しさん
2022/11/11(金) 20:10:51.65ID:+Uq9lyYZ
(x*10**n)%10
983デフォルトの名無しさん
2022/11/12(土) 01:53:40.01ID:Y/i2pfZ3
お題
配列データと、同じ長さの確率の配列(合計値1)が与えられた時に、対応する確率で配列からデータを出力せよ


aa,bb,cc
0.4,0.5,0.1

→aa 40%, bb 50%, cc 10%で出力
984デフォルトの名無しさん
2022/11/12(土) 08:50:36.22ID:yCEPOpQl
>>983 Ruby

a = %w[aa bb cc]
p = [0.4, 0.5, 0.1]
f = -> (a, p) { r = rand; a[(0..a.size-2).find{ r < p[0.._1].sum } || a.size - 1] }
10.times{ print f[a, p] }

# => aabbccbbaaaaaabbbbbb
985デフォルトの名無しさん
2022/11/12(土) 10:10:20.03ID:g2vYgSbJ
>>983
Haskell
https://ideone.com/UErkR7

import System.Random
import Data.List

randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)

chooseItem is ws r = let
folder a b = a : map ( + a ) b
selecter r ( i, ( f, t ) ) = f <= r && r < t
ts = foldr folder [ ] ws
fs = 0 : ts
ifts = zip is $ zip fs ts
in fst $ head $ filter ( selecter r ) ifts

main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
986デフォルトの名無しさん
2022/11/12(土) 10:19:35.32ID:uOtU06vW
>>983 octave
https://ideone.com/mIKDyu
f = @(a, r) a(rand < cumsum(r))(1);
987デフォルトの名無しさん
2022/11/12(土) 14:34:06.57ID:Q9bJaddO
>>983 ocaml
https://ideone.com/aDR0Do
let (<<) f g x = f (g x)
let cumsum =
List.rev << fst << List.fold_left (fun (a, s) f -> s +. f :: a, s +. f) ([], 0.)
let f xs =
let r = Random.float 1. in
fst << List.find ((<) r << snd) << List.combine xs << cumsum
988デフォルトの名無しさん
2022/11/12(土) 16:47:04.36ID:We3Ba5Li
>>983
コレでよかった
Haskell
https://ideone.com/WtPXzw

import System.Random

randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)

chooseItem (i:is) (w:ws) r | r < w = i
chooseItem (i:is) (w:ws) r = chooseItem is ws ( r - w )

main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
989デフォルトの名無しさん
2022/11/12(土) 17:19:40.29ID:MirHjvCf
>>983
別名法とかいうアルゴリズム
https://ideone.com/J0p12R
990デフォルトの名無しさん
2022/11/12(土) 19:13:20.80ID:MirHjvCf
https://ideone.com/8utmEg
元からあったコードをちょっといじったんだけど変換ミスがあった
991デフォルトの名無しさん
2022/11/13(日) 18:45:40.25ID:zjrUNZaB
>>983
Kotlin

https://paiza.io/projects/dh1A84MN5OxLQkw7r2yL7Q
992デフォルトの名無しさん
2022/11/13(日) 19:01:26.14ID:ZCYlhUwL
次スレ
プログラミングのお題スレ Part21
http://2chb.net/r/tech/1668333636/
993デフォルトの名無しさん
2022/11/15(火) 08:06:01.58ID:XL64sJsG
うめ
994デフォルトの名無しさん
2022/11/15(火) 09:22:13.74ID:x0rg5fHd
お題:1辺がn文字の正四角形を表示せよ
1 <= n <= 8 とする
995デフォルトの名無しさん
2022/11/15(火) 10:16:55.01ID:V1sKjJZc
haskell

https://ideone.com/4Kd3el

sqStr n = ""
++ "\x250f" ++ r "\x2501" ++ "\x2513" ++ "\n"
++ r ( "\x2503" ++ r "\x2001" ++ "\x2503" ++ " \n" )
++ "\x2517" ++ r "\x2501" ++ "\x251b" ++ "\n"
where r = concat . replicate ( n-2 )

main = putStr $ sqStr 10
996デフォルトの名無しさん
2022/11/15(火) 20:16:12.10ID:r20LvnA2
>>994 octave
https://ideone.com/k9cAWw
function s = f(n)
s = repmat('#', n);
s(2:end-1, 2:end-1) = ' ';
end
997デフォルトの名無しさん
2022/11/17(木) 21:39:57.15ID:BbSHYj/y
うめ
998デフォルトの名無しさん
2022/11/17(木) 21:40:03.49ID:BbSHYj/y
うめ
999デフォルトの名無しさん
2022/11/17(木) 21:40:08.22ID:BbSHYj/y
うめ
1000デフォルトの名無しさん
2022/11/17(木) 23:04:00.66ID:W9+RkUIs
10011001
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 516日 23時間 1分 3秒
10021002
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

ニューススポーツなんでも実況



lud20250303103119ca
このスレへの固定リンク: http://5chb.net/r/tech/1624028577/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「プログラミングのお題スレ Part20 YouTube動画>3本 ->画像>5枚 」を見た人も見ています:
プログラミングのお題スレ Part18
プログラミングのお題スレ Part21
プログラミングのお題スレ Part19
プログラミングのお題スレ Part10
プログラミングのお題スレ Part14
プログラミングのお題スレ Part16
プログラミングのお題スレ Part13
プログラミングのお題スレ Part12
プログラミングのお題スレ Part22 (765)
【悲報】Z世代「ゆとり世代のおっさんが無能すぎる…プログラミングも英語も統計もできない無能世代。老害扱いされるのもわかるわ
大学生のプログラミング雑談スレ
競技プログラミング総合スレ 63
プログラミング学習サイトについて語るスレ
Androidプログラミング質問スレ revision55
競技プログラミングにハマるプログラマのスレ 54
競技プログラミングにハマるプログラマのスレ 82
競技プログラミングにハマるプログラマのスレ 58
競技プログラミングにハマるプログラマのスレ 186
競技プログラミングにハマるプログラマのスレ 195
競技プログラミングにハマるプログラマのスレ 201
Androidプログラミング質問スレ revision53
Androidプログラミング質問スレ revision51
Androidプログラミング質問スレ revision50
Androidプログラミング質問スレ revision54
競技プログラミングにハマるプログラマのスレ 74
競技プログラミングにハマるプログラマのスレ 62
競技プログラミングにハマるプログラマのスレ 86
競技プログラミングにハマるプログラマのスレ 63
競技プログラミングにハマるプログラマのスレ 98
競技プログラミングにハマるプログラマのスレ 140
競技プログラミングにハマるプログラマのスレ 220
競技プログラミングにハマるプログラマのスレ 214
競技プログラミングにハマるプログラマのスレ 199
競技プログラミングにハマるプログラマのスレ 185
競技プログラミングにハマるプログラマのスレ 129
競技プログラミングにハマるプログラマのスレ 159
競技プログラミングにハマるプログラマのスレ 22
競技プログラミングにハマるプログラマのスレ 205
競技プログラミング総合スレ 66 (478)
競技プログラミングにハマるプログラマのスレ (222)
自動プログラミング
プログラミングにはMac
OpenMPプログラミング
プログラミング飽きた
プログラミングをやりたいんだが
プログラミング言語Egison
OpenCLプログラミング#1
プログラミングで何か書く
プログラミングを始めてみたい
elm(プログラミング言語)
プログラミングを未経験からやるなら
プログラミングを勉強したいんだが
プログラミング学びたい人
最強のプログラミング言語とは
七行プログラミング part6
プログラミングはじめたいんだけど
プログラミングやってみたいんやが
男向けのプログラミング言語
女向けのプログラミング言語
プログラミング初心者なんだが
サウンドプログラミング6
プログラミング用フォント
プログラミング始めたいんだが
Maximaプログラミング質問箱
0からプログラミング始めたい
16:35:57 up 64 days, 17:34, 0 users, load average: 10.11, 10.31, 10.21

in 0.079280853271484 sec @0.079280853271484@0b7 on 062105